예제 #1
0
def main(argv):

    inps = cmdLineParse()
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)

    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    Mdate = templateDict['masterDate']

    processDir = scratchDir + '/' + projectName + "/PROCESS"
    slcDir = scratchDir + '/' + projectName + "/SLC"
    rslcDir = scratchDir + '/' + projectName + "/RSLC"
    dateList = ut.get_project_slcList(projectName)

    for i in range(len(dateList)):
        slc_dir = slcDir + '/' + dateList[i]
        print(slc_dir)
        for j in range(3):
            kk = j
            SLC = slc_dir + '/' + dateList[i] + '.IW' + str(kk + 1) + '.slc'
            SLCPar = slc_dir + '/' + dateList[i] + '.IW' + str(kk +
                                                               1) + '.slc.par'
            TOPPar = slc_dir + '/' + dateList[i] + '.IW' + str(
                kk + 1) + '.slc.TOPS_par'
            BURST = slc_dir + '/' + dateList[i] + '.IW' + str(kk +
                                                              1) + '.burst.par'

            call_str = 'SLC_burst_corners ' + SLCPar + ' ' + TOPPar + ' > ' + BURST
            os.system(call_str)

    sys.exit(1)
예제 #2
0
def main(argv):

    inps = cmdLineParse()
    projectName = inps.projectName
    processor = inps.processor
    scratchDir = os.getenv('SCRATCHDIR')
    slcDir = scratchDir + '/' + projectName + "/SLC"
    KK = os.listdir(slcDir)
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)

    masterDate = templateDict['masterDate']
    SLC_PAR = slcDir + '/' + masterDate + '/' + masterDate + '.slc.par'

    demDir = os.getenv('DEMDIR')
    if not os.path.isdir(demDir):
        os.mkdir(demDir)

    demDir1 = demDir + '/' + projectName
    if not os.path.isdir(demDir1):
        os.mkdir(demDir1)

    os.chdir(demDir1)
    call_str = 'makedem.py ' + '-s ' + SLC_PAR + ' -p ' + processor + ' -o ' + projectName
    os.system(call_str)

    print('Generate DEM for project %s is done.' % projectName)
    sys.exit(1)
예제 #3
0
파일: raw2ifg_s1.py 프로젝트: thorly/PyINT
def main(argv):

    start_time = time.time()
    inps = cmdLineParse()
    Mdate = inps.Mdate
    Sdate = inps.Sdate

    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    masterDate = templateDict['masterDate']
    downDir = scratchDir + '/' + projectName + '/DOWNLOAD'
    M_raw = glob.glob(downDir + '/S1*_' + ut.yyyymmdd(Mdate) + '*')[0]
    S_raw = glob.glob(downDir + '/S1*_' + ut.yyyymmdd(Sdate) + '*')[0]
    slcDir = scratchDir + '/' + projectName + '/SLC'

    ######### down 2 slc #############
    call_str = 'down2slc_sen.py ' + M_raw + ' ' + slcDir
    os.system(call_str)

    call_str = 'down2slc_sen.py ' + S_raw + ' ' + slcDir
    os.system(call_str)

    ########## extract common bursts ##
    #call_str = 'extract_s1_bursts.py ' + projectName + ' ' + Mdate
    #os.system(call_str)

    #call_str = 'extract_s1_bursts.py ' + projectName + ' ' + Sdate
    #os.system(call_str)

    ######### generate rdc_dem ##########
    call_str = 'generate_rdc_dem.py ' + projectName
    os.system(call_str)

    ########## coregister SLC ########

    call_str = 'coreg_s1_gamma.py ' + projectName + ' ' + Mdate
    os.system(call_str)

    call_str = 'coreg_s1_gamma.py ' + projectName + ' ' + Sdate
    os.system(call_str)

    ######## Interferometry process ###########
    call_str = 'diff_gamma.py ' + projectName + ' ' + Mdate + ' ' + Sdate
    os.system(call_str)

    call_str = 'unwrap_gamma.py ' + projectName + ' ' + Mdate + ' ' + Sdate
    os.system(call_str)

    call_str = 'geocode_gamma.py ' + projectName + ' ' + Mdate + '-' + Sdate
    os.system(call_str)

    print("Generate Ifg from raw-TOPs data is done! ")
    ut.print_process_time(start_time, time.time())
    sys.exit(1)
예제 #4
0
def main(argv):
    start_time = time.time()
    inps = cmdLineParse()
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    projectDir = scratchDir + '/' + projectName
    ifgDir = scratchDir + '/' + projectName + '/ifgrams'
    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']

    if inps.ifgarmListTxt: ifgramList_txt = inps.ifgarmListTxt
    else: ifgramList_txt = scratchDir + '/' + projectName + '/ifgram_list.txt'
    ifgList0 = ut.read_txt2array(ifgramList_txt)
    ifgList = ifgList0[:, 0]

    err_txt = scratchDir + '/' + projectName + '/geocode_gamma_all.err'
    if os.path.isfile(err_txt): os.remove(err_txt)

    data_para = []
    for i in range(len(ifgList)):
        #m0 = ut.yyyymmdd(ifgList[i].split('-')[0])
        #s0 = ut.yyyymmdd(ifgList[i].split('-')[1])
        cmd0 = ['geocode_gamma.py', projectName, ifgList[i]]
        data0 = [cmd0, err_txt]
        geo_file0 = ifgDir + '/' + ifgList[i] + '/geo_' + ifgList[
            i] + '_' + rlks + 'rlks.diff_filt.unw.bmp'

        k00 = 0
        if os.path.isfile(geo_file0):
            if os.path.getsize(geo_file0) > 0:
                k00 = 1
        if k00 == 0:
            data_para.append(data0)

        data_para.append(data0)

    ut.parallel_process(data_para,
                        work,
                        n_jobs=inps.parallelNumb,
                        use_kwargs=False)
    print("Geocode interferograms for project %s is done! " % projectName)
    ut.print_process_time(start_time, time.time())

    sys.exit(1)
예제 #5
0
def main(argv):

    inps = cmdLineParse()
    projectName = inps.projectName
    Date = inps.date

    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"

    slcDir = scratchDir + '/' + projectName + "/SLC"
    rslcDir = scratchDir + '/' + projectName + "/RSLC"
    if not os.path.isdir(rslcDir): os.mkdir(rslcDir)
    #workDir    = processDir + '/' + igramDir
    workDir = rslcDir + '/' + Date
    if not os.path.isdir(workDir): os.mkdir(workDir)

    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    Mdate = templateDict['masterDate']

    rslc = workDir + '/' + Date + '.rslc'
    rslcPar = workDir + '/' + Date + '.rslc.par'

    amp = workDir + '/' + Date + '_' + rlks + 'rlks.amp'
    ampPar = workDir + '/' + Date + '_' + rlks + 'rlks.amp.par'

    k0 = 0
    if os.path.isfile(ampPar):
        if os.path.getsize(ampPar) > 0:
            k0 = 1

    if k0 == 0:
        call_str = 'multi_look ' + rslc + ' ' + rslcPar + ' ' + amp + ' ' + ampPar + ' ' + rlks + ' ' + azlks
        os.system(call_str)

        nWIDTH = ut.read_gamma_par(ampPar, 'read', 'range_samples')

        call_str = 'raspwr ' + amp + ' ' + nWIDTH
        os.system(call_str)

    print("Generate amplitude image for RSLC %s is done !!" % Date)
    sys.exit(1)
예제 #6
0
def main(argv):
    
    inps = cmdLineParse()     
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict=ut.update_template(templateFile)
    templateDict['network_method'] = inps.method
    templateDict['conNumb'] = inps.conNumb
    
    processDir = scratchDir + '/' + projectName
    slcDir     = scratchDir + '/' + projectName + "/SLC"
    rslcDir    = scratchDir + '/' + projectName + '/RSLC'
    
    #slc_list = ut.get_project_slcList(projectName)    
    masterDate = templateDict['masterDate']
    
    if inps.coreg: 
        slcDir  = rslcDir
        slc0    = '.rslc'
        slcpar0 = '.rslc.par'
    else:
        slc0    = '.slc'
        slcpar0 = '.slc.par'
        
    slc_list0 = [os.path.basename(fname) for fname in sorted(glob.glob(slcDir + '/*'))]
    slc_list = []
    for k0 in slc_list0:
        if ut.is_number(k0):
            slc_list.append(k0)
    slc_list = sorted(slc_list)    
    
    SLCfile = []
    SLCParfile = []
    for kk in range(len(slc_list)):
        str_slc = slcDir + "/" + slc_list[kk] +"/" + slc_list[kk] + slc0
        str_slc_par = slcDir + "/" + slc_list[kk] +"/" + slc_list[kk] + slcpar0
        SLCfile.append(str_slc)
        SLCParfile.append(str_slc_par)       

    RefPar = slcDir + "/" + masterDate +"/" + masterDate + slcpar0
    SLC_Tab = scratchDir + '/' + projectName  + "/SLC_Tab"
    
    SLC_Tab_all = processDir + "/SLC_Tab_all"
    TS_Berp_all = processDir + "/TS_Berp_all"
    TS_Itab_all = processDir + "/TS_Itab_all"
    itab_type = '1'
    pltflg = '0'
    
    if os.path.isfile(SLC_Tab): os.remove(SLC_Tab)
    with open(SLC_Tab, 'a') as f:
        for kk in range(len(SLCfile)):
            f.write(str(SLCfile[kk])+ ' '+str(SLCParfile[kk])+'\n')

    ## Get all of the pairs using GAMMA
    call_str = "base_calc " + SLC_Tab + " " + RefPar + " " + TS_Berp_all + " " + TS_Itab_all + " " + '1 0 ' + '- - - -  >/dev/null'
    os.system(call_str)
      
    with open(TS_Berp_all, 'r') as f:
        lines = f.readlines()  
        
    TS_Net_all = ut.read_txt2array(TS_Berp_all)
    if len(lines) ==1:
        TS_Net_all = TS_Net_all.reshape(1,9)

    TS_Net = TS_Net_all[0:(len(SLCfile)-1),:]
    date_list, tbase_list, pbase_list =  get_datelist_bperplist(TS_Net)
    bl_list_txt =  scratchDir + '/' + projectName + '/bl_list.txt'
    with open(bl_list_txt, 'w') as f:
        for kk in range(len(SLCfile)):
            f.write(str(date_list[kk])+ ' '+str(pbase_list[kk])+'\n')
       
    exclude_list = []
    if 'exclude_date' in templateDict: 
        exclude_list = templateDict['exclude_date'].split(',')[:]
    if inps.excludeDate:
        exclude_list0 = inps.excludeDate
        for k0 in exclude_list0:
            exclude_list.append(k0)
    templateDict['exclude_list'] = exclude_list
    
    if inps.startDate: templateDict['startDate'] = inps.startDate
    if inps.endDate: templateDict['endDate'] = inps.endDate
    if inps.maxTB: templateDict['max_tb'] = inps.maxTB
    if inps.maxSB: templateDict['max_sb'] = inps.maxSB
        
    date_list, tbase_list, pbase_list = prune_datelist(date_list, tbase_list, pbase_list, templateDict)
    date12_list, ifgram_tbase_list, ifgram_pbase_list = select_network_candidate(date_list,tbase_list,pbase_list,templateDict)
    date12_list_final, ifgram_tbase_list_final, ifgram_pbase_list_final =  prune_network(date12_list, ifgram_tbase_list, ifgram_pbase_list, templateDict)
    
    if inps.outfile: out_file = inps.outfile
    else: out_file = scratchDir + '/' + projectName  + "/ifgram_list.txt"
        
    write_ifgram_list(date12_list_final,ifgram_tbase_list_final,ifgram_pbase_list_final, out_file)
    sys.exit(1)
