def peakInf_split_func(my_map_area, peakInf_leaf_current, contour_bin, area_pix_sum_min): filt = guass.fspecial_gauss(20, 10) my_map_filt = my_map_area my_map_log2 = np.log(my_map_filt) / np.log(2) peakInf_split_num = 1 peakInf_split = [] peakInf_split.append(peakInf_leaf_current) am_sort = [] peakInf_split_temp = {} area = peakInf_leaf_current['area'] area_pix_sum = area.sum() if area_pix_sum > area_pix_sum_min: for Z_thresh in range(contour_bin[0], contour_bin[-1] + 1): Z_bigger = (my_map_log2 >= Z_thresh) print Z_bigger [L, M] = pybwlabel.bwlabel1(Z_bigger, 8) am_init_var = [] if M > 1: peakInf_split_num = M for L_labelIdx in range(M): area = (L == L_labelIdx) #my_map_area_temp = np.dot(my_map_area,area) my_map_area_temp = my_map_area * area am_init_var[L_labelIdx] = my_map_area_temp.max() b = sorted(am_init_var) sort_idx = [] for i in b: sort_idx.append(am_init_var.index(i)) for peakIdx in range(M): L_labelIdx = sort_idx(peakIdx) area = (L == L_labelIdx) #my_map_area_temp = np.dot(my_map_area,area) my_map_area_temp = my_map_area * area am = my_map_area_temp.max() # TODO row, col = my_map_area_temp.shape for i in range(row): for j in range(col): if my_map_area_temp[i][j] == am: r, c = i, j #[r c] = find(my_map_area_temp == am); #r,c = 857,354 peakInf_split_temp['centerPos'] = [r, c] peakInf_split_temp['am'] = my_map_area_temp[r][c] peakInf_split_temp['area'] = area peakInf_split.append(peakInf_split_temp) am_sort[peakIdx] = am return peakInf_split
def peakInf_split_func(my_map_area,peakInf_leaf_current,contour_bin, area_pix_sum_min): filt = guass.fspecial_gauss(20,10) my_map_filt = my_map_area my_map_log2 = np.log(my_map_filt)/np.log(2) peakInf_split_num = 1 peakInf_split = [] peakInf_split.append(peakInf_leaf_current) am_sort = [] peakInf_split_temp = {} area = peakInf_leaf_current['area'] area_pix_sum = area.sum() if area_pix_sum > area_pix_sum_min: for Z_thresh in range(contour_bin[0],contour_bin[-1]+1): Z_bigger =(my_map_log2 >= Z_thresh) print Z_bigger [L,M]=pybwlabel.bwlabel1(Z_bigger,8) am_init_var = [] if M>1: peakInf_split_num = M for L_labelIdx in range(M): area = (L == L_labelIdx) #my_map_area_temp = np.dot(my_map_area,area) my_map_area_temp = my_map_area*area am_init_var[L_labelIdx] = my_map_area_temp.max() b = sorted(am_init_var) sort_idx = [] for i in b: sort_idx.append(am_init_var.index(i)) for peakIdx in range(M): L_labelIdx = sort_idx(peakIdx) area = (L ==L_labelIdx) #my_map_area_temp = np.dot(my_map_area,area) my_map_area_temp = my_map_area * area am = my_map_area_temp.max() # TODO row, col = my_map_area_temp.shape for i in range(row): for j in range(col): if my_map_area_temp[i][j] == am: r, c = i, j #[r c] = find(my_map_area_temp == am); #r,c = 857,354 peakInf_split_temp['centerPos'] = [r,c] peakInf_split_temp['am'] = my_map_area_temp[r][c] peakInf_split_temp['area'] = area peakInf_split.append(peakInf_split_temp) am_sort[peakIdx] = am return peakInf_split
print my_units.u_limit print my_units.v_limit print my_units.xinmap print my_units.yinmap print my_units.binwid map_org = maplot.maplot(uv_data_residual,my_units,domap) #Setting the filtering intensity based on the beam map_re = np.real(map_org) #Gussian filtering hsize = 20 sigma = 10 filt = guass.fspecial_gauss(hsize,sigma) #The filt is differ with Matlab, 0.00152093 vs 0.0014 if all_class.debug: print '-'*80 + 'filt is' print filt print '-'*80 #map_filt = np.convolve(map_re,filt,'same') map_filt = sgnl.convolve2d(map_re,filt,'same') plt.contour(map_filt) plt.title('Convolution') plt.savefig('convolution.png') map_positive = map_filt - map_filt.min() map_normal = map_positive/map_positive.max()
print my_units.u_limit print my_units.v_limit print my_units.xinmap print my_units.yinmap print my_units.binwid map_org = maplot.maplot(uv_data_residual, my_units, domap) #Setting the filtering intensity based on the beam map_re = np.real(map_org) #Gussian filtering hsize = 20 sigma = 10 filt = guass.fspecial_gauss(hsize, sigma) #The filt is differ with Matlab, 0.00152093 vs 0.0014 if all_class.debug: print '-' * 80 + 'filt is' print filt print '-' * 80 #map_filt = np.convolve(map_re,filt,'same') map_filt = sgnl.convolve2d(map_re, filt, 'same') plt.contour(map_filt) plt.title('Convolution') plt.savefig('convolution.png') map_positive = map_filt - map_filt.min() map_normal = map_positive / map_positive.max() my_map = map_normal