Skip to content

Commit 31cc7f7

Browse files
authored
Iluise/hot fixes (ecmwf#1209)
* fix froct * fix 1150
1 parent 4f4097c commit 31cc7f7

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

packages/evaluate/src/weathergen/evaluate/clim_utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ def align_clim_data(
128128
timestamp = target_data.valid_time.values[sample_mask][0]
129129
# Prepare climatology data for each sample
130130
matching_time_idx = match_climatology_time(timestamp, clim_data)
131+
132+
if matching_time_idx is None:
133+
continue
134+
131135
prepared_clim_data = (
132136
clim_data.data.isel(
133137
time=matching_time_idx,
@@ -209,7 +213,7 @@ def get_climatology(reader, da_tars, stream: str) -> xr.Dataset | None:
209213

210214
aligned_clim_data = None
211215

212-
if clim_data_path:
216+
if clim_data_path is not None:
213217
clim_data = xr.open_dataset(clim_data_path)
214218
_logger.info("Aligning climatological data with target structure...")
215219
aligned_clim_data = align_clim_data(da_tars, clim_data)

packages/evaluate/src/weathergen/evaluate/io_reader.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -495,10 +495,10 @@ def __init__(self, eval_cfg: dict, run_id: str, private_paths: dict | None = Non
495495
)
496496

497497
if not self.fname_zarr.exists() or not self.fname_zarr.is_dir():
498-
_logger.error(f"Zarr file {self.fname_zarr} does not exist or is not a directory.")
499-
raise FileNotFoundError(
500-
f"Zarr file {self.fname_zarr} does not exist or is not a directory."
501-
)
498+
_logger.error(f"Zarr file {self.fname_zarr} does not exist.")
499+
# raise FileNotFoundError(
500+
# f"Zarr file {self.fname_zarr} does not exist or is not a directory."
501+
# )
502502

503503
def get_inference_config(self):
504504
"""
@@ -626,6 +626,8 @@ def get_data(
626626
pred = bbox.apply_mask(pred)
627627

628628
npoints = len(target.ipoint)
629+
pps.append(npoints)
630+
629631
if npoints == 0:
630632
_logger.info(
631633
f"Skipping {stream} sample {sample} forecast step: {fstep}. "
@@ -649,7 +651,6 @@ def get_data(
649651

650652
da_tars_fs.append(target.squeeze())
651653
da_preds_fs.append(pred.squeeze())
652-
pps.append(npoints)
653654

654655
if len(da_tars_fs) > 0:
655656
fsteps_final.append(fstep)
@@ -692,6 +693,7 @@ def get_data(
692693

693694
da_tars.append(da_tars_fs)
694695
da_preds.append(da_preds_fs)
696+
695697
if return_counts:
696698
points_per_sample.loc[{"forecast_step": fstep}] = np.array(pps)
697699

packages/evaluate/src/weathergen/evaluate/score.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,9 @@ def get_score(
307307
group_names = list(next(iter(grouped_args.values())).groups.keys())
308308
results = []
309309
for name in group_names:
310-
group_slice = {k: v[name] for k, v in grouped_args.items()}
310+
group_slice = {
311+
k: (v[name] if v is not None else v) for k, v in grouped_args.items()
312+
}
311313
res = f(**group_slice)
312314
# Add coordinate for concatenation
313315
res = res.expand_dims({group_by_coord: [name]})

0 commit comments

Comments
 (0)