예제 #7
0
def main(argv):
    
    inps = cmdLineParse() 
    projectName = inps.projectName
    Sdate = inps.Sdate

    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict=ut.update_template(templateFile)
           
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    Mdate =  templateDict['masterDate']
    
    processDir = scratchDir + '/' + projectName + "/PROCESS"
    slcDir     = scratchDir + '/' + projectName + "/SLC"
    rslcDir     = scratchDir + '/' + projectName + "/RSLC"
    
    workDir0 = rslcDir + '/' + Sdate
    #if not os.path.isdir(rslcDir):
    #    os.mkdir(rslcDir)
        
    MslcDir    = slcDir + '/' + Mdate
    SslcDir    = slcDir + '/' + Sdate
    #MBurst_Par = slcDir + '/' + Mdate + '/' + 
    workDir = slcDir + '/' + Sdate
    
    BURST = workDir + '/' + Mdate + '_' + Sdate + '.common_burst_ref'
    
    MslcImg = workDir + '/'+Mdate + '.slc'
    MslcPar = workDir + '/'+Mdate + '.slc.par'    
    
    MamprlksImg = workDir + '/'+Mdate +   '_' + rlks + 'rlks' + '.amp'
    MamprlksPar = workDir + '/'+Mdate +   '_' + rlks +'rlks' + '.amp.par' 
    
    SslcImg = workDir + '/'+ Sdate + '.slc'
    SslcPar = workDir + '/'+ Sdate + '.slc.par'    
    
    SamprlksImg = workDir + '/'+ Sdate +  '_' + rlks + 'rlks' + '.amp'
    SamprlksPar = workDir + '/'+ Sdate +  '_' + rlks + 'rlks' + '.amp.par' 
    
    if not os.path.isdir(workDir):
        os.mkdir(workDir)
    
    get_common_burst(MslcDir,SslcDir,BURST)
    AA = ut.read_txt2array(BURST)
    NL = ut.get_txt_lines(BURST)
    
    if NL ==1:
        AA = AA.reshape(1,len(AA))
    
    
    SW = templateDict['start_swath']
    EW = templateDict['end_swath']             
                  
    SB = templateDict['start_burst']
    EB = templateDict['end_burst'] 
    
        
    SLC2_tab = workDir + '/' + Sdate + '_SLC_Tab0'
        

    SLC2_INF_tab = workDir + '/' + Sdate + '_SLC_Tab'
    SLC2_RSLC_tab = workDir + '/' + Sdate + '_RSLC_Tab'
    
    BURST2_tab = workDir + '/' + Sdate + '_Burst_Tab'
    
    if os.path.isfile(SLC2_tab):
        os.remove(SLC2_tab)
        
    if os.path.isfile(SLC2_INF_tab):
        os.remove(SLC2_INF_tab)
        
    if os.path.isfile(SLC2_RSLC_tab):
        os.remove(SLC2_RSLC_tab)
    
    if os.path.isfile(BURST2_tab):
        os.remove(BURST2_tab)
    
    for kk in range(int(EW)-int(SW)+1):
        
        call_str = 'echo ' + SslcDir + '/' + Sdate+'.IW'+str(int(SW)+kk) + '.slc' + ' ' + SslcDir + '/'+ Sdate + '.IW'+str(int(SW)+kk) +'.slc.par' + ' ' + SslcDir + '/'+ Sdate+'.IW'+str(int(SW)+kk) + '.slc.TOPS_par >>' + SLC2_tab
        os.system(call_str)
        
        ii = int(SW) + kk
        SB1=int(AA[ii-1,0])
        EB1=int(AA[ii-1,1])
        
        SB2=int(AA[ii-1,2])
        EB2=int(AA[ii-1,3])
        
        if not int(SB)==1:
            SB2 = SB2 + int(SB) - int(SB1)
        if not int(EB)==100:
            EB2 = SB2 + int(EB) - int(SB)
        
        call_str = 'echo ' + workDir + '/'+ Sdate+ '_'+ str(int(SB2)) + str(int(EB2)) +'.IW'+str(int(SW)+kk)+ '.slc' + ' ' + workDir + '/' + Sdate + '_'+ str(int(SB2)) + str(int(EB2)) +'.IW'+ str(int(SW)+kk)+ '.slc.par' + ' ' + workDir + '/'+ Sdate+'_'+ str(int(SB2)) + str(int(EB2)) + '.IW'+str(int(SW)+kk)+ '.slc.TOPS_par >>' + SLC2_INF_tab
        os.system(call_str)
        
        call_str = 'echo ' + workDir0 + '/'+ Sdate+ '_'+ str(int(SB2)) + str(int(EB2)) +'.IW'+str(int(SW)+kk)+ '.rslc' + ' ' + workDir + '/' + Sdate + '_'+ str(int(SB2)) + str(int(EB2)) +'.IW'+ str(int(SW)+kk)+ '.rslc.par' + ' ' + workDir + '/'+ Sdate+'_'+ str(int(SB2)) + str(int(EB2)) + '.IW'+str(int(SW)+kk)+ '.rslc.TOPS_par >>' + SLC2_RSLC_tab
        os.system(call_str)
        
        call_str = 'echo ' + str(int(SB2)) + ' ' + str(int(EB2)) + ' >>' + BURST2_tab
        os.system(call_str)

      
    TEST = SamprlksPar
    k0 = 0
    if os.path.isfile(TEST):
        if os.path.getsize(TEST) > 0:
            k0 = 1
    
    if k0==0:
    
        call_str = 'SLC_copy_ScanSAR ' + SLC2_tab + ' ' + SLC2_INF_tab  + ' ' + BURST2_tab 
        os.system(call_str)
    
        call_str = 'SLC_mosaic_S1_TOPS ' + SLC2_INF_tab + ' ' + SslcImg + ' ' + SslcPar + ' ' + rlks + ' ' +azlks
        os.system(call_str)
    
        call_str = 'multi_look ' + SslcImg + ' ' + SslcPar + ' ' + SamprlksImg + ' ' + SamprlksPar + ' ' + rlks + ' ' + azlks
        os.system(call_str) 
    
        nWidth = ut.read_gamma_par(SamprlksPar, 'read', 'range_samples')
        call_str = 'raspwr ' + SamprlksImg + ' ' + nWidth 
        os.system(call_str)  
    
    sys.exit(1)
