Skip to content

Commit 176a9c2

Browse files
authored
Fix excessive memory usage of _fill_nans_infs_nwp_cascade (#425)
1 parent 9803d54 commit 176a9c2

File tree

1 file changed

+7
-30
lines changed

1 file changed

+7
-30
lines changed

pysteps/blending/steps.py

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545

4646
import math
4747
import time
48+
from copy import deepcopy
4849

4950
import numpy as np
5051
from scipy.linalg import inv
@@ -55,8 +56,6 @@
5556
from pysteps.postprocessing import probmatching
5657
from pysteps.timeseries import autoregression, correlation
5758

58-
from copy import deepcopy
59-
6059
try:
6160
import dask
6261

@@ -2443,36 +2442,14 @@ def _fill_nans_infs_nwp_cascade(
24432442
"""Ensure that the NWP cascade and fields do no contain any nans or infinite number"""
24442443
# Fill nans and infinite numbers with the minimum value present in precip
24452444
# (corresponding to zero rainfall in the radar observations)
2446-
precip_models_cascade = np.nan_to_num(
2447-
precip_models_cascade,
2448-
copy=True,
2449-
nan=np.nanmin(precip_cascade),
2450-
posinf=np.nanmin(precip_cascade),
2451-
neginf=np.nanmin(precip_cascade),
2452-
)
2453-
precip_models_pm = np.nan_to_num(
2454-
precip_models_pm,
2455-
copy=True,
2456-
nan=np.nanmin(precip),
2457-
posinf=np.nanmin(precip),
2458-
neginf=np.nanmin(precip),
2459-
)
2445+
min_cascade = np.nanmin(precip_cascade)
2446+
min_precip = np.nanmin(precip)
2447+
precip_models_cascade[~np.isfinite(precip_models_cascade)] = min_cascade
2448+
precip_models_pm[~np.isfinite(precip_models_pm)] = min_precip
24602449
# Also set any nans or infs in the mean and sigma of the cascade to
24612450
# respectively 0.0 and 1.0
2462-
mu_models = np.nan_to_num(
2463-
mu_models,
2464-
copy=True,
2465-
nan=0.0,
2466-
posinf=0.0,
2467-
neginf=0.0,
2468-
)
2469-
sigma_models = np.nan_to_num(
2470-
sigma_models,
2471-
copy=True,
2472-
nan=0.0,
2473-
posinf=0.0,
2474-
neginf=0.0,
2475-
)
2451+
mu_models[~np.isfinite(mu_models)] = 0.0
2452+
sigma_models[~np.isfinite(sigma_models)] = 0.0
24762453

24772454
return precip_models_cascade, precip_models_pm, mu_models, sigma_models
24782455

0 commit comments

Comments
 (0)