示例#1
0
def get_padded_feature_stack(window_size, correction_switch, degree, pad=-1):
    
    eigen_full=extract_polarimetric.eigen_raster_full(window_size, correction_switch, degree) #9 is the window size
    cov_arr=extract_polarimetric.extract_covariance_arr(window_size, correction_switch, degree)
    
    #padding=int(np.floor(window_size/2))
    
    padding=window_size//2 if pad!=0 else 0
    
    Ihh=np.pad(cov_arr[...,0,0], padding, 'constant')
    Ihv=np.pad(cov_arr[...,1,1], padding, 'constant')
    Ivv=np.pad(cov_arr[...,2,2], padding, 'constant')
    arr_lamb1=np.pad(eigen_full[:,:,2], padding, 'constant')
    arr_lamb2=np.pad(eigen_full[:,:,1], padding, 'constant')
    arr_lamb3=np.pad(eigen_full[:,:,0], padding, 'constant')
    
    co_pol_dif=np.pad(extract_polarimetric.co_pol_diff(cov_arr), padding, 'constant')
    arr_det_cov=np.pad(np.absolute(extract_polarimetric.determinant_cov_conj(cov_arr)), padding, 'constant')
    
    R_co = Rco_X = np.pad(np.real(cov_arr[...,0,2]), padding, 'constant')
    Ico_X = np.pad(np.absolute(np.imag(cov_arr[...,0,2])), padding, 'constant')
    
    #return np.dstack((np.real(Ihh),np.real(Ihv),np.real(Ivv),np.real(arr_lamb1), np.real(arr_lamb2), np.real(arr_lamb3), np.absolute(co_pol_dif),R_co, Ico_X, np.absolute(arr_det_cov)))
    
    return np.dstack((np.real(Ihh),np.real(Ihv),np.real(Ivv),np.real(arr_lamb1), np.real(arr_lamb2), np.real(arr_lamb3), np.absolute(co_pol_dif), np.absolute(arr_det_cov)))#,R_co, Ico_X
示例#2
0
def krogager_array(window_size, correction, degree):
    cov_arr=extract_polarimetric.extract_covariance_arr(window_size, correction, degree)
    clip_extremes=True
    ShhShh=cov_arr[:,:,0,0]
    SvvSvv=cov_arr[:,:,2,2]
    ShvShv=cov_arr[:,:,1,1]
    ShhSvv_=cov_arr[:,:,0,2]
    Shh_Svv=cov_arr[:,:,2,0]
    co_pol_sum_mag=ShhShh+SvvSvv+ShhSvv_+Shh_Svv
    co_pol_diff_mag=ShhShh+SvvSvv-ShhSvv_-Shh_Svv
    ShvShh_=cov_arr[:,:,1,0]/np.sqrt(2)
    ShvSvv_=cov_arr[:,:,1,2]/np.sqrt(2)
    Shv_Shh=cov_arr[:,:,0,1]/np.sqrt(2)
    Shv_Svv=cov_arr[:,:,2,1]/np.sqrt(2)
    
    iota=1j
    Srr_mag_complex=ShvShv+ 0.25*co_pol_diff_mag +iota*(ShvShh_-ShvSvv_-Shv_Shh-Shv_Svv)#jShv+0.5*(Shh-Svv))
    Srr_mod=np.absolute(Srr_mag_complex)
    Sll_mag_complex=ShvShv+ 0.25*co_pol_diff_mag -iota*(ShvShh_-ShvSvv_-Shv_Shh-Shv_Svv)#jShv-0.5*(Shh-Svv))
    Sll_mod=np.absolute(Sll_mag_complex)
    Srl_mag=ShhShh+SvvSvv+iota*(ShhSvv_+Shh_Svv)
    Srl_mod=np.absolute(Srl_mag)
    
    ks=Srl_mod
    #if(Srr_mod>Sll_mod):
    kd=np.minimum(Sll_mod, Srr_mod)
    kh=np.maximum(Sll_mod, Srr_mod)-kd
    #else:
        #kd=Srr_mod
        #kh=Sll_mod-Srr_mod
    return np.dstack((kd,kh,kh)) #mod-> k**2