예제 #8
0
def main(argv):
    
    start_time = time.time()
    inps = cmdLineParse()
    projectName = inps.projectName
    templateDir = os.getenv('TEMPLATEDIR')
    scratchDir = os.getenv('SCRATCHDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)
    masterDate = templateDict['masterDate']
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    HGTSIM = scratchDir + '/' + projectName + '/DEM/' + ut.yyyymmdd(masterDate) + '_' + rlks + 'rlks.rdc.dem' 
    
    ### download data
    
    if templateDict['download_data'] == '1':
        print('Start to download SAR data using SSARA...')
        call_str = 'ssara_federated_query.py -p ' +  templateDict['sensor'] + ' -r ' + templateDict['track'] + ' -f ' + templateDict['frame'] + ' -s ' + templateDict['start_time'] + ' -e ' + templateDict['end_time'] + ' --print --download --parallel ' + templateDict['down_parallel']
        print(call_str)
        os.system(call_str)
        
    ### raw 2 slc 
    if templateDict['raw2slc_all'] == '1':   # only for S1 data now
        print('Start to convert downloaded-raw data into SLC ...')
        print('Number of processor: %s' % str(templateDict['raw2slc_all_parallel']))
        call_str = 'down2slc_sen_all.py ' + projectName + ' --parallel ' + templateDict['raw2slc_all_parallel']
        os.system(call_str)
        
    ### extract bursts  
    if templateDict['extract_burst_all'] == '1':
        print('Start to extract common bursts ...')
        print('Number of processor: %s' % str(templateDict['extract_all_parallel']))
        call_str = 'extract_s1_bursts_all.py ' + projectName + ' --parallel ' + templateDict['extract_all_parallel']
        os.system(call_str)
        
    ### generate rdc_dem
    if not os.path.isfile(HGTSIM):
        print('Start to generate geometry file ...')
        call_str = 'generate_rdc_dem.py ' + projectName 
        os.system(call_str)
    
    ### coreg SLC  
    if templateDict['coreg_all'] == '1':
        print('Start to coregister SLCs ...')
        print('Number of processor: %s' % str(templateDict['coreg_all_parallel']))
        call_str = 'coreg_gamma_all.py ' + projectName + ' --parallel ' + templateDict['coreg_all_parallel']
        os.system(call_str)
    
    ### select interferometric pairs 
    if templateDict['select_pairs'] == '1':
        print('Start to select interferometric pairs ...')
        print('Network selection method: %s' % templateDict['network_method'])
        #print('Meximum temporal baseline threshold: %s' % templateDict['max_tb'])
        #print('Meximum spatial baseline threshold: %s' % templateDict['max_sb'])
        call_str = 'select_pairs.py ' + projectName
        os.system(call_str)
    
    ### diff ifg
    if templateDict['diff_all'] == '1':
        print('Start to generate differential interferograms ...')
        print('Number of processor: %s' % str(templateDict['diff_all_parallel']))
        call_str = 'diff_gamma_all.py ' + projectName + ' --parallel ' + templateDict['diff_all_parallel']
        os.system(call_str)
    
    ### unw ifg
    if templateDict['unwrap_all'] == '1':
        print('Start to unwrap interferometric phases ...')
        print('Number of processor: %s' % str(templateDict['unwrap_all_parallel']))
        call_str = 'unwrap_gamma_all.py ' + projectName + ' --parallel ' + templateDict['unwrap_all_parallel']
        os.system(call_str)
        
    ### geocode ifg
    if templateDict['geocode_all'] == '1':
        print('Start to geocode Ifgs ...')
        print('Number of processor: %s' % str(templateDict['geocode_all_parallel']))
        call_str = 'geocode_gamma_all.py ' + projectName + ' --parallel ' + templateDict['geocode_all_parallel']
        os.system(call_str)
        
    ### load data
    if templateDict['load_data'] == '1':
        print('Start to load data for mintPy time-series analysis ...')                                                   
        call_str = 'load_mintpy.py ' + projectName
        os.system(call_str)
    
    print("PyINT processing for project %s is done." % projectName)
    ut.print_process_time(start_time, time.time()) 
    sys.exit(1)
예제 #9
0
파일: coreg_gamma.py 프로젝트: thorly/PyINT
def main(argv):

    inps = cmdLineParse()
    projectName = inps.projectName
    Sdate = inps.sdate

    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"

    slcDir = scratchDir + '/' + projectName + "/SLC"
    rslcDir = scratchDir + '/' + projectName + "/RSLC"
    if not os.path.isdir(rslcDir): os.mkdir(rslcDir)
    #workDir    = processDir + '/' + igramDir
    workDir = rslcDir + '/' + Sdate
    if not os.path.isdir(workDir): os.mkdir(workDir)

    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    Mdate = templateDict['masterDate']

    demDir = scratchDir + '/' + projectName + '/DEM'

    SslcDir = slcDir + '/' + Sdate
    Samp = slcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SampPar = slcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.par'
    Sramp = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SrampPar = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.par'

    Sslc = slcDir + '/' + Sdate + '/' + Sdate + '.slc'
    SslcPar = slcDir + '/' + Sdate + '/' + Sdate + '.slc.par'

    SrslcDir = rslcDir + "/" + Sdate

    Srslc = rslcDir + "/" + Sdate + ".rslc"
    SrslcPar = rslcDir + "/" + Sdate + ".rslc.par"

    Srslc0 = rslcDir + "/" + Sdate + ".rslc0"
    SrslcPar0 = rslcDir + "/" + Sdate + ".rslc0.par"

    #####################################################
    ## copy all of the master files into slave folder for parallel processing
    remove_file = []
    Mslc0 = slcDir + '/' + Mdate + '/' + Mdate + '.slc'
    MslcPar0 = slcDir + '/' + Mdate + '/' + Mdate + '.slc.par'
    Mamp0 = slcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar0 = slcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    HGTSIM0 = demDir + '/' + Mdate + '_' + rlks + 'rlks.rdc.dem'
    if not os.path.isfile(HGTSIM0):
        call_str = 'generate_rdc_dem.py ' + projectName
        os.system(call_str)

    Mslc = slcDir + '/' + Sdate + '/' + Mdate + '.slc'
    MslcPar = slcDir + '/' + Sdate + '/' + Mdate + '.slc.par'
    Mamp = slcDir + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar = slcDir + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    HGTSIM = slcDir + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.rdc.dem'

    ut.copy_file(HGTSIM0, HGTSIM)
    ut.copy_file(Mslc0, Mslc)
    ut.copy_file(MslcPar0, MslcPar)
    ut.copy_file(Mamp0, Mamp)
    ut.copy_file(MampPar0, MampPar)

    #######################################################
    #   define process files #
    lt0 = workDir + "/lt0"
    lt1 = workDir + "/lt1"
    mli0 = workDir + "/mli0"
    diff0 = workDir + "/diff0"
    offs0 = workDir + "/offs0"
    snr0 = workDir + "/snr0"
    offsets0 = workDir + "/offsets0"
    coffs0 = workDir + "/coffs0"
    coffsets0 = workDir + "/coffsets0"
    off = workDir + "/" + IFGPair + ".off"
    offs = workDir + "/offs"
    snr = workDir + "/snr"
    offsets = workDir + "/offsets"
    coffs = workDir + "/coffs"
    coffsets = workDir + "/coffsets"
    ##############################################

    call_str = "rdc_trans " + MampPar + " " + HGTSIM + " " + SampPar + " " + lt0
    os.system(call_str)

    width_Mamp = ut.read_gamma_par(MampPar, 'read', 'range_samples')
    width_Samp = ut.read_gamma_par(SampPar, 'read', 'range_samples')
    line_Samp = ut.read_gamma_par(SampPar, 'read', 'azimuth_lines')

    call_str = "geocode " + lt0 + " " + MamprlksImg + " " + width_Mamp + " " + mli0 + " " + width_Samp + " " + line_Samp + " 2 0"
    os.system(call_str)

    call_str = "create_diff_par " + SampPar + " - " + diff0 + " 1 0"
    os.system(call_str)

    call_str = "init_offsetm " + mli0 + " " + Samp + " " + diff0 + " 1 1"
    os.system(call_str)

    call_str = "offset_pwrm " + mli0 + " " + Samp + " " + diff0 + " " + offs0 + " " + snr0 + " 256 256 " + offsets0 + " 2 32 32"
    os.system(call_str)

    call_str = "offset_fitm " + offs0 + " " + snr0 + " " + diff0 + " " + coffs0 + " " + coffsets0 + " - 4"
    os.system(call_str)

    call_str = "gc_map_fine " + lt0 + " " + width_Mamp + " " + diff0 + " " + lt1
    os.system(call_str)

    call_str = "SLC_interp_lt " + Sslc + " " + MslcPar + " " + SslcPar + " " + lt1 + " " + MampPar + " " + SampPar + " - " + Srslc0 + " " + Srslc0Par
    os.system(call_str)

    # further refinement processing for resampled SLC

    call_str = "create_offset " + MslcPar + " " + Srslc0Par + " " + off + " 1 - - 0"
    os.system(call_str)

    #call_str = "offset_pwr " + MslcImg + " " + Srslc0Img + " " + MslcPar + " " + Srslc0Par + " " + off + " " + offs + " " + snr + " 128 128 " + offsets + " 2 32 64"
    #os.system(call_str)

    #call_str = "offset_fit "  + offs + " " + snr + " " + off + " " + coffs + " " + coffsets + " - 3"
    #os.system(call_str)

    call_str = "offset_pwr " + Mslc + " " + Srslc0 + " " + MslcPar + " " + Srslc0Par + " " + off + " " + offs + " " + snr + " " + templateDict[
        'rwin4cor'] + " " + templateDict[
            'azwin4cor'] + " " + offsets + " 2 " + templateDict[
                'rsample4cor'] + " " + templateDict['azsample4cor']
    os.system(call_str)

    call_str = "offset_fit " + offs + " " + snr + " " + off + " " + coffs + " " + coffsets + " - 3"
    os.system(call_str)

    rfwin4cor = str(int(1 / 2 * int(templateDict['rwin4cor'])))
    azfwin4cor = str(int(1 / 2 * int(templateDict['azwin4cor'])))

    rfsample4cor = str(2 * int(templateDict['rsample4cor']))
    azfsample4cor = str(2 * int(templateDict['azsample4cor']))

    call_str = "offset_pwr " + MslcImg + " " + Srslc0 + " " + MslcPar + " " + Srslc0Par + " " + off + " " + offs + " " + snr + " " + rfwin4cor + " " + azfwin4cor + " " + offsets + " 2 " + rfsample4cor + " " + azfsample4cor
    os.system(call_str)

    call_str = "offset_fit " + offs + " " + snr + " " + off + " " + coffs + " " + coffsets + " - 3 >" + OFFSTD
    os.system(call_str)

    ############################################     Resampling     ############################################

    call_str = "SLC_interp_lt " + Sslc + " " + MslcPar + " " + SslcPar + " " + lt1 + " " + MampPar + " " + SampPar + " " + off + " " + Srslc + " " + SrslcPar
    os.system(call_str)

    call_str = 'multi_look ' + Srslc + ' ' + SrslcPar + ' ' + Sramp + ' ' + SrampPar + ' ' + rlks + ' ' + azlks
    os.system(call_str)

    nWidth = ut.read_gamma_par(SrampPar, 'read', 'range_samples')
    call_str = 'raspwr ' + Sramp + ' ' + nWidth
    os.system(call_str)

    os.remove(lt0)
    os.remove(lt1)
    os.remove(mli0)
    os.remove(diff0)
    os.remove(offs0)
    os.remove(snr0)
    os.remove(offsets0)
    os.remove(coffs0)
    os.remove(coffsets0)
    os.remove(off)
    os.remove(offs)
    os.remove(snr)
    os.remove(offsets)
    os.remove(coffs)
    os.remove(coffsets)
    os.remove(Srslc0)
    os.remove(Srslc0Par)

    os.remove(Mslc)
    os.remove(Mamp)
    os.remove(HGTSIM)

    print("Coregistration with DEM is done!")

    sys.exit(1)
예제 #10
0
def main(argv):
    
    start_time = time.time()
    inps = cmdLineParse()
    Mdate = inps.Mdate
    Sdate = inps.Sdate
    
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict=ut.update_template(templateFile)
    
    track = templateDict['track']
    frame = templateDict['frame']
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    masterDate = templateDict['masterDate']
    projectDir = scratchDir + '/' + projectName
    downDir = scratchDir + '/' + projectName + '/DOWNLOAD'
    slcDir    = scratchDir + '/' + projectName + '/SLC'
    
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    demDir = scratchDir + '/' + projectName + '/DEM'
    ######### download data ############
    print('Start to download data ...')
    
    if not os.path.isdir(projectDir):
        os.mkdir(projectDir)
    if not os.path.isdir(downDir): 
        os.mkdir(downDir)
        
    os.chdir(downDir)
    call_str = 'ssara_federated_query.py -p Sentinel-1A,Sentinel-1B -r ' + track + ' -f ' + frame + ' --date ' + Mdate + ',' + Sdate + ' --print --download --parallel 10'
    print(call_str)
    os.system(call_str)
    
    ######### down 2 slc #############
    #M_raw = glob.glob(downDir + '/S1*_' + ut.yyyymmdd(Mdate)+'*')[0]
    #S_raw = glob.glob(downDir + '/S1*_' + ut.yyyymmdd(Sdate)+'*')[0]
    
    call_str = 'down2slc_sen.py ' + projectName + ' ' + Mdate
    os.system(call_str)
    
    call_str = 'down2slc_sen.py ' + projectName + ' ' + Sdate
    os.system(call_str)
    
    ########## extract common bursts ##
    #call_str = 'extract_s1_bursts.py ' + projectName + ' ' + Mdate
    #os.system(call_str)
    
    #call_str = 'extract_s1_bursts.py ' + projectName + ' ' + Sdate
    #os.system(call_str)
    
    ######### generate rdc_dem ##########
    Masterdate = templateDict['masterDate']
    HGTSIM      = demDir + '/' + Masterdate + '_' + rlks + 'rlks.rdc.dem'
    if not os.path.isfile(HGTSIM):
        call_str = 'generate_rdc_dem.py ' + projectName
        os.system(call_str)
    #call_str = 'generate_rdc_dem.py ' + projectName
    #os.system(call_str)
    
    ########## coregister SLC ########
    
    call_str = 'coreg_s1_gamma.py ' + projectName + ' ' + Mdate
    os.system(call_str)
    
    call_str = 'coreg_s1_gamma.py ' + projectName + ' ' + Sdate
    os.system(call_str)
    
    ######## Interferometry process ###########
    call_str = 'diff_gamma.py ' + projectName + ' ' + Mdate + ' ' + Sdate
    os.system(call_str)
    
    call_str = 'unwrap_gamma.py ' + projectName + ' ' + Mdate + ' ' + Sdate
    os.system(call_str)
    
    call_str = 'geocode_gamma.py ' + projectName + ' ' + Mdate + '-' + Sdate
    os.system(call_str)

    print("Generate Ifg from raw-TOPs data is done! ")
    ut.print_process_time(start_time, time.time()) 
    sys.exit(1)
예제 #11
0
def main(argv):

    inps = cmdLineParse()
    projectName = inps.projectName
    Sdate = inps.sdate

    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"

    slcDir = scratchDir + '/' + projectName + "/SLC"
    rslcDir = scratchDir + '/' + projectName + "/RSLC"
    if not os.path.isdir(rslcDir): os.mkdir(rslcDir)
    #workDir    = processDir + '/' + igramDir
    workDir = rslcDir + '/' + Sdate
    if not os.path.isdir(workDir): os.mkdir(workDir)

    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    Mdate = templateDict['masterDate']

    demDir = scratchDir + '/' + projectName + '/DEM'

    #  Definition of file
    MslcDir = slcDir + '/' + Mdate
    SslcDir = slcDir + '/' + Sdate
    Samp = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SampPar = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.par'
    Sampbmp = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.bmp'

    Mslc = slcDir + '/' + Mdate + '/' + Mdate + '.slc'
    Mslcpar = slcDir + '/' + Mdate + '/' + Mdate + '.slc.par'
    Mamp = slcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar = slcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    Mampbmp = slcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp.bmp'

    SLC1_INF_tab0 = MslcDir + '/' + Mdate + '_SLC_Tab'
    SLC2_INF_tab = SslcDir + '/' + Sdate + '_SLC_Tab'
    RSLC_tab = SslcDir + '/' + Sdate + '_RSLC_Tab'
    SLC1_INF_tab = SslcDir + '/' + Mdate + '_SLC_Tab_coreg'

    HGTSIM = demDir + '/' + Mdate + '_' + rlks + 'rlks.rdc.dem'
    if not os.path.isfile(HGTSIM):
        call_str = 'generate_rdc_dem.py ' + projectName
        os.system(call_str)

    ############## copy master files into slave folder for parallel process ###########

    #if not templateDict['coreg_all_parallel'] == '1':
    #    Mslc = slcDir  + '/' + Sdate + '/' + Mdate + '.slc'
    #    Mslcpar = slcDir  + '/' + Sdate + '/' + Mdate + '.slc.par'
    #    Mamp = slcDir  + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    #    MampPar = slcDir  + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    #    HGTSIM      = slcDir  + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.rdc.dem'

    #else:

    #    Mslc = Mslc0
    #    Mslcpar = Mslcpar0
    #    Mamp = Mamp0
    #    MampPar = MampPar0
    #    HGTSIM  = HGTSIM0

    #Mslc = slcDir  + '/' + Sdate + '/' + Mdate + '.slc'
    #Mslcpar = slcDir  + '/' + Sdate + '/' + Mdate + '.slc.par'
    #Mamp = slcDir  + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    #MampPar = slcDir  + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    #HGTSIM      = slcDir  + '/' + Sdate + '/' + Mdate + '_' + rlks + 'rlks.rdc.dem'
    SLC1_INF_tab1 = SslcDir + '/' + Mdate + '_SLC_Tab'
    ut.copy_file(SLC1_INF_tab0, SLC1_INF_tab1)
    ##############################################################################
    with open(SLC1_INF_tab1, "r") as f:
        lines = f.readlines()

    with open(SLC1_INF_tab, "w") as fw:
        lines_coreg = []
        for k0 in lines:
            k00 = k0.replace(MslcDir, SslcDir)
            lines_coreg.append(k00)
            fw.write(k00)

    S_IW = ut.read_txt2array(SLC1_INF_tab1)
    S_IW = S_IW.flatten()
    #M_IW = ut.read_txt2array(SLC1_INF_tab1)
    #M_IW = M_IW.flatten()
    #S_IW = ut.read_txt2array(SLC1_INF_tab)
    #S_IW = S_IW.flatten()

    #RSLC_tab = workDir + '/' + Sdate + '_RSLC_tab'
    #if os.path.isfile(RSLC_tab):
    #    os.remove(RSLC_tab)

    #BURST = SslcDir + '/' + Sdate + '_Burst_Tab'
    #AA = np.loadtxt(BURST)
    #if EW==SW:
    #    AA = AA.reshape([1,2])
    #
    #for kk in range(int(EW)-int(SW)+1):
    #    ii = int(int(kk) + 1)
    #    SB2=AA[ii-1,0]
    #    EB2=AA[ii-1,1]
    #    call_str = 'echo ' + workDir + '/'+ Sdate+ '_'+ str(int(SB2)) + str(int(EB2)) +'.IW'+str(int(SW)+kk)+ '.rslc' + ' ' + workDir + '/' + Sdate + '_'+ str(int(SB2)) + str(int(EB2)) +'.IW'+ str(int(SW)+kk)+ '.rslc.par' + ' ' + workDir + '/'+ Sdate+'_'+ str(int(SB2)) + str(int(EB2)) + '.IW'+str(int(SW)+kk)+ '.rslc.TOPS_par >>' + RSLC_tab
    #   os.system(call_str)

    os.chdir(workDir)
    #TEST = workDir + '/' + Sdate +'_' + rlks + 'rlks.amp.par'
    TEST = workDir + '/' + Sdate + '.rslc.par'

    k0 = 0
    if os.path.isfile(TEST):
        if os.path.getsize(TEST) > 0:
            k0 = 1

    if k0 == 0:
        if not Mdate == Sdate:
            call_str = 'S1_coreg_TOPS ' + SLC1_INF_tab1 + ' ' + Mdate + ' ' + SLC2_INF_tab + ' ' + Sdate + ' ' + RSLC_tab + ' ' + HGTSIM + ' ' + rlks + ' ' + azlks + ' - - 0.6 0.01 1.2 1'
            os.system(call_str)

            #### clean large file ####
            mslc = workDir + '/' + Mdate + '.slc'
            mrslc = workDir + '/' + Mdate + '.rslc'
            sslc = workDir + '/' + Sdate + '.slc'
            srslc = workDir + '/' + Sdate + '.rslc'
            srslcPar = workDir + '/' + Sdate + '.rslc.par'

            call_str = 'multi_look ' + srslc + ' ' + srslcPar + ' ' + Samp + ' ' + SampPar + ' ' + rlks + ' ' + azlks
            os.system(call_str)
            nWIDTH = ut.read_gamma_par(SampPar, 'read', 'range_samples')
            if os.path.isfile(mslc): os.remove(mslc)
            if os.path.isfile(mrslc): os.remove(mrslc)
            if os.path.isfile(sslc): os.remove(sslc)

            call_str = 'raspwr ' + Samp + ' ' + nWIDTH
            os.system(call_str)

            #call_str = 'rm *mli*'
            #os.system(call_str)

            #call_str = 'rm *IW*'
            #os.system(call_str)

            #call_str = 'rm *off*'
            #os.system(call_str)

            #call_str = 'rm *diff'
            #os.system(call_str)

            #call_str = 'rm *diff_par*'
            #os.system(call_str)

            #call_str = 'rm ' + Mdate + '.*'
            #os.system(call_str)

        else:
            call_str = 'cp ' + Mslc + ' ' + workDir + '/' + Mdate + '.rslc'
            os.system(call_str)

            call_str = 'cp ' + Mslcpar + ' ' + workDir + '/' + Mdate + '.rslc.par'
            os.system(call_str)

            call_str = 'cp ' + Mamp + ' ' + workDir + '/' + Mdate + '_' + rlks + 'rlks.amp'
            os.system(call_str)

            call_str = 'cp ' + MampPar + ' ' + workDir + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
            os.system(call_str)

            ut.copy_file(Mampbmp, Sampbmp)

    ################   clean redundant files #############

    #if not Mdate ==Sdate:

    #    if not templateDict['diff_all_parallel'] == '1':
    #        for i in range(len(S_IW)):
    #            if os.path.isfile(S_IW[i]):
    #                os.remove(S_IW[i])
    #        if os.path.isfile(Mslc): os.remove(Mslc)
    #        if os.path.isfile(Mslcpar): os.remove(Mslcpar)
    #        if os.path.isfile(Mamp): os.remove(Mamp)
    #        if os.path.isfile(HGTSIM): os.remove(HGTSIM)

    print("Coregister TOP SLC image to the reference TOPS image is done !!")
    sys.exit(1)
예제 #12
0
def main(argv):
    
    inps = cmdLineParse() 
    projectName = inps.projectName
    date = inps.date
    scratchDir = os.getenv('SCRATCHDIR')
    projectDir = scratchDir + '/' + projectName 
    
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict=ut.update_template(templateFile)
    
    slc_dir =  projectDir + '/SLC'
    rslc_dir =  projectDir + '/RSLC'
    down_dir = projectDir + '/DOWNLOAD'
    opod_dir = projectDir + '/OPOD'
    
    if not os.path.isdir(slc_dir):
        os.mkdir(slc_dir)
    if not os.path.isdir(opod_dir):
        os.mkdir(opod_dir)
        
    work_dir = slc_dir + '/' + date
    if not os.path.isdir(work_dir):
        os.mkdir(work_dir)
    
    os.chdir(work_dir)
    master_burst_numb = down_dir + '/master.burst_numb_table'
    if not os.path.isfile(master_burst_numb):
        call_str = 'get_master_burst_numb.py ' + projectDir
        os.system(call_str)
        
    
    t_date = 't_' + date
    
    call_str = 'ls ' + down_dir + '/S1*' + date + '*.zip > ' + t_date
    os.system(call_str)
  
    start_swath = templateDict['start_swath']
    end_swath = templateDict['end_swath']
    
    
    if (start_swath == '1') and (end_swath == '1'):
        k_swath = '1'
    elif (start_swath == '2') and (end_swath == '2'):
        k_swath = '2'
    elif (start_swath == '3') and (end_swath == '3'):
        k_swath = '3'
    elif (start_swath == '1') and (end_swath == '2'):
        k_swath = '4'
    elif (start_swath == '2') and (end_swath == '3'):
        k_swath = '5' 
    elif (start_swath == '1') and (end_swath == '3'):
        k_swath = '0' 
    
    
    raw_files = ut.read_txt2list(t_date)
    satellite = get_satellite(raw_files[0])
    
    orbit_file = ut.download_s1_orbit(date,opod_dir,satellite=satellite)
    
    call_str = 'S1_import_SLC_from_zipfiles ' + t_date + ' ' + master_burst_numb + ' vv 0 ' + k_swath + ' ' + opod_dir + ' 1 1 '
    os.system(call_str)
    
    os.chdir(work_dir)
    
    call_str = "rename 's/vv.slc.iw1/IW1.slc/g' *"
    os.system(call_str)
    call_str = "rename 's/vv.slc.iw2/IW2.slc/g' *"
    os.system(call_str)
    call_str = "rename 's/vv.slc.iw3/IW3.slc/g' *"
    os.system(call_str)
    
    call_str = "rename 's/.tops_par/.TOPS_par/g' *"
    os.system(call_str)
    
    
    SLC_Tab = work_dir + '/' + date+'_SLC_Tab'
    RSLC_Tab = work_dir + '/' + date+'_RSLC_Tab'
    
    SLC_list = glob.glob(work_dir + '/*IW*.slc') 
    SLC_par_list = glob.glob(work_dir + '/*IW*.slc.par') 
    TOP_par_list = glob.glob(work_dir + '/*IW*.slc.TOPS_par') 
    
    
    if os.path.isfile(SLC_Tab):
        os.remove(SLC_Tab)
    if os.path.isfile(RSLC_Tab):
        os.remove(RSLC_Tab)
    
    SLC_list = sorted(SLC_list)
    SLC_par_list = sorted(SLC_par_list)
    TOP_par_list = sorted(TOP_par_list)
    
    
    for kk in range(len(SLC_list)):
        call_str = 'echo ' + SLC_list[kk] + ' ' + SLC_par_list[kk] + ' ' + TOP_par_list[kk] + ' >> ' + SLC_Tab
        os.system(call_str)
        
        call_str = 'echo ' + rslc_dir + '/' + date + '/' + os.path.basename(SLC_list[kk]).replace('.slc','.rslc') + ' ' + rslc_dir + '/' + date + '/'+ os.path.basename(SLC_par_list[kk]).replace('.slc','.rslc') + ' ' + rslc_dir + '/' + date + '/' + os.path.basename(TOP_par_list[kk]).replace('.slc','.rslc') + ' >> ' + RSLC_Tab
        os.system(call_str)
        
        BURST = SLC_par_list[kk].replace('slc.par','burst.par')
        KML = SLC_par_list[kk].replace('slc.par','kml')
        call_str = 'ScanSAR_burst_corners ' + SLC_par_list[kk] + ' ' +  TOP_par_list[kk] + ' ' + KML + ' > ' +BURST
        os.system(call_str)
 

    print("Down to SLC for %s is done! " % date)
    sys.exit(1)
예제 #13
0
def main(argv):

    start_time = time.time()
    inps = cmdLineParse()
    Mdate = inps.Mdate
    Sdate = inps.Sdate

    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    masterDate = templateDict['masterDate']

    projectDir = scratchDir + '/' + projectName
    demDir = scratchDir + '/' + projectName + '/DEM'

    slcDir = scratchDir + '/' + projectName + '/SLC'
    rslcDir = scratchDir + '/' + projectName + '/RSLC'
    ifgDir = projectDir + '/ifgrams'
    if not os.path.isdir(ifgDir): os.mkdir(ifgDir)

    Pair = Mdate + '-' + Sdate
    workDir = ifgDir + '/' + Pair
    if not os.path.isdir(workDir): os.mkdir(workDir)

    #######################################################################
    Mamp0 = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar0 = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    Samp0 = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SampPar0 = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.par'

    Mrslc = rslcDir + '/' + Mdate + '/' + Mdate + '.rslc'
    MrslcPar = rslcDir + '/' + Mdate + '/' + Mdate + '.rslc.par'
    Srslc = rslcDir + '/' + Sdate + '/' + Sdate + '.rslc'
    SrslcPar = rslcDir + '/' + Sdate + '/' + Sdate + '.rslc.par'

    HGT0 = demDir + '/' + masterDate + '_' + rlks + 'rlks.rdc.dem'

    MasterPar0 = rslcDir + '/' + masterDate + '/' + masterDate + '.rslc.par'

    ################# copy file for parallel processing ##########################
    Mamp = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    Samp = workDir + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SampPar = workDir + '/' + Sdate + '_' + rlks + 'rlks.amp.par'

    #Mrslc    =   workDir + '/' + Mdate + '.rslc'
    #MrslcPar =   workDir + '/' + Mdate + '.rslc.par'
    #Srslc    =   workDir + '/' + Sdate + '.rslc'
    #SrslcPar =   workDir + '/' + Sdate + '.rslc.par'

    HGT = workDir + '/' + masterDate + '_' + rlks + 'rlks.rdc.dem'
    MasterPar = workDir + '/' + masterDate + '.rslc.par'

    if not os.path.isfile(Mamp): ut.copy_file(Mamp0, Mamp)
    if not os.path.isfile(MampPar): ut.copy_file(MampPar0, MampPar)
    if not os.path.isfile(Samp): ut.copy_file(Samp0, Samp)
    if not os.path.isfile(SampPar): ut.copy_file(SampPar0, SampPar)

    #if not os.path.isfile(Mrslc): ut.copy_file(Mrslc0,Mrslc)
    #if not os.path.isfile(MrslcPar): ut.copy_file(MrslcPar0,MrslcPar)
    #if not os.path.isfile(Srslc):ut.copy_file(Srslc0,Srslc)
    #if not os.path.isfile(SrslcPar):ut.copy_file(SrslcPar0,SrslcPar)

    if not os.path.isfile(HGT): ut.copy_file(HGT0, HGT)
    if not os.path.isfile(MasterPar): ut.copy_file(MasterPar0, MasterPar)

    nWidth = ut.read_gamma_par(MampPar, 'read', 'range_samples')
    nLine = ut.read_gamma_par(MampPar, 'read', 'azimuth_lines')

    ###################### Output files #################################
    ionoDir = workDir + '/ionosphere'
    if not os.path.isdir(ionoDir):
        os.mkdir(ionoDir)

    workDir = ionoDir
    Mrslc_low = ionoDir + '/' + Mdate + '.low.rslc'
    MrslcPar_low = ionoDir + '/' + Mdate + '.low.rslc.par'
    Mrslc_high = ionoDir + '/' + Mdate + '.high.rslc'
    MrslcPar_high = ionoDir + '/' + Mdate + '.high.rslc.par'

    Srslc_low = ionoDir + '/' + Sdate + '.low.rslc'
    SrslcPar_low = ionoDir + '/' + Sdate + '.low.rslc.par'
    Srslc_high = ionoDir + '/' + Sdate + '.high.rslc'
    SrslcPar_high = ionoDir + '/' + Sdate + '.high.rslc.par'
    #########################################################
    TEST0 = MrslcPar_high
    k0 = 0
    if os.path.isfile(TEST0):
        if os.path.getsize(TEST0) > 0:
            k0 = 1

    TEST1 = SrslcPar_high
    k1 = 0
    if os.path.isfile(TEST1):
        if os.path.getsize(TEST1) > 0:
            k1 = 1

    if k0 == 0:
        call_str = 'bpf_ssi ' + Mrslc + ' ' + MrslcPar + ' ' + Mrslc_low + ' ' + MrslcPar_low + ' ' + Mrslc_high + ' ' + MrslcPar_high
        os.system(call_str)

    if k1 == 0:
        call_str = 'bpf_ssi ' + Srslc + ' ' + SrslcPar + ' ' + Srslc_low + ' ' + SrslcPar_low + ' ' + Srslc_high + ' ' + SrslcPar_high
        os.system(call_str)

################## interferometry #####################

    off_low = workDir + '/' + Pair + '_' + rlks + 'rlks.low.off'
    call_str = 'create_offset ' + MrslcPar_low + ' ' + SrslcPar_low + ' ' + off_low + ' 1 ' + rlks + ' ' + azlks + ' 0'
    os.system(call_str)

    sim_low_unw = workDir + '/' + Pair + '.low.sim_unw'
    call_str = 'phase_sim_orb ' + MrslcPar_low + ' ' + SrslcPar_low + ' ' + off_low + ' ' + HGT + ' ' + sim_low_unw + ' ' + MasterPar + ' - - 1 1'
    os.system(call_str)

    diff_low = workDir + '/' + Pair + '_' + rlks + 'rlks.low.diff'
    call_str = 'SLC_diff_intf ' + Mrslc_low + ' ' + Srslc_low + ' ' + MrslcPar_low + ' ' + SrslcPar_low + ' ' + off_low + ' ' + sim_low_unw + ' ' + diff_low + ' ' + rlks + ' ' + azlks + ' ' + ' 1 0 0.25'
    os.system(call_str)

    off_low = workDir + '/' + Pair + '_' + rlks + 'rlks.high.off'
    call_str = 'create_offset ' + MrslcPar_high + ' ' + SrslcPar_high + ' ' + off_high + ' 1 ' + rlks + ' ' + azlks + ' 0'
    os.system(call_str)

    sim_high_unw = workDir + '/' + Pair + '.high.sim_unw'
    call_str = 'phase_sim_orb ' + MrslcPar_high + ' ' + SrslcPar_high + ' ' + off_high + ' ' + HGT + ' ' + sim_high_unw + ' ' + MasterPar + ' - - 1 1'
    os.system(call_str)

    diff_high = workDir + '/' + Pair + '_' + rlks + 'rlks.high.diff'
    call_str = 'SLC_diff_intf ' + Mrslc_high + ' ' + Srslc_high + ' ' + MrslcPar_high + ' ' + SrslcPar_high + ' ' + off_high + ' ' + sim_high_unw + ' ' + diff_high + ' ' + rlks + ' ' + azlks + ' ' + ' 1 0 0.25'
    os.system(call_str)

    ######################################################
    hl_diff = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff'
    hl_diff_cc = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff.cc'
    hl_diff_mask = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff.cc_mask.bmp'

    hl_diff1 = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff1'
    hl_diff2 = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff2'
    hl_diff3 = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff3'
    hl_diff4 = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff4'

    hl_diff4_phase = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff4_phase'

    hl_diff_jpg = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff.jpg'

    diff_low_phase = workDir + '/' + Pair + '_' + rlks + 'rlks.low.diff_phase'
    call_str = 'cpx_to_real ' + diff_low_phase + ' ' + nWidth + ' 4'
    os.system(call_str)

    call_str = 'subtract_phase ' + diff_high + ' ' + diff_low_phase + ' ' + hl_diff + ' ' + nWidth + ' 1'
    os.system(call_str)

    call_str = 'rasmph_pwr ' + Mamp + ' ' + hl_diff + ' ' + nWidth
    #call_str = 'vismph_pwr.py ' + hl_diff + ' ' + Mamp + ' ' + nWidth + ' -f 1.0 ' + ' -z 1000 ' + ' -p ' + hl_diff_jpg
    os.system(call_str)

    #### filter

    call_str = 'adf ' + hl_diff + ' ' + hl_diff1 + ' ' + hl_diff_cc + ' ' + nWidth + ' 0.2 512 7 128'
    os.system(call_str)

    call_str = 'adf ' + hl_diff1 + ' ' + hl_diff2 + ' ' + hl_diff_cc + ' ' + nWidth + ' 0.3 256 7 64'
    os.system(call_str)

    call_str = 'adf ' + hl_diff2 + ' ' + hl_diff3 + ' ' + hl_diff_cc + ' ' + nWidth + ' 0.3 128 7 64'
    os.system(call_str)

    call_str = 'adf ' + hl_diff3 + ' ' + hl_diff4 + ' ' + hl_diff_cc + ' ' + nWidth + ' 0.3 128 7 16'
    os.system(call_str)

    # unwrawp
    call_str = 'cpx_to_real ' + hl_diff4 + ' ' + hl_diff4_phase + ' ' + nWidth + ' 4'
    os.system(call_str)

    # shift to zero
    # mask very low coherence

    call_str = 'cc_ad ' + hl_diff + ' ' + Mamp + ' ' + Samp + ' - - ' + hl_diff_cc + ' ' + nWidth + ' 3 9'
    os.system(call_str)

    call_str = 'rascc_mask ' + hl_diff_cc + ' ' + Mamp + ' ' + nWidth + ' 1 1 0 1 1 0.15 0.0 0.1 0.9 1.0 0.35 1 ' + hl_diff_mask
    os.system(call_str)

    nWidth_half = str(float(nWidth) / 2)
    image_report = workDir + '/' + Pair + '.image_stat.report'

    call_str = 'image_stat ' + hl_diff4_phase + ' ' + nWidth + ' ' + nWidth_half + ' 200 200 ' + image_report
    os.system(call_str)

    mean_phase = ut.read_gamma_par(image_report, 'read', 'mean')
    std_phase = ut.read_gamma_par(image_report, 'read', 'stdev')

    hl_diff_phase_shift = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff.ph_shift'
    hl_diff_shifted = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff4.shifted'
    hl_diff_shifted_phase = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff4.shifted.phase'
    call_str = 'lin_comb 1 ' + hl_diff4_phase + ' ' + mean_phase + ' 0.0 ' + hl_diff_phase_shift + ' ' + nWidth + ' 1 ' + nLine
    os.system(call_str)

    call_str = 'subtract_phase ' + hl_diff4_phase + ' ' + hl_diff_phase_shift + ' ' + hl_diff_shifted + ' ' + nWidth + '  1'
    os.system(call_str)

    call_str = 'cpx_to_real ' + hl_diff_shifted + ' ' + hl_diff_shifted_phase + ' ' + nWidth + ' 4'
    os.system(call_str)

    call_str = 'lin_comb 1 ' + hl_diff_shifted_phase + ' ' + mean_phase + ' 1.0 ' + hl_diff4_phase + ' ' + nWidth + ' 1 ' + nLine
    os.system(call_str)

    ############# determine trend considering cc_mask using unwrapping with multi_cpx before unwrapping ###

    diff_par = workDir + '/' + Pair + 'ddiff.par'
    call_str = 'create_diff_par ' + MampPar + ' - ' + diff_par + ' 1 0'
    os.system(call_str)

    ddiff_phase_trend = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff4_phase.trend'
    call_str = 'quad_fit ' + hl_diff4_phase + ' ' + diff_par + ' 5 5 ' + hl_diff_mask + ' - 3 ' + ddiff_phase_trend
    os.system(call_str)

    #call_str = 'vistd_pwr.py ' + ddiff_phase_trend + ' ' + Mamp + ' ' + nWidth + ' -c 12.6 -z 1000 -f 1.0 -m rmg -p ' + ddiff_phase_trend + '.jpg'
    #os.system(call_str)

    hl_diff_detrend = hl_diff + '.detrend'
    call_str = 'subtract_phase ' + hl_diff + ' ' + ddiff_phase_trend + ' ' + hl_diff_detrend + ' ' + nWidth + ' 1.'
    os.system(call_str)

    #call_str = 'vismph_pwr.py ' + hl_diff_detrend + ' ' + Mamp + ' ' + nWidth + ' -f 1.0 -z 1000 -p ' +  hl_diff_detrend+'.jpg'
    #os.system(call_str)

    call_str = 'adf ' + hl_diff_detrend + ' ' + hl_diff1 + ' ' + hl_diff + '.smcc' + ' ' + nWidth + ' 0.2 512 7 128'
    os.system(call_str)

    call_str = 'adf ' + hl_diff1 + ' ' + hl_diff2 + ' ' + hl_diff + '.smcc' + ' ' + nWidth + ' 0.3 256 7 64'
    os.system(call_str)

    call_str = 'adf ' + hl_diff2 + ' ' + hl_diff3 + ' ' + hl_diff + '.smcc' + ' ' + nWidth + ' 0.3 128 7 64'
    os.system(call_str)

    hl_diff4_detrend = hl_diff4 + '.detrend'
    hl_diff_cc = hl_diff + '.sm4.cc'
    call_str = 'adf ' + hl_diff3 + ' ' + hl_diff4_detrend + ' ' + hl_diff_cc + ' ' + nWidth + ' 0.3 128 7 16'
    os.system(call_str)

    off1 = workDir + '/' + Pair + '.off1'
    call_str = 'create_offset ' + MampPar + ' ' + MampPar + ' ' + off1 + ' 1 1 1 0'
    os.system(call_str)

    hl_diff4_mask = hl_diff + '.sm4.cc_mask.bmp'
    call_str = 'rascc_mask ' + hl_diff_cc + ' ' + Mamp + ' ' + nWidth + ' 1 1 0 1 1 0.95 0.0 0.1 0.1 0.9 1.0 0.35 1 ' + hl_diff4_mask
    os.system(call_str)

    call_str = 'mask_class ' + hl_diff_mask + ' ' + hl_diff4_detrend + ' ' + hl_diff4_detrend + '.masked.tmp ' + ' 1 1 1 1 0 0.0 0.0'
    os.system(call_str)

    call_str = 'mask_class ' + hl_diff4_mask + ' ' + hl_diff4_detrend + '.masked.tmp ' + ' ' + hl_diff4_detrend + '.masked' + + ' 1 1 1 1 0 0.0 0.0'
    os.system(call_str)

    ddiff5 = workDir + '/' + Pair + '_' + rlks + 'rlks.hl.diff5'
    off5 = workDir + '/' + Pair + '.off5'
    call_str = 'multi_cpx ' + hl_diff4_detrend + '.masked' + ' ' + off1 + ddiff5 + ' ' + off5 + ' 5 5'
    os.system(call_str)

    call_str = 'multi_real ' + Mamp + ' ' + off1 + ' ' + Mamp + '.5' + off5 + ' 5 5'
    os.system(call_str)

    call_str = 'multi_real ' + hl_diff_cc + ' ' + off1 + ' ' + hl_diff_cc + '.5' + off5 + ' 5 5'
    os.system(call_str)

    nWidth5 = ut.read_gamma_par(off5, 'read', 'interferogram_width')

    ddiff5_phase_tmp = ddiff5 + '.phase.tmp'
    ddiff5_phase_interp = ddiff5 + '.phase.interp'
    call_str = 'cpx_to_real ' + ddiff5 + ' ' + ddiff5_phase_tmp + ' ' + nWidth5 + ' 4'
    os.system(call_str)

    call_str = 'fill_gaps ' + ddiff5_phase_tmp + ' ' + nWidth5 + ' ' + ddiff5_phase_interp + ' 0 4 - 1 100 4 400'
    os.system(call_str)

    #### remove outliers
    ddiff5_fspf = ddiff5_phase_interp + '.fspf'
    call_str = 'fspf ' + ddiff5_phase_interp + ' ' + ddiff5_fspf + ' ' + nWidth5 + ' 2 64 3'
    os.system(call_str)

    ddiff5_phase_interp_outliers = ddiff5_phase_interp + '.outliers'
    call_str = 'lin_comb 2 ' + ddiff5_phase_interp + ' ' + ddiff5_fspf + ' 100 1.0 -1.0 ' + ddiff5_phase_interp_outliers + ' ' + nWidth5
    os.system(call_str)

    hl_diff_cc5 = hl_diff_cc + '.5'
    hl_diff5_mask = ddiff5 + '.mask.bmp'
    call_str = 'single_class_mapping 2 ' + ddiff5_phase_interp_outliers + ' 99.95 100.05 ' + hl_diff_cc5 + ' 0.15 1.0 ' + hl_diff5_mask + ' ' + nWidth5
    os.system(call_str)

    ddiff5_phase_tmp1 = ddiff5_phase_tmp + '1'
    call_str = 'mask_class ' + hl_diff5_mask + ' ' + ddiff5_phase_tmp + ' ' + ddiff5_phase_tmp1 + ' 0 1 1 1 0 0.0 0.0'
    os.system(call_str)

    call_str = 'fill_gaps ' + ddiff5_phase_tmp1 + ' ' + ddiff5_phase_interp + ' 0 4 - 1 100 4 400'
    os.system(call_str)

    ddiff_detrend_interp_phase = hl_diff + '.detrend' + '.interp.phase'
    call_str = 'multi_real ' + ddiff5_phase_interp + ' ' + off5 + ' ' + ddiff_detrend_interp_phase + ' ' + off1 + ' -5 -5'
    os.system(call_str)

    call_str = 'fspf ' + ddiff_detrend_interp_phase + ' ' + ddiff_detrend_interp_phase + '.fspf' + ' ' + nWidth + ' 2 8 3'
    os.system(call_str)

    #call_str = ' visdt_pwr.py ' +  ddiff_detrend_interp_phase + '.fspf' + ' ' + Mamp + ' ' + nWidth + ' -c 1.6 -z 1000 -f 1.0 -m rmg -p ' + ddiff_detrend_interp_phase + '.fspf.jpg'
    #os.system(call_str)

    ###### add the solutions

    ddiff_phase_fspf = hl_diff + ' .phase.fspf'
    call_str = 'lin_comb 2 ' + ddiff_phase_trend + ' ' + ddiff_detrend_interp_phase + '.fspf' + ' 0.0 1.0 1.0 ' + ddiff_phase_fspf + ' ' + nWidth + ' 1 ' + nLine
    os.system(call_str)

    #call_str ='visdt_pwr.py ' + ddiff_phase_fspf + ' ' + Mamp + ' ' + nWidth + ' -c 1.6 -z 1000 -f 1.0 -m rmg -p ' + ddiff_phase_fspf + '.jpg'
    #os.system(call_str)

    ###################### determin scaling factor using bpf_ssi

    bpf_ssi_out = workDir + '/bpf_ssi.out'
    call_str = 'bpf_ssi ' + Mrslc + ' ' + MrslcPar + ' - - - - 0.6666 > ' + bpf_ssi_out
    os.system(call_str)

    a0 = ut.read_gamma_par(bpf_ssi_out, 'read', 'a')
    b0 = ut.read_gamma_par(bpf_ssi_out, 'read', 'b')
    x0 = ut.read_gamma_par(bpf_ssi_out, 'read', 'x')
    y0 = ut.read_gamma_par(bpf_ssi_out, 'read', 'y')
    z0 = ut.read_gamma_par(bpf_ssi_out, 'read', 'z')
    zz0 = str(float(z0) * 2)

    ddiff_phase_fspf_scaled = ddiff_phase_fspf + '.scaled'
    call_str = 'lin_comb 1 ' + ddiff_phase_fspf + ' 0.0 ' + zz0 + ' ' + ddiff_phase_fspf_scaled + ' ' + nWidth
    os.system(call_str)

    call_str = 'rasrmg ' + ddiff_phase_fspf_scaled + ' ' + Mamp + ' ' + nWidth
    #call_str = 'vismph_pwr.py ' + hl_diff + ' ' + Mamp + ' ' + nWidth + ' -f 1.0 ' + ' -z 1000 ' + ' -p ' + hl_diff_jpg
    os.system(call_str)

    #call_str ='visdt_pwr.py ' + ddiff_phase_fspf_scaled + ' ' + Mamp + ' ' + nWidth + ' -c 1.6 -z 1000 -f 1.0 -m rmg -p ' + ddiff_phase_fspf_scaled + '.jpg'
    #os.system(call_str)

    # 2_phi_iono            =  phi0 + zz * ddiff_phase_fspf
    # 2_phi_non-dispersive  =  phi0 - zz * ddiff_phase_fspf

    #call_str = ' subtract_phase ' +

    print("Estimating the scaled ionospheric phases is done!")
    ut.print_process_time(start_time, time.time())
    sys.exit(1)
예제 #14
0
def main(argv):
    
    inps = cmdLineParse() 
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    projectDir = scratchDir + '/' + projectName 
    
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict=ut.update_template(templateFile)  
    
    masterDate = templateDict['masterDate']
    date = masterDate
    
    slc_dir =  projectDir + '/SLC'
    down_dir = projectDir + '/DOWNLOAD'
    opod_dir = projectDir + '/OPOD'
    
    if not os.path.isdir(slc_dir):
        os.mkdir(slc_dir)
    if not os.path.isdir(opod_dir):
        os.mkdir(opod_dir)
        
    work_dir = slc_dir + '/' + date
    if not os.path.isdir(work_dir):
        os.mkdir(work_dir)
    
    work_dir = down_dir
    os.chdir(work_dir)
    
    t_date = down_dir +  '/t_' + date
    t_burst_numb = down_dir + '/t_burst_numb_' + date 
    
    call_str = 'ls ' + down_dir + '/S1*' + date + '*.zip > ' + t_date
    os.system(call_str)
    
    zip_files = ut.read_txt2list(t_date)
    print(zip_files)
    for i in range(len(zip_files)):
        call_str = 'S1_BURST_tab_from_zipfile - ' +  zip_files[i] + ' - '
        os.system(call_str)
    
    
    call_str = 'ls ' + down_dir + '/S1*' + date + '*.burst_number_table > ' + t_burst_numb
    os.system(call_str)
    burst_files = ut.read_txt2list(t_burst_numb)
    
    
    iw1_burst_node = []
    iw2_burst_node = []
    iw3_burst_node = []
    
    print(burst_files)
    for i in range(len(burst_files)):
        print(burst_files[i])
        iw1_first = ut.read_gamma_par(str(burst_files[i]),'read','iw1_first_burst')
        iw1_last = ut.read_gamma_par(str(burst_files[i]),'read','iw1_last_burst')
        iw1_burst_node.append(float(iw1_first))
        iw1_burst_node.append(float(iw1_last))
        
        iw2_first = ut.read_gamma_par(str(burst_files[i]),'read','iw2_first_burst')
        iw2_last = ut.read_gamma_par(str(burst_files[i]),'read','iw2_last_burst')
        iw2_burst_node.append(float(iw2_first))
        iw2_burst_node.append(float(iw2_last))
        
        iw3_first = ut.read_gamma_par(str(burst_files[i]),'read','iw3_first_burst')
        iw3_last = ut.read_gamma_par(str(burst_files[i]),'read','iw3_last_burst')
        iw3_burst_node.append(float(iw3_first))
        iw3_burst_node.append(float(iw3_last))
        
    
    if 'iw1_first_burst' in templateDict: IW1_0 = templateDict['iw1_first_burst']
    else: IW1_0 = '1'
    if 'iw1_last_burst' in templateDict: IW1_1 = templateDict['iw1_last_burst']
    else: IW1_1 = str(round(max(iw1_burst_node) - min(iw1_burst_node) + 1))
    
    if 'iw2_first_burst' in templateDict: IW2_0 = templateDict['iw2_first_burst']
    else: IW2_0 = '1'
    if 'iw2_last_burst' in templateDict: IW2_1 = templateDict['iw2_last_burst']
    else: IW2_1 = str(round(max(iw2_burst_node) - min(iw2_burst_node) + 1))
    
    if 'iw3_first_burst' in templateDict: IW3_0 = templateDict['iw3_first_burst']
    else: IW3_0 = '1'
    if 'iw3_last_burst' in templateDict: IW3_1 = templateDict['iw3_last_burst']
    else: IW3_1 = str(round(max(iw3_burst_node) - min(iw3_burst_node) + 1))
    
    if int(IW1_1) > round(max(iw1_burst_node) - min(iw1_burst_node) + 1):
        IW1_1 = str(round(max(iw1_burst_node) - min(iw1_burst_node) + 1))
    
    if int(IW2_1) > round(max(iw2_burst_node) - min(iw2_burst_node) + 1):
        IW2_1 = str(round(max(iw2_burst_node) - min(iw2_burst_node) + 1))
    
    if int(IW3_1) > round(max(iw3_burst_node) - min(iw3_burst_node) + 1):
        IW3_1 = str(round(max(iw3_burst_node) - min(iw3_burst_node) + 1))
    
    
    D_IW1_first = int(IW1_0) - 1
    DD_IW1_numb = int(IW1_1) - int(IW1_0) + 1
   
    D_IW2_first = int(IW2_0) - 1
    DD_IW2_numb = int(IW2_1) - int(IW2_0) + 1
    
    D_IW3_first = int(IW3_0) - 1
    DD_IW3_numb = int(IW3_1) - int(IW3_0) + 1
    
    master_busrt = down_dir + '/master.burst_numb_table' 
    if os.path.isfile(master_busrt):
        os.remove(master_busrt)
    
    with open(master_busrt, 'a') as f:
        STR0 = 'iw1_number_of_bursts: ' + str(DD_IW1_numb)  + '\n'
        STR00 = 'iw1_number_of_bursts: ' + str(DD_IW1_numb)
        print(STR00)
        f.write(STR0)
    
        STR0 = 'iw1_first_burst:      ' + str(min(iw1_burst_node) + D_IW1_first)  + '\n'
        STR00 = 'iw1_first_burst:      ' + str(min(iw1_burst_node) + D_IW1_first)
        print(STR00)
        f.write(STR0)
        
        STR0 = 'iw1_last_burst:       ' + str(min(iw1_burst_node) + DD_IW1_numb - 1)  + '\n'
        STR00 = 'iw1_last_burst:       ' + str(min(iw1_burst_node) + DD_IW1_numb - 1)
        print(STR00)
        f.write(STR0)
        
        STR0 = 'iw2_number_of_bursts: ' + str(DD_IW2_numb)  + '\n'
        STR00 = 'iw2_number_of_bursts: ' + str(DD_IW2_numb)
        print(STR00)
        f.write(STR0)
    
        STR0 = 'iw2_first_burst:      ' + str(min(iw2_burst_node) + D_IW1_first)  + '\n'
        STR00 = 'iw2_first_burst:      ' + str(min(iw2_burst_node) + D_IW1_first)
        print(STR00)
        f.write(STR0)
        
        STR0 = 'iw2_last_burst:       ' + str(min(iw2_burst_node) + DD_IW2_numb - 1)  + '\n'
        STR00 = 'iw2_last_burst:       ' + str(min(iw2_burst_node) + DD_IW2_numb - 1)
        print(STR00)
        f.write(STR0)
        
        
        STR0 = 'iw3_number_of_bursts: ' + str(DD_IW3_numb)  + '\n'
        STR00 = 'iw3_number_of_bursts: ' + str(DD_IW3_numb)
        print(STR00)
        f.write(STR0)
    
        STR0 = 'iw3_first_burst:      ' + str(min(iw3_burst_node) + D_IW3_first)  + '\n'
        STR00 = 'iw3_first_burst:      ' + str(min(iw3_burst_node) + D_IW3_first)
        print(STR00)
        f.write(STR0)
        
        STR0 = 'iw3_last_burst:       ' + str(min(iw3_burst_node) + DD_IW3_numb - 1)  + '\n'
        STR00 = 'iw3_last_burst:       ' + str(min(iw3_burst_node) + DD_IW3_numb - 1)
        print(STR00)
        f.write(STR0)
    
   
    print("Get burst number table for master date is done! ")
    sys.exit(1)
예제 #15
0
def main(argv):

    inps = cmdLineParse()
    projectName = inps.projectName

    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)

    Mdate = templateDict['masterDate']

    DEMDir = os.getenv('DEMDIR')

    processDir = scratchDir + '/' + projectName + "/ifgrams"
    slcDir = scratchDir + '/' + projectName + "/SLC"

    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']

    if not os.path.isdir(processDir):
        call_str = 'mkdir ' + processDir
        os.system(call_str)

    simDir = scratchDir + '/' + projectName + "/DEM"
    if not os.path.isdir(simDir):
        call_str = 'mkdir ' + simDir

    workDir = simDir

    if 'DEM' in templateDict:
        dem = templateDict['DEM']
        if not os.path.isfile(dem):
            dem = DEMDir + '/' + projectName + '/' + projectName + '.dem'
            call_str = 'echo DEM= ' + dem + ' >> ' + templateFile
            os.system(call_str)
            templateDict['DEM'] = dem
    else:
        dem = DEMDir + '/' + projectName + '/' + projectName + '.dem'
        call_str = 'echo DEM = ' + dem + ' >> ' + templateFile
        os.system(call_str)

    demPar = dem + ".par"

    if not os.path.isfile(dem):
        call_str = 'makedem_pyint.py ' + projectName
        os.system(call_str)


