Skip to content

Commit f73640a

Browse files
committed
Update test_validation.py and validation.py
1 parent 2c37db0 commit f73640a

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

openpiv/test/test_validation.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,4 +170,36 @@ def test_global_val(N=2,U=(-10,10)):
170170
assert np.isnan(v1.data[0,0])
171171
print(mask1)
172172
assert mask1[N,N]
173+
assert mask1[0,0]
174+
175+
176+
def test_global_std(N=2,std_threshold=3):
177+
u = np.random.rand(2*N+1, 2*N+1)
178+
u[N, N] = np.nanstd(u)*threshold + 1.
179+
u[0,0] = np.nanstd(u)*threshold + 1.
180+
181+
v = np.ma.masked_array(u.copy(), np.ma.nomask)
182+
v[N+1,N+1] = np.ma.masked
183+
184+
185+
print('data')
186+
print(u)
187+
188+
189+
print('masked')
190+
print(v.data)
191+
print(v.mask)
192+
193+
u1, _, mask = validation.global_std(u, u, std_threshold=3)
194+
assert np.isnan(u1[N,N])
195+
assert np.isnan(u1[0,0])
196+
assert mask[N,N]
197+
assert mask[0,0]
198+
199+
v1, _, mask1 = validation.global_std(v, v, std_threshold=3)
200+
assert isinstance(v1,np.ma.MaskedArray)
201+
assert np.isnan(v1.data[N,N])
202+
assert np.isnan(v1.data[0,0])
203+
print(mask1)
204+
assert mask1[N,N]
173205
assert mask1[0,0]

openpiv/validation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,11 @@ def global_std(u, v, std_threshold=3):
116116
# participating in the magnitude comparison
117117

118118
if isinstance(u, np.ma.MaskedArray):
119-
vel_magnitude = u.data ** 2 + v.data ** 2
119+
vel_magnitude = u.filled(np.nan) ** 2 + v.filled(np.nan) ** 2
120120
else:
121121
vel_magnitude = u ** 2 + v ** 2
122122

123-
ind = vel_magnitude > std_threshold * np.std(vel_magnitude)
123+
ind = vel_magnitude > std_threshold * np.nanstd(vel_magnitude)
124124

125125
u[ind] = np.nan
126126
v[ind] = np.nan

0 commit comments

Comments
 (0)