Skip to content

Commit

Permalink
updated the gui PostProcessing with the arrays for openpiv
Browse files Browse the repository at this point in the history
since some version of openpiv the local median is using 2D arrays,
so the replace outliers and and smoothing
the smoothing seems to be too long, probably one needs Cython or manage to compile it for any platform.
  • Loading branch information
alexlib committed Apr 19, 2024
1 parent 1398cac commit a891fda
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 13 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@
dist/*
openpivgui.egg-info/*
.vscode/*
build/*
docs/_build/*
docs/_build/doctrees/*
docs/_build/html/*
docs/_build/html/_static/*
dist/*
54 changes: 41 additions & 13 deletions openpivgui/PostProcessing.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ def sig2noise(self):
result_fnames = []
for i, f in enumerate(self.p['fnames']):
data = np.loadtxt(f)
u, v, mask = piv_vld.sig2noise_val(
data[:, 2], data[:, 3], data[:, 5],
mask = piv_vld.sig2noise_val(
data[:, 5],
threshold=self.p['sig2noise_threshold'])

save_fname = create_save_vec_fname(
Expand All @@ -65,7 +65,8 @@ def sig2noise(self):

save(data[:, 0],
data[:, 1],
u, v,
data[:, 2],
data[:, 3],
data[:, 4] + mask,
sig2noise=data[:, 5],
filename=save_fname,
Expand All @@ -84,15 +85,18 @@ def global_std(self):
result_fnames = []
for i, f in enumerate(self.p['fnames']):
data = np.loadtxt(f)
u, v, mask = piv_vld.global_std(

mask = piv_vld.global_std(
data[:, 2], data[:, 3],
std_threshold=self.p['global_std_threshold'])

save_fname = create_save_vec_fname(
path=f,
postfix='_std_thrhld')
save(data[:, 0],
data[:, 1],
u, v,
data[:, 2],
data[:, 3],
data[:, 4] + mask,
data[:, 5],
save_fname,
Expand All @@ -110,16 +114,19 @@ def global_val(self):
result_fnames = []
for i, f in enumerate(self.p['fnames']):
data = np.loadtxt(f)
u, v, mask = piv_vld.global_val(
mask = piv_vld.global_val(
data[:, 2], data[:, 3],
u_thresholds=(self.p['MinU'], self.p['MaxU']),
v_thresholds=(self.p['MinV'], self.p['MaxV']))

save_fname = create_save_vec_fname(
path=f,
postfix='_glob_thrhld')

save(data[:, 0],
data[:, 1],
u, v,
data[:, 2],
data[:, 3],
data[:, 4] + mask,
data[:, 5],
save_fname,
Expand All @@ -138,18 +145,25 @@ def local_median(self):
result_fnames = []
for i, f in enumerate(self.p['fnames']):
data = np.loadtxt(f)
u, v, mask = piv_vld.local_median_val(
data[:, 2], data[:, 3],

u = data[:, 2].reshape(len(set(data[:,0])), len(set(data[:,1])))
v = data[:, 3].reshape(len(set(data[:,0])), len(set(data[:,1])))

mask = piv_vld.local_median_val(
u, v,
u_threshold=self.p['local_median_threshold'],
v_threshold=self.p['local_median_threshold'],
size=self.p['local_median_size'])

save_fname = create_save_vec_fname(
path=f,
postfix='_med_thrhld')

save(data[:, 0],
data[:, 1],
u, v,
data[:, 4] + mask,
data[:, 2],
data[:, 3],
data[:, 4] + mask.flatten(),
data[:, 5],
save_fname,
delimiter=self.delimiter)
Expand All @@ -161,8 +175,16 @@ def repl_outliers(self):
result_fnames = []
for i, f in enumerate(self.p['fnames']):
data = np.loadtxt(f)

shapes = (len(set(data[:,0])), len(set(data[:,1])))

u = data[:, 2].reshape(shapes)
v = data[:, 3].reshape(shapes)
flags = data[:, 4].reshape(shapes).astype(bool)

u, v = piv_flt.replace_outliers(
np.array([data[:, 2]]), np.array([data[:, 3]]),
u, v,
flags, # <- flags for outliers, mask for the static image mask
method=self.p['repl_method'],
max_iter=self.p['repl_iter'],
kernel_size=self.p['repl_kernel'])
Expand All @@ -171,7 +193,8 @@ def repl_outliers(self):
postfix='_repl')
save(data[:, 0],
data[:, 1],
u, v,
u.flatten(),
v.flatten(), # <- holes filled version
data[:, 4],
data[:, 5],
save_fname,
Expand All @@ -184,6 +207,11 @@ def smoothn_r(self):
result_fnames = []
for i, f in enumerate(self.p['fnames']):
data = np.loadtxt(f)
shapes = (len(set(data[:,0])), len(set(data[:,1])))

u = data[:, 2].reshape(shapes)
v = data[:, 3].reshape(shapes)

u, _, _, _ = piv_smt.smoothn(
data[:, 2], s=self.p['smoothn_val'], isrobust=self.p['robust'])
v, _, _, _ = piv_smt.smoothn(
Expand Down

0 comments on commit a891fda

Please sign in to comment.