# Parameter setting for simPhase
    latovrSimphase = templateDict['dem_lat_ovr']
    lonovrSimphase = templateDict['dem_lon_ovr']

    rposSimphase = templateDict['Simphase_rpos']
    azposSimphase = templateDict['Simphase_azpos']
    rwinSimphase = templateDict['Simphase_rwin']
    azwinSimphase = templateDict['Simphase_azwin']
    #rwinSimphase = '128'
    #azwinSimphase = '128'

    threshSimphase = templateDict['Simphase_thresh']

    #  Definition of file
    MslcDir = slcDir + '/' + Mdate
    MslcImg = MslcDir + '/' + Mdate + '.slc'
    MslcPar = MslcDir + '/' + Mdate + '.slc.par'
    OFFSTD = workDir + '/' + Mdate + '_dem.off_std'

    BLANK = workDir + '/' + Mdate + '.blk'
    MamprlksImg = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MamprlksPar = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp.par'

    UTMDEMpar = simDir + '/' + Mdate + '_' + rlks + 'rlks.utm.dem.par'
    UTMDEM = simDir + '/' + Mdate + '_' + rlks + 'rlks.utm.dem'
    UTM2RDC = simDir + '/' + Mdate + '_' + rlks + 'rlks.utm_to_rdc0'
    SIMSARUTM = simDir + '/' + Mdate + '_' + rlks + 'rlks.sim_sar_utm'
    PIX = simDir + '/' + Mdate + '_' + rlks + 'rlks.pix'
    LSMAP = simDir + '/' + Mdate + '_' + rlks + 'rlks.ls_map'
    SIMSARRDC = simDir + '/' + Mdate + '_' + rlks + 'rlks.sim_sar_rdc'
    SIMDIFFpar = simDir + '/' + Mdate + '_' + rlks + 'rlks.diff_par'
    SIMOFFS = simDir + '/' + Mdate + '_' + rlks + 'rlks.offs'
    SIMSNR = simDir + '/' + Mdate + '_' + rlks + 'rlks.snr'
    SIMOFFSET = simDir + '/' + Mdate + '_' + rlks + 'rlks.offset'
    SIMCOFF = simDir + '/' + Mdate + '_' + rlks + 'rlks.coff'
    SIMCOFFSETS = simDir + '/' + Mdate + '_' + rlks + 'rlks.coffsets'
    UTMTORDC = simDir + '/' + Mdate + '_' + rlks + 'rlks.UTM_TO_RDC'
    HGTSIM = simDir + '/' + Mdate + '_' + rlks + 'rlks.rdc.dem'

    if not (os.path.isdir(simDir)):
        os.makedirs(simDir)

    ut.createBlankFile(BLANK)

    ### remove DEM look up table if it existed for considering gamma overlapping

    if os.path.isfile(UTMDEM):
        os.remove(UTMDEM)
    if os.path.isfile(UTMDEMpar):
        os.remove(UTMDEMpar)
    if os.path.isfile(UTM2RDC):
        os.remove(UTM2RDC)

    nWidthUTMDEM0 = ut.read_gamma_par(demPar, 'read', 'width')
    DateFormat = ut.read_gamma_par(demPar, 'read', 'data_format:')

    if DateFormat == 'INTEGER*2':
        DF_type = '4'
    else:
        DF_type = '2'

    #tmp_dem = dem + '_tmp'

    #if not os.path.isfile(tmp_dem):
    #    #call_str = 'replace_values ' + dem + ' -10000 0 ' + tmp_dem + ' ' + nWidthUTMDEM0 + ' 2 ' + DF_type
    #    call_str = 'replace_values ' + dem + ' -10000 0 ' + tmp_dem + ' ' + nWidthUTMDEM0 + ' 2 ' + DF_type + ' 1 '
    #    os.system(call_str)
    #    call_str = 'cp ' + tmp_dem + ' ' + dem
    #    os.system(call_str)

    call_str = "multi_look " + MslcImg + " " + MslcPar + " " + MamprlksImg + " " + MamprlksPar + " " + rlks + " " + azlks
    os.system(call_str)

    #call_str = 'gc_map ' + MamprlksPar + ' ' + '-' + ' ' + demPar + ' ' + dem + ' ' + UTMDEMpar + ' ' + UTMDEM + ' ' + UTM2RDC + ' ' + latovrSimphase + ' ' + lonovrSimphase + ' ' + SIMSARUTM + ' - - - - ' + PIX + ' ' + LSMAP + ' - 3 128'
    #call_str = 'gc_map ' + MamprlksPar + ' ' + '-' + ' ' + demPar + ' ' + dem + ' ' + UTMDEMpar + ' ' + UTMDEM + ' ' + UTM2RDC + ' ' + latovrSimphase + ' ' + lonovrSimphase + ' ' + SIMSARUTM + ' - - - - ' + PIX + ' ' + LSMAP + ' - 3 128'

    call_str = 'gc_map ' + MamprlksPar + ' ' + '-' + ' ' + demPar + ' ' + dem + ' ' + UTMDEMpar + ' ' + UTMDEM + ' ' + UTM2RDC + ' ' + latovrSimphase + ' ' + lonovrSimphase + ' ' + SIMSARUTM + ' - - - - ' + PIX + ' ' + LSMAP + ' - 1'
    os.system(call_str)

    nWidthUTMDEM = ut.read_gamma_par(UTMDEMpar, 'read', 'width')
    nLinePWR1 = ut.read_gamma_par(MamprlksPar, 'read', 'azimuth_lines')
    nWidth = ut.read_gamma_par(MamprlksPar, 'read', 'range_samples')

    call_str = 'geocode ' + UTM2RDC + ' ' + SIMSARUTM + ' ' + nWidthUTMDEM + ' ' + SIMSARRDC + ' ' + nWidth + ' ' + nLinePWR1 + ' 0 0'
    os.system(call_str)

    call_str = 'create_diff_par ' + MamprlksPar + ' ' + MamprlksPar + ' ' + SIMDIFFpar + ' 1 < ' + BLANK
    os.system(call_str)

    call_str = 'init_offsetm ' + SIMSARRDC + ' ' + MamprlksImg + ' ' + SIMDIFFpar + ' 2 2 ' + rposSimphase + ' ' + azposSimphase  #+ ' - - - 512'
    os.system(call_str)

    call_str = 'offset_pwrm ' + SIMSARRDC + ' ' + MamprlksImg + ' ' + SIMDIFFpar + ' ' + SIMOFFS + ' ' + SIMSNR + ' ' + rwinSimphase + ' ' + azwinSimphase + ' ' + SIMOFFSET  #+ ' - 128 128 ' + threshSimphase
    os.system(call_str)

    call_str = 'offset_fitm ' + SIMOFFS + ' ' + SIMSNR + ' ' + SIMDIFFpar + ' ' + SIMCOFF + ' ' + SIMCOFFSETS + ' - > ' + OFFSTD
    os.system(call_str)

    call_str = 'gc_map_fine ' + UTM2RDC + ' ' + nWidthUTMDEM + ' ' + SIMDIFFpar + ' ' + UTMTORDC + ' 1'
    #print(call_str)
    os.system(call_str)

    call_str = 'geocode ' + UTMTORDC + ' ' + UTMDEM + ' ' + nWidthUTMDEM + ' ' + HGTSIM + ' ' + nWidth + ' ' + nLinePWR1 + ' 0 0 - - 1 1 1'
    os.system(call_str)

    print("Create DEM in Radar Coordinates is done!")

    sys.exit(1)
