mirror of
https://github.com/qurator-spk/eynollah.git
synced 2025-06-09 20:29:55 +02:00
utils.find_num_col: clean up and simplify if-else
This commit is contained in:
parent
58c5d4dce6
commit
4a903d2ec3
1 changed files with 3 additions and 37 deletions
|
@ -557,57 +557,35 @@ def return_hor_spliter_by_index_for_without_verticals(peaks_neg_fin_t, x_min_hor
|
|||
|
||||
def find_num_col(regions_without_seperators, multiplier=3.8):
|
||||
regions_without_seperators_0 = regions_without_seperators[:, :].sum(axis=0)
|
||||
|
||||
##plt.plot(regions_without_seperators_0)
|
||||
##plt.show()
|
||||
|
||||
sigma_ = 35 # 70#35
|
||||
|
||||
meda_n_updown = regions_without_seperators_0[len(regions_without_seperators_0) :: -1]
|
||||
|
||||
first_nonzero = next((i for i, x in enumerate(regions_without_seperators_0) if x), 0)
|
||||
last_nonzero = next((i for i, x in enumerate(meda_n_updown) if x), 0)
|
||||
|
||||
# print(last_nonzero)
|
||||
# print(isNaN(last_nonzero))
|
||||
# last_nonzero=0#halalikh
|
||||
last_nonzero = len(regions_without_seperators_0) - last_nonzero
|
||||
|
||||
y = regions_without_seperators_0 # [first_nonzero:last_nonzero]
|
||||
|
||||
y_help = np.zeros(len(y) + 20)
|
||||
|
||||
y_help[10 : len(y) + 10] = y
|
||||
|
||||
x = np.array(range(len(y)))
|
||||
|
||||
zneg_rev = -y_help + np.max(y_help)
|
||||
|
||||
zneg = np.zeros(len(zneg_rev) + 20)
|
||||
|
||||
zneg[10 : len(zneg_rev) + 10] = zneg_rev
|
||||
|
||||
z = gaussian_filter1d(y, sigma_)
|
||||
zneg = gaussian_filter1d(zneg, sigma_)
|
||||
|
||||
peaks_neg, _ = find_peaks(zneg, height=0)
|
||||
peaks, _ = find_peaks(z, height=0)
|
||||
|
||||
peaks_neg = peaks_neg - 10 - 10
|
||||
|
||||
last_nonzero = last_nonzero - 100
|
||||
first_nonzero = first_nonzero + 200
|
||||
|
||||
peaks_neg = peaks_neg[(peaks_neg > first_nonzero) & (peaks_neg < last_nonzero)]
|
||||
|
||||
peaks = peaks[(peaks > 0.06 * regions_without_seperators.shape[1]) & (peaks < 0.94 * regions_without_seperators.shape[1])]
|
||||
peaks_neg = peaks_neg[(peaks_neg > 370) & (peaks_neg < (regions_without_seperators.shape[1] - 370))]
|
||||
|
||||
# print(peaks)
|
||||
interest_pos = z[peaks]
|
||||
|
||||
interest_pos = interest_pos[interest_pos > 10]
|
||||
|
||||
# plt.plot(z)
|
||||
# plt.show()
|
||||
interest_neg = z[peaks_neg]
|
||||
|
@ -621,9 +599,7 @@ def find_num_col(regions_without_seperators, multiplier=3.8):
|
|||
min_peaks_neg = 0 # np.min(interest_neg)
|
||||
|
||||
# print(np.min(interest_pos),np.max(interest_pos),np.max(interest_pos)/np.min(interest_pos),'minmax')
|
||||
# $print(min_peaks_pos)
|
||||
dis_talaei = (min_peaks_pos - min_peaks_neg) / multiplier
|
||||
# print(interest_pos)
|
||||
grenze = min_peaks_pos - dis_talaei # np.mean(y[peaks_neg[0]:peaks_neg[len(peaks_neg)-1]])-np.std(y[peaks_neg[0]:peaks_neg[len(peaks_neg)-1]])/2.0
|
||||
|
||||
# print(interest_neg,'interest_neg')
|
||||
|
@ -650,15 +626,11 @@ def find_num_col(regions_without_seperators, multiplier=3.8):
|
|||
if (peaks_neg_fin[0] > p_g_u and peaks_neg_fin[1] > p_g_u) or (peaks_neg_fin[0] < p_g_l and peaks_neg_fin[1] < p_g_l) or ((peaks_neg_fin[0] + 200) < p_m and peaks_neg_fin[1] < p_m) or ((peaks_neg_fin[0] - 200) > p_m and peaks_neg_fin[1] > p_m):
|
||||
num_col = 1
|
||||
peaks_neg_fin = []
|
||||
else:
|
||||
pass
|
||||
|
||||
if num_col == 2:
|
||||
if (peaks_neg_fin[0] > p_g_u) or (peaks_neg_fin[0] < p_g_l):
|
||||
num_col = 1
|
||||
peaks_neg_fin = []
|
||||
else:
|
||||
pass
|
||||
|
||||
##print(len(peaks_neg_fin))
|
||||
|
||||
|
@ -673,7 +645,7 @@ def find_num_col(regions_without_seperators, multiplier=3.8):
|
|||
for i in range(len(peaks_neg_fin)):
|
||||
if i == 0:
|
||||
forest.append(peaks_neg_fin[i])
|
||||
if i < (len(peaks_neg_fin) - 1):
|
||||
if i < len(peaks_neg_fin) - 1:
|
||||
if diff_peaks[i] <= cut_off:
|
||||
forest.append(peaks_neg_fin[i + 1])
|
||||
if diff_peaks[i] > cut_off:
|
||||
|
@ -687,7 +659,7 @@ def find_num_col(regions_without_seperators, multiplier=3.8):
|
|||
if not isNaN(forest[np.argmin(z[forest])]):
|
||||
peaks_neg_true.append(forest[np.argmin(z[forest])])
|
||||
|
||||
num_col = (len(peaks_neg_true)) + 1
|
||||
num_col = len(peaks_neg_true) + 1
|
||||
p_l = 0
|
||||
p_u = len(y) - 1
|
||||
p_m = int(len(y) / 2.0)
|
||||
|
@ -706,15 +678,11 @@ def find_num_col(regions_without_seperators, multiplier=3.8):
|
|||
peaks_neg_true = [peaks_neg_true[0]]
|
||||
elif (peaks_neg_true[1] < p_g_u and peaks_neg_true[1] > p_g_l) and (peaks_neg_true[0] < p_quarter):
|
||||
peaks_neg_true = [peaks_neg_true[1]]
|
||||
else:
|
||||
pass
|
||||
|
||||
if num_col == 2:
|
||||
if (peaks_neg_true[0] > p_g_u) or (peaks_neg_true[0] < p_g_l):
|
||||
num_col = 1
|
||||
peaks_neg_true = []
|
||||
else:
|
||||
pass
|
||||
|
||||
diff_peaks_annormal = diff_peaks[diff_peaks < 360]
|
||||
|
||||
|
@ -732,9 +700,7 @@ def find_num_col(regions_without_seperators, multiplier=3.8):
|
|||
else:
|
||||
peaks_neg_fin_new.append(peaks_neg_fin[ii + 1])
|
||||
|
||||
elif (ii - 1) in arg_help_ann:
|
||||
pass
|
||||
else:
|
||||
elif (ii - 1) not in arg_help_ann:
|
||||
peaks_neg_fin_new.append(peaks_neg_fin[ii])
|
||||
else:
|
||||
peaks_neg_fin_new = peaks_neg_fin
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue