示例#1
0
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
示例#2
0
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
示例#3
0
        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()
示例#4
0
        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