예제 #16
0
def main(argv):
    start_time = time.time()
    inps = cmdLineParse() 
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    projectDir = scratchDir + '/' + projectName 
    slcDir    = scratchDir + '/' + projectName + '/SLC'
    rslcDir    = scratchDir + '/' + projectName + '/RSLC'   
    if not os.path.isdir(rslcDir): os.mkdir(rslcDir)
    
    
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict=ut.update_template(templateFile)
    
    demDir = scratchDir + '/' + projectName + '/DEM' 
    
    Mdate = templateDict['masterDate']
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    
    
    ################## generate SLC of the mater date for S1
    
    if 'S1' in projectName:
        
        SLC_Tab = slcDir + '/' + Mdate + '/' + Mdate + '_SLC_Tab'
        TSLC = slcDir + '/' + Mdate + '/' + Mdate + '.slc'
        TSLCPar = slcDir + '/' + Mdate + '/' + Mdate + '.slc.par'
        
        k0 = 0
        if os.path.isfile(TSLCPar):
            if os.path.getsize(TSLCPar) > 0:
                k0 = 1
        
        if k0 ==0:    
            call_str = 'SLC_mosaic_S1_TOPS ' +  SLC_Tab + ' ' + TSLC + ' ' + TSLCPar + ' ' + rlks + ' ' + azlks
            os.system(call_str)
    
    ######################################################
    
    HGTSIM      = demDir + '/' + Mdate + '_' + rlks + 'rlks.rdc.dem'
    if not os.path.isfile(HGTSIM):
        call_str = 'generate_rdc_dem.py ' + projectName
        os.system(call_str)
    
    
    if 'S1' in projectName: cmd_command = 'coreg_s1_gamma.py'
    else: cmd_command = 'coreg_gamma.py'
        
    err_txt = scratchDir + '/' + projectName + '/coreg_gamma_all.err'
    if os.path.isfile(err_txt): os.remove(err_txt)
    
    data_para = []
    #slc_list = [os.path.basename(fname) for fname in sorted(glob.glob(slcDir + '/*'))]
    slc_list = ut.get_project_slcList(projectName)
    for i in range(len(slc_list)):
        cmd0 = [cmd_command,projectName,slc_list[i]]
        data0 = [cmd0,err_txt]
        data_para.append(data0)
    
    ut.parallel_process(data_para, work, n_jobs=inps.parallelNumb, use_kwargs=False)
    print("Coregister all of the SLCs %s is done! " % projectName)
    ut.print_process_time(start_time, time.time())
    
    sys.exit(1)