def plot_feature_space_test(window_size):
    eigen_arr = extract_polarimetric.eigen_raster_full(window_size)
    cov_arr = extract_polarimetric.extract_covariance_arr(window_size, False)
    cppr = np.absolute(extract_polarimetric.co_pol_power_ratio_1(cov_arr))

    co_pol_diff = np.absolute(extract_polarimetric.co_pol_diff(cov_arr))
    lambda_3 = np.absolute(eigen_arr[:, :, 0])

    plot_feature_space(co_pol_diff, lambda_3)
示例#4
0
def cloude_pottier(window_size):
    fig, ax = plt.subplots(nrows=3, ncols=3)
    arr = extract_polarimetric.eigen_raster_full(window_size)
    cov_arr = extract_polarimetric.extract_covariance_arr(window_size)

    plt.subplot(3, 3, 1)
    plt.imshow(arr[:, :, 2], cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('lambda_1')
    plt.colorbar()

    plt.subplot(3, 3, 2)
    plt.imshow(arr[:, :, 1], cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('lambda_2')
    plt.colorbar()

    plt.subplot(3, 3, 3)
    plt.imshow(arr[:, :, 0], cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('lambda_3')
    plt.colorbar()

    plt.subplot(3, 3, 4)
    plt.imshow(extract_polarimetric.entropy(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Entropy')
    plt.colorbar()

    plt.subplot(3, 3, 5)
    plt.imshow(extract_polarimetric.anisotropy(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Anisotropy')
    plt.colorbar()

    plt.subplot(3, 3, 6)
    plt.imshow(extract_polarimetric.pol_fraction(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Pol_fraction')
    plt.colorbar()

    plt.subplot(3, 3, 7)
    plt.imshow(extract_polarimetric.pedestal_height(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('pedestal_height')
    plt.colorbar()

    plt.show()
示例#5
0
def Pauli_RGB_array(window_size, correction):
    cov_arr = extract_polarimetric.extract_covariance_arr(
        window_size, correction)
    Shh = np.real(cov_arr[:, :, 0, 0])
    Svv = np.real(cov_arr[:, :, 2, 2])
    Shv = np.real(cov_arr[:, :, 1, 1])
    b = hist_stretch_all(Shh + Svv, 0)
    r = hist_stretch_all(np.absolute(Shh - Svv), 0)
    g = hist_stretch_all(Shv, 0)
    img_arr = np.dstack((r, g, b))
    return img_arr
示例#6
0
def Freeman_Durdun_Decomposition_1(window_size, correction, degree):
    
    #, leaping_win=False, stride_row=1, stride_col=1
    cov_arr=extract_polarimetric.extract_covariance_arr(window_size, correction, degree)
    c11=cov_arr[:,:,0,0]
    c22=cov_arr[:,:,1,1]
    c33=cov_arr[:,:,2,2]
    c13=cov_arr[:,:,0,2]
    c13_re=np.real(c13)
    c13_im=np.imag(c13)
    shp=c11.shape
    rows=shp[0]
    cols=shp[1]
    
    alpha=beta=fv=fs=fd=np.empty((rows, cols), dtype=np.complex64)
    #=c11,c11,c11
    
    #Freeman algo
    #fv=1.5*c22
    #c11=c11-fv
    #c33=c33-fv
    #c13_re=c13_re-(fv/3)
    stride_row, stride_col=1,1
    for i in range(0, rows, stride_row):
        for j in range(0, cols, stride_col):
                fv[i,j]=1.5*c22[i,j]
                c11[i,j]=c11[i,j]-fv[i,j]
                c33[i,j]=c33[i,j]-fv[i,j]
                c13_re[i,j]=c13_re[i,j]-(fv[i,j]/3)
                #single bounce scattering dominates
                if(c13_re[i,j]>=0):
                    #print(i,j)
                    alpha[i,j]=-1
                    fd[i,j]=(c11[i,j]*c33[i,j] - c13_re[i,j]**2 - c13_im[i,j]**2)/(c11[i,j]+c33[i,j]-2*c13_re[i,j])
                    fs[i,j]=c33[i,j]-fd[i,j]
                    beta[i,j]=np.sqrt((fd[i,j]+c13_re[i,j]) * (fd[i,j]-c13_re[i,j]) + c13_im[i,j]**2)/fs[i,j]
                    #single bounce scattering dominates
                if(c13_re[i,j]<0):
                    #print(i,j)
                    beta[i,j]=1
                    fs[i,j]=(c11[i,j]*c33[i,j] - c13_re[i,j]**2 - c13_im[i,j]**2)/(c11[i,j]+c33[i,j]-2*c13_re[i,j])
                    fd[i,j]=c33[i,j]-fs[i,j]
                    alpha[i,j]=np.sqrt((fs[i,j]+c13_re[i,j]) * (fs[i,j]-c13_re[i,j]) + c13_im[i,j]**2)/fd[i,j]
        print(i)
    
    Ps=fs*(1+np.absolute(beta)**2)
    Pd=fd*(1+np.absolute(alpha)**2)
    Pv=8*fv/3
    return np.dstack((Pd,Pv,Ps))
示例#7
0
def make_cov_arr_df(window_size, correction_switch, degree):

    cov_arr = extract_polarimetric.extract_covariance_arr(
        window_size, correction_switch, degree)
    shp_cov = cov_arr.shape
    linear_cov_arr = np.reshape(
        cov_arr, (np.prod(shp_cov[:2]), shp_cov[2] * shp_cov[3]))
    #print(linear_cov_arr[1])
    cov_df = pd.DataFrame(linear_cov_arr,
                          columns=[
                              'Ihh', 'ShhShv', 'ShhSvv', 'ShvShh', 'Ihv',
                              'ShvSvv', 'SvvShh', 'SvvShv', 'Ivv'
                          ])
    #cov_df=cov_df.drop(['ShvShh','SvvShh','SvvShv'], axis=1)
    return cov_df
示例#8
0
def polarimetric_features(window_size):
    fig, ax = plt.subplots(nrows=2, ncols=3)

    #arr=extract_polarimetric.eigen_raster_full(window_size)
    cov_arr = extract_polarimetric.extract_covariance_arr(window_size, False)

    plt.subplot(2, 3, 1)
    plt.imshow(np.absolute(extract_polarimetric.co_pol_power_ratio_1(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Ivv/Ihh (Co-pol power ratio)')
    plt.colorbar()

    plt.subplot(2, 3, 2)
    plt.imshow(np.absolute(extract_polarimetric.determinant_cov(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Det(Cov)')
    plt.colorbar()

    plt.subplot(2, 3, 3)
    plt.imshow(np.absolute(extract_polarimetric.co_pol_diff(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Co-pol diff (Ihh-Ivv)')
    plt.colorbar()

    plt.subplot(2, 3, 4)
    plt.imshow(np.real(extract_polarimetric.co_pol_cross_product(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Real(ShhSvv) co-pol cross_product')
    plt.colorbar()

    plt.subplot(2, 3, 5)
    plt.imshow(np.imag(extract_polarimetric.co_pol_cross_product(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Imag(ShhSvv) Co-pol cross_product')
    plt.colorbar()

    plt.show()
示例#9
0
def read_Pol_features(window_size, correction_switch, degree, rescale_switch = False, log_Transform_switch = False):
    #os.chdir('../')
    
    eigen_full = extract_polarimetric.eigen_raster_full(window_size, correction_switch, degree) #9 is the window size
    cov_arr = extract_polarimetric.extract_covariance_arr(window_size, correction_switch, degree)
    
    arr_lamb1=np.absolute(eigen_full[:,:,2])
    arr_lamb2=np.absolute(eigen_full[:,:,1])
    arr_lamb3=np.absolute(eigen_full[:,:,0])
    co_pol_dif=np.absolute(extract_polarimetric.co_pol_diff(cov_arr))
    arr_det_cov=np.absolute(extract_polarimetric.determinant_cov_conj(cov_arr))
    Rco_X = np.real(cov_arr[...,0,2])
    Ico_X = abs(np.imag(cov_arr[...,0,2]))
    I_hh = np.absolute(cov_arr[...,0,0])
    I_hv = np.absolute(cov_arr[...,1,1])
    I_vv = np.absolute(cov_arr[...,2,2])
    
    if (log_Transform_switch ==True):
        arr_lamb1 = np.log10(arr_lamb1)
        arr_lamb2 = np.log10(arr_lamb2)
        arr_lamb3 = np.log10(arr_lamb3)
        co_pol_dif = np.log10(co_pol_dif)
        arr_det_cov = np.log10(arr_det_cov)
        Rco_X = np.log10(Rco_X)
        Ico_X = np.log10(Ico_X)
        I_hh = np.log10(I_hh)
        I_hv = np.log10(I_hv)
        I_vv = np.log10(I_vv)
    
    if(rescale_switch == True):
        arr_lamb1=rescale(arr_lamb1)
        arr_lamb2=rescale(arr_lamb2)
        arr_lamb3=rescale(arr_lamb3)
        co_pol_dif = rescale(co_pol_dif)
        arr_det_cov = rescale(arr_det_cov)
        Rco_X = rescale(Rco_X)
        Ico_X = rescale(Ico_X)
        I_hh = rescale(I_hh)
        I_hv = rescale(I_hv)
        I_vv = rescale(I_vv)
    
    
    #if(log_Transform_switch ==True):
        #return 10*np.log10(np.dstack((arr_lamb1, arr_lamb2, arr_lamb3, co_pol_dif, arr_det_cov, Rco_X, Ico_X, I_hh, I_hv, I_vv)))
    #else:
    return np.dstack((arr_lamb1, arr_lamb2, arr_lamb3, co_pol_dif, arr_det_cov, Rco_X, Ico_X, I_hh, I_hv, I_vv))
示例#10
0
def Pauli_RGB_array(window_size, correction, degree):
    cov_arr=extract_polarimetric.extract_covariance_arr(window_size, correction, degree)
    clip_extremes=True
    ShhShh=cov_arr[:,:,0,0]
    SvvSvv=cov_arr[:,:,2,2]
    ShvShv=cov_arr[:,:,1,1]
    ShhSvv_=cov_arr[:,:,0,2]
    Shh_Svv=cov_arr[:,:,2,0]
    co_pol_sum_mag=ShhShh+SvvSvv+ShhSvv_+Shh_Svv
    co_pol_diff_mag=ShhShh+SvvSvv-ShhSvv_-Shh_Svv
    #b=plotting.hist_stretch_all(np.real(co_pol_sum_mag)/2, 0, clip_extremes)
    #r=plotting.hist_stretch_all(np.real(co_pol_diff_mag)/2, 0, clip_extremes)
    #g=plotting.hist_stretch_all(np.real(ShvShv), 0, clip_extremes)
    b=np.real(co_pol_sum_mag)/2
    r=np.real(co_pol_diff_mag)/2
    g=np.real(ShvShv)
    
    img_arr=np.dstack((r,g,b))
    #print(np.imag(co_pol_sum_mag))
    #print(np.imag(co_pol_diff_mag))
    return img_arr
def plot_all_UAVSAR_features(directory_MLC, window_size, correction_switch,
                             degree):
    os.chdir(directory_MLC)
    #ax = plt.subplots(3,3)
    matplotlib.rcParams.update({'font.size': 3})

    cov_arr = extract_polarimetric.extract_covariance_arr(
        window_size, correction_switch, degree)

    coh_arr = extract_polarimetric.extract_coherency_arr(
        window_size, correction_switch, degree)

    #===============1=============
    plt.subplot(5, 4, 1)
    plt.imshow(10 * np.log10(np.absolute(cov_arr[..., 0, 0])), cmap='gray')
    plt.colorbar(label='dB')
    plt.ylabel('Azimuth')
    plt.title('$I_{HH}$')

    plt.subplot(5, 4, 2)
    plt.imshow(10 * np.log10(np.absolute(cov_arr[..., 1, 1])), cmap='gray')
    plt.colorbar(label='dB')
    #plt.ylabel('Azimuth')
    plt.title('$I_{HV}$')

    plt.subplot(5, 4, 3)
    plt.imshow(10 * np.log10(np.absolute(cov_arr[..., 2, 2])), cmap='gray')
    plt.colorbar(label='dB')
    #plt.ylabel('Azimuth')
    plt.title('$I_{VV}$')

    #===============1=============
    arr_co_pol_pow_ratio = extract_polarimetric.co_pol_power_ratio_1(cov_arr)
    plt.subplot(5, 4, 4)
    plt.imshow(np.absolute(arr_co_pol_pow_ratio), cmap='gray')
    plt.colorbar()
    #plt.ylabel('Azimuth')
    plt.title('$\gamma_{CO}$')

    #===============2=============
    Rco_X = np.real(cov_arr[..., 0, 2])
    Ico_X = np.imag(cov_arr[..., 0, 2])
    plt.subplot(5, 4, 5)
    plt.imshow(10 * np.log10(Rco_X), cmap='gray')
    plt.colorbar(label='dB')
    plt.title('$r_{CO}$')
    plt.ylabel('Azimuth')

    #===============6=============
    plt.subplot(5, 4, 6)
    plt.imshow(10 * np.log10(abs(Ico_X)), cmap='gray')
    plt.colorbar(label='dB')
    plt.title('$|i_{CO}|$')

    #===============4=============
    plt.subplot(5, 4, 7)
    slc_dir = '/home/anurag/Documents/MScProject/SAR/OilSpill/North_Sea_UAVSAR/UAV_norway/UA_norway_00709_15092_000_150610_L090_CX_02'
    sd_phase_diff = extract_polarimetric.sd_co_pol_phase_diff(slc_dir)
    plt.imshow(np.absolute(sd_phase_diff), cmap='gray')
    plt.colorbar()
    plt.title('$\phi_{CO}$')

    #===============5=============
    plt.subplot(5, 4, 8)
    plt.imshow(10 * np.log10(extract_polarimetric.determinant_cov(cov_arr)),
               cmap='gray')
    plt.colorbar(label='dB')
    plt.title('$det (C_{FP})$')
    #plt.ylabel('Azimuth')

    #===============6=============
    plt.subplot(5, 4, 9)
    plt.imshow(10 *
               np.log10(np.absolute(cov_arr[..., 0, 0] - cov_arr[..., 2, 2])),
               cmap='gray')
    plt.colorbar(label='dB')
    plt.title('PD')
    plt.ylabel('Azimuth')

    #===============7=============
    plt.subplot(5, 4, 10)
    plt.imshow(np.absolute(cov_arr[..., 1, 1]) / np.absolute(
        (cov_arr[..., 0, 0] + cov_arr[..., 2, 2])),
               cmap='gray')
    plt.colorbar()
    plt.title('$P_{X}$')

    #===============8=============

    eigen_full = extract_polarimetric.eigen_raster_full(
        window_size, correction_switch, degree)
    arr_lamb1 = eigen_full[:, :, 2]
    arr_lamb2 = eigen_full[:, :, 1]
    arr_lamb3 = eigen_full[:, :, 0]

    #===============8=============
    plt.subplot(5, 4, 11)
    plt.imshow(10 * np.log10(np.absolute(arr_lamb1)), cmap='gray')
    plt.colorbar(label='dB')
    plt.title('$\lambda_{1}$')

    #===============9=============
    plt.subplot(5, 4, 12)
    plt.imshow(10 * np.log10(np.absolute(arr_lamb2)), cmap='gray')
    plt.colorbar(label='dB')
    #plt.ylabel('Azimuth')
    plt.title('$\lambda_{2}$')

    #===============10=============
    plt.subplot(5, 4, 13)
    plt.imshow(10 * np.log10(np.absolute(arr_lamb3)), cmap='gray')
    plt.colorbar(label='dB')
    plt.title('$\lambda_{3}$')
    plt.ylabel('Azimuth')
    #===============11=============
    plt.subplot(5, 4, 14)
    arr_ent = extract_polarimetric.entropy(eigen_full)
    plt.imshow(10 * np.log10(np.absolute(arr_ent)), cmap='gray')
    plt.colorbar()
    plt.title('$H$')

    #===============12=============
    plt.subplot(5, 4, 15)
    arr_pol_frac = extract_polarimetric.pol_fraction(eigen_full)
    plt.imshow(arr_pol_frac, cmap='gray')
    plt.colorbar()
    plt.title('$PF$')

    #===============13=============
    plt.subplot(5, 4, 16)
    arr_anisotropy = extract_polarimetric.anisotropy(eigen_full)
    plt.imshow(arr_anisotropy, cmap='gray')
    plt.colorbar()
    #plt.xlabel('Range')
    #plt.ylabel('Azimuth')
    plt.title('$A$')

    #================14==============
    plt.subplot(5, 4, 17)
    co_pol_corr_arr = extract_polarimetric.co_pol_correlation(cov_arr)
    plt.imshow(np.absolute(co_pol_corr_arr), cmap='gray')
    plt.colorbar()
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('$Co-pol Correlation$')

    #================15==============
    plt.subplot(5, 4, 18)
    arr_conform_coeff = extract_polarimetric.conformity_coeff(cov_arr)
    plt.imshow(np.absolute(arr_conform_coeff), cmap='gray')
    plt.colorbar()
    plt.xlabel('Range')
    plt.title('Conformity Coefficient')

    #================16==============
    plt.subplot(5, 4, 19)
    alpha = extract_polarimetric.mean_alpha_angle(eigen_full, window_size,
                                                  correction_switch, degree)
    plt.imshow(alpha, cmap='gray')
    plt.colorbar(label='degrees')
    plt.title('Mean alpha angle')
    plt.xlabel('Range')

    #================16==============
    plt.subplot(5, 4, 20)
    PH = extract_polarimetric.pedestal_height(eigen_full)
    plt.imshow(PH, cmap='gray')
    plt.colorbar()
    plt.title('PH')
    plt.xlabel('Range')

    plt.tight_layout()

    plt.savefig(
        '/home/anurag/Documents/MScProject/Meetings_ITC/Results/Features/Polarimetric_Features/Inc_corr_applied/Det_cov_conj.tiff',
        dpi=300,
        box_inches='tight',
        papertype='a4',
        orientation='portrait')

    plt.show()
示例#12
0
def plot_covariance_matrix_elements(window_size, inci_switch):
    arr = extract_polarimetric.extract_covariance_arr(window_size, inci_switch)

    fig, ax = plt.subplots(nrows=3, ncols=3)

    elements = [
        'C22', 'C33', 'C12_real', 'C12_imag', 'C13_real', 'C13_imag',
        'C23_real', 'C23_imag'
    ]

    plt.subplot(3, 3, 1)
    #plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
    plt.imshow(np.real(arr[:, :, 0, 0]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Ihh')
    plt.colorbar()

    plt.subplot(3, 3, 2)
    #plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
    plt.imshow(np.real(arr[:, :, 0, 1]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('ShhShv_real')
    plt.colorbar()

    plt.subplot(3, 3, 3)
    #plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
    plt.imshow(np.real(arr[:, :, 0, 2]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Shhvv_real')
    plt.colorbar()

    plt.subplot(3, 3, 4)
    #plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
    plt.imshow(np.imag(arr[:, :, 1, 0]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Shhvv_imag')
    plt.colorbar()

    plt.subplot(3, 3, 5)
    plt.imshow(np.real(arr[:, :, 1, 1]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Ihv')
    plt.colorbar()

    plt.subplot(3, 3, 6)
    plt.imshow(np.real(arr[:, :, 1, 2]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('ShvSvv_real')
    plt.colorbar()

    plt.subplot(3, 3, 7)
    plt.imshow(np.imag(arr[:, :, 2, 0]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('ShhSvv_imag')
    plt.colorbar()

    plt.subplot(3, 3, 8)
    plt.imshow(np.imag(arr[:, :, 2, 1]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('ShvSvv_imag')
    plt.colorbar()

    plt.subplot(3, 3, 9)
    plt.imshow(np.real(arr[:, :, 2, 2]), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Ihv')
    plt.colorbar()

    #plt.suptitle('C3 elements - No averaging applied')
    plt.show()
示例#13
0
def extract_UAVSAR_T3(directory, window_size, correction_switch, degree):
    os.chdir(directory)
    T3 = extract_polarimetric.extract_covariance_arr(window_size,
                                                     correction_switch, degree)
    return T3
示例#14
0
def polarimetric_features(window_size, correction_switch):
    #fig, ax = plt.subplots(nrows=2, ncols=3)

    #arr=extract_polarimetric.eigen_raster_full(window_size)
    cov_arr = extract_polarimetric.extract_covariance_arr(
        window_size, correction_switch)

    #plt.subplot(2,3,1)
    plt.imshow(np.absolute(extract_polarimetric.co_pol_power_ratio_1(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Ivv/Ihh (Co-pol power ratio)')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Ivv-Ihh_(Co-pol power ratio)' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(2,3,2)
    plt.imshow(incidence_angle_corr.hist_stretch(
        np.absolute(extract_polarimetric.determinant_cov(cov_arr)), 6),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Det(Cov)')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Det(Cov)_stretched' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(2,3,2)
    plt.imshow(np.absolute(extract_polarimetric.determinant_cov(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Det(Cov)')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Det(Cov)' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(2,3,3)
    plt.imshow(np.absolute(extract_polarimetric.co_pol_diff(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Co-pol diff (Ihh-Ivv)')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Co-pol diff(Ihh-Ivv)' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(2,3,4)
    plt.imshow(np.real(extract_polarimetric.co_pol_cross_product(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Real(ShhSvv) co-pol cross_product')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Real(ShhSvv) co-pol cross_product' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(2,3,5)
    plt.imshow(np.imag(extract_polarimetric.co_pol_cross_product(cov_arr)),
               cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Imag(ShhSvv) Co-pol cross_product')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Imag(ShhSvv) Co-pol cross_product',
                dpi=300)
    plt.clf()
示例#15
0
def cloude_pottier(window_size):
    #fig, ax = plt.subplots(nrows=3, ncols=3)
    arr = extract_polarimetric.eigen_raster_full(window_size)
    cov_arr = extract_polarimetric.extract_covariance_arr(window_size, False)

    #plt.subplot(3,3,1)
    plt.imshow(arr[:, :, 2], cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('lambda_1')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'lambda_1' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(3,3,2)
    plt.imshow(arr[:, :, 1], cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('lambda_2')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'lambda_2' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(3,3,3)
    plt.imshow(arr[:, :, 0], cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('lambda_3')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'lambda_3' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(3,3,4)
    plt.imshow(extract_polarimetric.entropy(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Entropy')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Entropy' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(3,3,5)
    plt.imshow(extract_polarimetric.anisotropy(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Anisotropy')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Anisotropy' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(3,3,6)
    plt.imshow(extract_polarimetric.pol_fraction(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('Pol_fraction')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'Pol_fraction' + '.tiff',
                dpi=300)
    plt.clf()

    #plt.subplot(3,3,7)
    plt.imshow(extract_polarimetric.pedestal_height(arr), cmap='gray')
    plt.xlabel('Range')
    plt.ylabel('Azimuth')
    plt.title('pedestal_height')
    plt.colorbar()
    plt.savefig('/home/anurag/Documents/MScProject/Meetings_ITC/Results/' +
                'pedestal_height' + '.tiff',
                dpi=300)
    plt.clf()
def MLC_prod(window_size, correction_switch, degree):
    return extract_polarimetric.extract_covariance_arr(window_size,
                                                       correction_switch,
                                                       degree)
示例#17
0
 correction_switch=True
 window_size_fea=9
 window_size_smoo=35
 window_size_boun=3
 
 '''
 degree=1
 ncomp=2
 inci_corr=False
 window_size_fea=9
 window_size_smoo=50
 window_size_boun=3
 '''
 
 
 mlc_orig=cov_arr=extract_polarimetric.extract_covariance_arr(1, True, 1)
 
 arr_dstack = read_Pol_features(window_size_fea, correction_switch, degree, rescale_switch = True, log_Transform_switch = False)
 
 print(arr_dstack.shape)
 
 #================get GLCM features==================
 feature = np.dstack((arr_dstack, glcm))
 print (feature.shape)
 
 #=========Visualize_histogram============
 
 
 #visualize_hist(feature) 
 
 #sys.exit()
示例#18
0
if __name__ == '__main__':
    os.chdir(
        '../North_Sea_UAVSAR/UAV_norway/UA_norway_00709_15092_000_150610_L090_CX_01/MLC_Python_New/norway_00709_15092_000_150610_L090_CX_01_mlc'
    )

    window_size_cov, correction_switch, degree = 1, False, 1
    num_features = 8
    num_classes = 2
    m = 5
    Niter = 10
    Looks = 12 * 3
    #Looks=1
    beta = 1.4  # smoothening parameter

    cov_arr = extract_polarimetric.extract_covariance_arr(
        window_size_cov, correction_switch, degree)

    cov_df = make_cov_arr_df(window_size_cov, correction_switch, degree)
    #print(cov_df)
    #print(cov_df)
    #
    TR = classification.get_training_set(cov_df)
    TS = classification.get_test_set(cov_df, padding=25)
    #print(TR.shape)
    Wishart = Wishart_Likelihood(num_classes,
                                 m,
                                 beta,
                                 cov_arr,
                                 window_size_cov,
                                 Niter,
                                 Looks,