Skip to content

Commit 51cb292

Browse files
authored
Merge pull request #34 from FESOM/missing
Add missing_value option to save_data function
2 parents 6ab4ddb + 331c219 commit 51cb292

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/fint/fint.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ def save_data(
443443
lon,
444444
lat,
445445
out_path,
446+
missing_value=None,
446447
):
447448
"""
448449
Saves the interpolated data to a NetCDF file.
@@ -477,6 +478,10 @@ def save_data(
477478
else:
478479
out_time = np.atleast_1d(data.time.data[timesteps])
479480

481+
if missing_value is not None:
482+
interpolated3d = np.where(np.isnan(interpolated3d), missing_value, interpolated3d)
483+
484+
480485
out1 = xr.Dataset(
481486
{variable_name: (["time", "depth", "lat", "lon"], interpolated3d)},
482487
coords={
@@ -678,6 +683,12 @@ def fint(args=None):
678683
Valid units are 'D' (days), 'h' (hours), 'm' (minutes), 's' (seconds). \
679684
To substract timedelta, put argument in quotes, and prepend ' -', so SPACE and then -, e.g. ' -10D'.",
680685
)
686+
parser.add_argument(
687+
"--missing_value",
688+
default=None,
689+
type=float,
690+
help="Missing value for the output file. Default is None.",
691+
)
681692

682693
args = parser.parse_args()
683694

@@ -1065,6 +1076,7 @@ def fint(args=None):
10651076
lon,
10661077
lat,
10671078
out_path,
1079+
missing_value=args.missing_value,
10681080
)
10691081
if args.rotate:
10701082
save_data(
@@ -1079,6 +1091,7 @@ def fint(args=None):
10791091
lon,
10801092
lat,
10811093
out_path2,
1094+
missing_value=args.missing_value,
10821095
)
10831096

10841097

test/Taskfile.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ tasks:
2323
- task: 3d_nodes_interfaces
2424
- task: 2d_elements
2525
- task: timedelta
26+
- task: missing_value
2627
- task: cleanup
2728

2829
download_test_data:
@@ -153,6 +154,14 @@ tasks:
153154
- fint ${FILE} ${MESH} ${INFL} -t 0:10 --timedelta '1h'
154155
- fint ${FILE} ${MESH} ${INFL} -t 0:10 --timedelta ' -1h'
155156

157+
missing_value:
158+
deps:
159+
- download_test_data
160+
env:
161+
FILE: "./test/data/ssh.fesom.1948.nc"
162+
cmds:
163+
- fint ${FILE} ${MESH} ${INFL} -t 0:3 --missing_value -9999
164+
156165
cleanup:
157166
cmds:
158167
- python -c "import os; [os.remove(f) for f in os.listdir() if f.endswith('.nc')]"

0 commit comments

Comments
 (0)