예제 #17
0
def main(argv):
    
    inps = cmdLineParse() 
    projectName = inps.projectName
    Pair = inps.pair
    
    scratchDir = os.getenv('SCRATCHDIR')
    ifgDir = scratchDir + '/' + projectName + "/ifgrams"
    demDir = scratchDir + '/' + projectName + "/DEM"
    workDir = ifgDir + '/' + Pair

    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict=ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    masterDate = templateDict['masterDate']
    
    slcDir     = scratchDir + '/' + projectName + "/SLC" 
    rslcDir    = scratchDir + '/' + projectName + "/RSLC"
    demDir     = scratchDir + '/' + projectName + '/DEM'
    
    ######### copy common file for parallel processing #############
    
    Mamp0    = rslcDir + '/' + masterDate + '/' + masterDate + '_' + rlks + 'rlks.amp'
    MampPar0 = rslcDir + '/' + masterDate + '/' + masterDate + '_' + rlks + 'rlks.amp.par'
    
    Mamp     = workDir + '/' + masterDate + '_' + rlks + 'rlks.amp'
    MampPar  = workDir + '/' + masterDate + '_' + rlks + 'rlks.amp.par'
    
    ut.copy_file(Mamp0,Mamp)
    ut.copy_file(MampPar0,MampPar)
    
    #################################################################
    UNWIFG     =  workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt.unw'
    DIFFIFG    =  workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt'
    CORIFG     =  workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt.cor'
    
    GeoMamp    =  workDir + '/geo_' + masterDate + '_' + rlks + 'rlks.amp'
    GeoCOR    =  workDir + '/geo_' + masterDate + '_' + rlks + 'rlks.diff_filt.cor'
    GeoUNW     =  workDir + '/geo_' + Pair + '_' + rlks + 'rlks.diff_filt.unw'
    GeoDIFF    =  workDir + '/geo_' + Pair + '_' + rlks + 'rlks.diff_filt'
    
    UTMTORDC0 = demDir + '/' + masterDate + '_' + rlks + 'rlks.UTM_TO_RDC'
    UTMDEMpar0 = demDir + '/' + masterDate + '_' + rlks + 'rlks.utm.dem.par'
    
    UTMTORDC = workDir + '/' + masterDate + '_' + rlks + 'rlks.UTM_TO_RDC'
    UTMDEMpar = workDir + '/' + masterDate + '_' + rlks + 'rlks.utm.dem.par'
    
    ut.copy_file(UTMTORDC0,UTMTORDC)
    ut.copy_file(UTMDEMpar0,UTMDEMpar)

    nWidth = ut.read_gamma_par(MampPar, 'read', 'range_samples')
    nWidthUTMDEM = ut.read_gamma_par(UTMDEMpar, 'read', 'width')
    nLineUTMDEM = ut.read_gamma_par(UTMDEMpar, 'read', 'nlines')
    print(nWidth)
    
    if 'geo_interp' in templateDict: geo_interp = templateDict['geo_interp']
    else: geo_interp = '0'
    
    geocode(Mamp, GeoMamp, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp)
    geocode(CORIFG, GeoCOR, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp)
    geocode(DIFFIFG, GeoDIFF, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp)
    geocode(UNWIFG, GeoUNW, UTMTORDC, nWidth, nWidthUTMDEM, nLineUTMDEM, geo_interp)

    call_str = 'rasmph_pwr ' + GeoDIFF + ' ' + GeoMamp + ' ' + nWidthUTMDEM + ' - - - - - - - - - ' + GeoCOR + ' - - ' 
    os.system(call_str)

    call_str = 'raspwr ' + GeoMamp + ' ' + nWidthUTMDEM + ' - - - - - - - - - - ' 
    os.system(call_str)
    
    call_str = 'rasrmg ' + GeoUNW + ' ' + GeoMamp + ' ' + nWidthUTMDEM + ' - - - - - - - - - - - '  + GeoCOR + ' - - ' 
    os.system(call_str)
    
    os.remove(Mamp)
    #os.remove(MampPar)
    
    os.remove(UTMTORDC)
    os.remove(UTMDEMpar)
    
    print("Geocoding is done!") 
    sys.exit(1)
