Skip to content

Commit 4065c88

Browse files
authored
Fix weights in nested noise (#320)
* Convert grid index to km * Add test for nested noise
1 parent c9bd687 commit 4065c88

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

pysteps/noise/fftgenerators.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,9 @@ def initialize_nonparam_2d_nested_filter(field, gridres=1.0, **kwargs):
691691
x0 = (
692692
Idxinext[n, 1] - Idxinext[n, 0]
693693
) / 2.0 # TODO: consider y dimension, too
694-
merge_weights = 1 / (1 + np.exp(-k * (1 / freq_grid - x0)))
694+
merge_weights = 1 / (
695+
1 + np.exp(-k * (1 / freq_grid - x0 * gridres))
696+
)
695697
newfilter *= 1 - merge_weights
696698

697699
# perform the weighted average of previous and new fourier filters

pysteps/tests/test_noise_fftgenerators.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,16 @@ def test_noise_nonparam_2d_ssft_filter():
5151

5252
assert isinstance(out, np.ndarray)
5353
assert out.shape == PRECIP.shape
54+
55+
56+
def test_noise_nonparam_2d_nested_filter():
57+
58+
fft_filter = fftgenerators.initialize_nonparam_2d_nested_filter(PRECIP)
59+
60+
assert isinstance(fft_filter, dict)
61+
assert all([key in fft_filter for key in ["field", "input_shape"]])
62+
63+
out = fftgenerators.generate_noise_2d_ssft_filter(fft_filter)
64+
65+
assert isinstance(out, np.ndarray)
66+
assert out.shape == PRECIP.shape

0 commit comments

Comments
 (0)