예제 #18
0
파일: load_mintpy.py 프로젝트: thorly/PyINT
def main(argv):

    inps = cmdLineParse()
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    scratchDir0 = os.getenv('SCRATCHDIR0')
    projectDir = scratchDir + '/' + projectName
    projectDir0 = scratchDir0 + '/' + projectName

    if not os.path.isdir(projectDir0):
        os.mkdir(projectDir0)

    demDir = scratchDir + '/' + projectName + '/DEM'
    rslcDir = scratchDir + '/' + projectName + '/RSLC'

    ifgDir = projectDir + '/ifgrams'
    unwFile = projectDir + '/ifgrams/*/2*rlks.diff_filt.unw'  # considering geocode unw file
    corFile = projectDir + '/ifgrams/*/2*rlks.diff_filt.cor'
    #print(unwFile)
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)

    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    masterDate = templateDict['masterDate']
    MampPar = rslcDir + '/' + masterDate + '/' + masterDate + '_' + rlks + 'rlks.amp.par'
    date_list = ut.get_project_slcList(projectName)
    date_list = sorted(date_list)
    slc_par_list = [
        rslcDir + '/' + date0 + '/' + date0 + '.rlsc.par'
        for date0 in date_list
    ]
    ifgdir_list = glob.glob(ifgDir + '/*')
    for k0 in ifgdir_list:
        pair0 = os.path.basename(k0)
        m0 = pair0.split('-')[0]
        s0 = pair0.split('-')[1]

        workDir = k0
        mamppar0 = rslcDir + '/' + m0 + '/' + m0 + '_' + rlks + 'rlks.amp.par'
        samppar0 = rslcDir + '/' + s0 + '/' + s0 + '_' + rlks + 'rlks.amp.par'
        mrslcpar0 = rslcDir + '/' + m0 + '/' + m0 + '.rslc.par'
        srslcpar0 = rslcDir + '/' + s0 + '/' + s0 + '.rslc.par'

        mamppar = workDir + '/' + m0 + '_' + rlks + 'rlks.amp.par'
        samppar = workDir + '/' + s0 + '_' + rlks + 'rlks.amp.par'
        mrslcpar = workDir + '/' + m0 + '.rslc.par'
        srslcpar = workDir + '/' + s0 + '.rslc.par'

        ut.copy_file(mamppar0, mamppar)
        ut.copy_file(samppar0, samppar)
        ut.copy_file(mrslcpar0, mrslcpar)
        ut.copy_file(srslcpar0, srslcpar)

    #unw_list = glob.glob(ifgDir + '/*/*rlks.diff_filt.unw')
    #cor_list = glob.glob(ifgDir + '/*/*rlks.diff_filt.cor')

    dem_geo = glob.glob(demDir + '/*rlks.utm.dem')[0]
    geo_par = glob.glob(demDir + '/*rlks.utm.dem.par')[0]

    dem_rdc = glob.glob(demDir + '/*_' + rlks + 'rlks.rdc.dem')[0]
    rdc_par = glob.glob(demDir + '/*_' + rlks + 'rlks.diff_par')[0]  # diff_par
    lt = glob.glob(demDir + '/*_' + rlks + 'rlks.UTM_TO_RDC')[0]

    strPro = 'mintpy.load.processor      = gamma'
    strUNW = "mintpy.load.unwFile        = " + unwFile
    strCOR = 'mintpy.load.corFile        = ' + corFile
    strCon = 'mintpy.load.connCompFile   = auto'
    strInt = 'mintpy.load.intFile        = auto'
    strIon = 'mintpy.load.ionoFile       = auto'

    strDem = 'mintpy.load.demFile        = ' + dem_rdc
    strDemGeo = 'mintpy.load.demFile        = ' + dem_geo
    strLtY = 'mintpy.load.lookupYFile    = ' + lt
    strLtX = 'mintpy.load.lookupXFile    = ' + lt
    strInc = 'mintpy.load.incAngleFile   = auto'
    strAza = 'mintpy.load.azAngleFile    = auto'
    strSha = 'mintpy.load.shadowMaskFile = auto'
    strWat = 'mintpy.load.waterMaskFile  = auto'
    strBrp = 'mintpy.load.bperpFile      = auto'

    templateFile0 = projectDir + '/mintpy.template'

    if 'mintpy.load.processor' not in templateDict:
        write_template(strPro, templateFile0)
    if 'mintpy.load.unwFile' not in templateDict:
        write_template(strUNW, templateFile0)
    if 'mintpy.load.corFile' not in templateDict:
        write_template(strCOR, templateFile0)
    if 'mintpy.load.demFile' not in templateDict:
        write_template(strDem, templateFile0)
    if 'mintpy.load.lookupYFile' not in templateDict:
        write_template(strLtY, templateFile0)
    if 'mintpy.load.lookupXFile' not in templateDict:
        write_template(strLtX, templateFile0)

    if 'mintpy.load.connCompFile' not in templateDict:
        write_template(strCon, templateFile0)
    if 'mintpy.load.intFile' not in templateDict:
        write_template(strInt, templateFile0)
    if 'mintpy.load.ionoFile' not in templateDict:
        write_template(strIon, templateFile0)

    if 'mintpy.load.incAngleFile' not in templateDict:
        write_template(strInc, templateFile0)
    if 'mintpy.load.azAngleFile' not in templateDict:
        write_template(strAza, templateFile0)
    if 'mintpy.load.shadowMaskFile' not in templateDict:
        write_template(strSha, templateFile0)
    if 'mintpy.load.waterMaskFile' not in templateDict:
        write_template(strWat, templateFile0)
    if 'mintpy.load.bperpFile' not in templateDict:
        write_template(strBrp, templateFile0)

    os.chdir(projectDir0)
    call_str = 'load_data.py -t ' + templateFile0
    os.system(call_str)

    os.chdir(projectDir0)
    write_template(strDemGeo, templateFile0)
    call_str = 'load_data.py -t ' + templateFile0
    os.system(call_str)

    sys.exit(1)
예제 #19
0
def main(argv):

    inps = cmdLineParse()
    Mdate = inps.Mdate
    Sdate = inps.Sdate

    projectName = inps.projectName
    Sdate = inps.Sdate
    Mdate = inps.Mdate

    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']

    processDir = scratchDir + '/' + projectName + "/PROCESS"
    slcDir = scratchDir + '/' + projectName + "/SLC"
    rslcDir = scratchDir + '/' + projectName + '/RSLC'
    ifgDir = scratchDir + '/' + projectName + '/ifgrams'

    Pair = Mdate + '-' + Sdate
    workDir = ifgDir + '/' + Pair

    ################ copy file for parallel processing ###############
    Mamp0 = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar0 = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    Samp0 = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SampPar0 = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.par'

    Mamp = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar = workDir + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    Samp = workDir + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SampPar = workDir + '/' + Sdate + '_' + rlks + 'rlks.amp.par'

    ut.copy_file(Mamp0, Mamp)
    ut.copy_file(Samp0, Samp)
    ut.copy_file(MampPar0, MampPar)
    ut.copy_file(SampPar0, SampPar)
    ###############################################################

    nWidth = ut.read_gamma_par(MampPar, 'read', 'range_samples')
    nLine = ut.read_gamma_par(MampPar, 'read', 'azimuth_lines')

    CORMASK = workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt.cor'
    WRAPlks = workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt'
    UNWlks = workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt.unw'

    CORMASKbmp = CORMASK.replace('.diff_filt.cor', '.diff_filt.cor_mask.bmp')

    if os.path.isfile(CORMASKbmp):
        os.remove(CORMASKbmp)

    call_str = 'rascc_mask ' + CORMASK + ' ' + Mamp + ' ' + nWidth + ' 1 1 0 1 1 ' + templateDict[
        'unwrapThreshold'] + ' 0.0 0.1 0.9 1. .35 1 ' + CORMASKbmp  # based on int coherence
    os.system(call_str)

    call_str = 'mcf ' + WRAPlks + ' ' + CORMASK + ' ' + CORMASKbmp + ' ' + UNWlks + ' ' + nWidth + ' ' + templateDict[
        'mcf_triangular'] + ' - - - - ' + templateDict[
            'unwrap_patr'] + ' ' + templateDict['unwrap_pataz']
    os.system(call_str)

    call_str = 'rasrmg ' + UNWlks + ' ' + Mamp + ' ' + nWidth + ' - - - - - - - - - - '
    os.system(call_str)

    os.remove(Mamp)
    os.remove(Samp)
    #os.remove(MampPar)
    #os.remove(SampPar)
    print("Uwrapping interferometric phase is done!")
    sys.exit(1)
예제 #20
0
def main(argv):

    start_time = time.time()
    inps = cmdLineParse()
    Mdate = inps.Mdate
    Sdate = inps.Sdate

    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    templateDir = os.getenv('TEMPLATEDIR')
    templateFile = templateDir + "/" + projectName + ".template"
    templateDict = ut.update_template(templateFile)
    rlks = templateDict['range_looks']
    azlks = templateDict['azimuth_looks']
    masterDate = templateDict['masterDate']

    projectDir = scratchDir + '/' + projectName
    demDir = scratchDir + '/' + projectName + '/DEM'

    slcDir = scratchDir + '/' + projectName + '/SLC'
    rslcDir = scratchDir + '/' + projectName + '/RSLC'
    ifgDir = projectDir + '/ifgrams'
    if not os.path.isdir(ifgDir): os.mkdir(ifgDir)

    Pair = Mdate + '-' + Sdate
    workDir = ifgDir + '/' + Pair
    if not os.path.isdir(workDir): os.mkdir(workDir)

    #######################################################################
    Mamp = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp'
    MampPar = rslcDir + '/' + Mdate + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    Samp = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp'
    SampPar = rslcDir + '/' + Sdate + '/' + Sdate + '_' + rlks + 'rlks.amp.par'

    Mrslc = rslcDir + '/' + Mdate + '/' + Mdate + '.rslc'
    MrslcPar = rslcDir + '/' + Mdate + '/' + Mdate + '.rslc.par'
    Srslc = rslcDir + '/' + Sdate + '/' + Sdate + '.rslc'
    SrslcPar = rslcDir + '/' + Sdate + '/' + Sdate + '.rslc.par'

    HGT = demDir + '/' + masterDate + '_' + rlks + 'rlks.rdc.dem'

    MasterPar = rslcDir + '/' + masterDate + '/' + masterDate + '.rslc.par'

    ################# copy file for parallel processing ##########################
    #Mamp     =   workDir + '/' + Mdate + '_' + rlks + 'rlks.amp'
    #MampPar  =   workDir + '/' + Mdate + '_' + rlks + 'rlks.amp.par'
    #Samp     =   workDir + '/' + Sdate + '_' + rlks + 'rlks.amp'
    #SampPar  =   workDir + '/' + Sdate + '_' + rlks + 'rlks.amp.par'

    #if not templateDict['diff_all_parallel'] == '1':

    #    Mrslc    =   workDir + '/' + Mdate + '.rslc'
    #    MrslcPar =   workDir + '/' + Mdate + '.rslc.par'
    #    Srslc    =   workDir + '/' + Sdate + '.rslc'
    #    SrslcPar =   workDir + '/' + Sdate + '.rslc.par'
    #    ut.copy_file(Mrslc0,Mrslc)
    #    ut.copy_file(MrslcPar0,MrslcPar)
    #    ut.copy_file(Srslc0,Srslc)
    #    ut.copy_file(SrslcPar0,SrslcPar)

    #else:

    #    Mrslc    =   Mrslc0
    #    MrslcPar =   MrslcPar0
    #    Srslc    =   Srslc0
    #    SrslcPar =   SrslcPar0
    #    HGT = HGT0
    #    MasterPar = MasterPar0

    #ut.copy_file(Mamp0,Mamp)
    #ut.copy_file(MampPar0,MampPar)
    #ut.copy_file(Samp0,Samp)
    #ut.copy_file(SampPar0,SampPar)

    #ut.copy_file(HGT0,HGT)
    #ut.copy_file(MasterPar0,MasterPar)

    ############################################################################

    OFF = workDir + '/' + Pair + '_' + rlks + 'rlks.off'
    call_str = 'create_offset ' + MrslcPar + ' ' + SrslcPar + ' ' + OFF + ' 1 ' + rlks + ' ' + azlks + ' 0'
    os.system(call_str)

    SIM_UNW = workDir + '/' + Pair + '.sim_unw'
    call_str = 'phase_sim_orb ' + MrslcPar + ' ' + SrslcPar + ' ' + OFF + ' ' + HGT + ' ' + SIM_UNW + ' ' + MasterPar + ' - - 1 1'
    os.system(call_str)

    DIFF_IFG = workDir + '/' + Pair + '_' + rlks + 'rlks.diff'
    call_str = 'SLC_diff_intf ' + Mrslc + ' ' + Srslc + ' ' + MrslcPar + ' ' + SrslcPar + ' ' + OFF + ' ' + SIM_UNW + ' ' + DIFF_IFG + ' ' + rlks + ' ' + azlks + ' ' + templateDict[
        'Igram_Spsflg'] + ' ' + templateDict['Igram_Azfflg'] + ' - 1 1'
    os.system(call_str)

    ##### filtering process & coherence estimation ###########
    DIFFFILT = workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt'
    COHFILT = workDir + '/' + Pair + '_' + rlks + 'rlks.diff_filt.cor'

    nWIDTH = ut.read_gamma_par(OFF, 'read', 'interferogram_width')
    call_str = 'adf ' + DIFF_IFG + ' ' + DIFFFILT + ' ' + COHFILT + ' ' + nWIDTH + ' ' + templateDict[
        'adf_alpha'] + ' - ' + templateDict['Igram_Cor_Win']
    os.system(call_str)

    ################# coherence estimation #####################
    call_str = 'cc_wave ' + DIFFFILT + ' ' + Mamp + ' ' + Samp + ' ' + COHFILT + ' ' + nWIDTH + ' ' + templateDict[
        'Igram_Cor_rwin'] + ' ' + templateDict['Igram_Cor_awin']
    os.system(call_str)

    ################ save images #####################
    call_str = 'rasmph_pwr ' + DIFFFILT + ' ' + Mamp + ' ' + nWIDTH + ' - - - - - - - - - ' + COHFILT + ' - 0.1'
    os.system(call_str)

    call_str = 'rasmph_pwr ' + DIFF_IFG + ' ' + Mamp + ' ' + nWIDTH + ' - - - - - - - - - ' + COHFILT + ' - 0.1'
    os.system(call_str)

    call_str = 'rascc ' + COHFILT + ' ' + Mamp + ' ' + nWIDTH
    os.system(call_str)

    #os.remove(Mamp)
    #os.remove(MampPar)
    #os.remove(Samp)
    #os.remove(SampPar)

    #if not templateDict['diff_all_parallel'] == '1':
    #    if os.path.isfile(Mrslc): os.remove(Mrslc)
    #    if os.path.isfile(Srslc):os.remove(Srslc)

    #    if os.path.isfile(HGT):os.remove(HGT)

    print("Subtraction of topography and flattening phase is done!")
    ut.print_process_time(start_time, time.time())
    sys.exit(1)