예제 #1
0
def main(argv):
    start_time = time.time()
    inps = cmdLineParse()
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    projectDir = scratchDir + '/' + projectName
    slcDir = scratchDir + '/' + projectName + '/SLC'
    slc_list = [
        os.path.basename(fname) for fname in sorted(glob.glob(slcDir + '/*'))
    ]

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

    data_para = []
    for i in range(len(slc_list)):
        cmd0 = ['extract_s1_bursts.py', 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("Extract TOPS bursts for project %s is done! " % projectName)
    ut.print_process_time(start_time, time.time())

    sys.exit(1)
예제 #2
0
def main(argv):
    start_time = time.time()
    inps = cmdLineParse()
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    projectDir = scratchDir + '/' + projectName
    downDir = scratchDir + '/' + projectName + "/DOWNLOAD"
    raw_file_list = glob.glob(downDir + '/S1*.zip')

    slc_dir = scratchDir + '/' + projectName + '/SLC'
    if not os.path.isdir(slc_dir):
        os.mkdir(slc_dir)

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

    data_para = []
    for i in range(len(raw_file_list)):
        cmd0 = ['unzip', raw_file_list[i], '-d', downDir]
        data0 = [cmd0, err_txt]
        data_para.append(data0)

    ut.parallel_process(data_para,
                        work,
                        n_jobs=inps.parallelNumb,
                        use_kwargs=False)
    os.chdir(downDir)
    print("Unzip Sentinel-1 raw dataset for project %s is done! " %
          projectName)
    ut.print_process_time(start_time, time.time())

    sys.exit(1)
예제 #3
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)

    cmd_command = 'generate_multilook_amp.py'

    err_txt = scratchDir + '/' + projectName + '/generate_amp_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(rslcDir + '/*'))
    ]
    #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("Generate multilooked apm for all rslcs 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')
    projectDir = scratchDir + '/' + projectName
    slcDir = scratchDir + '/' + projectName + '/SLC'
    rslcDir = scratchDir + '/' + projectName + '/RSLC'
    if not os.path.isdir(rslcDir): os.mkdir(rslcDir)

    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)
예제 #5
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)
예제 #6
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)
예제 #7
0
def main(argv):
    start_time = time.time()
    inps = cmdLineParse()
    projectName = inps.projectName
    scratchDir = os.getenv('SCRATCHDIR')
    projectDir = scratchDir + '/' + projectName
    downDir = scratchDir + '/' + projectName + "/DOWNLOAD"
    raw_file_list = glob.glob(downDir + '/S1*.zip')

    # get the burst number table of the mater date
    call_str = 'get_master_burst_numb.py ' + projectName
    os.system(call_str)

    date_list = []
    for kk in range(len(raw_file_list)):
        date0 = get_s1_date(os.path.basename(raw_file_list[kk]))
        date_list.append(date0)

    date_list = set(date_list)
    date_list = sorted(date_list)

    print('Date to be processed:')
    for k0 in date_list:
        print(k0)

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

    data_para = []
    for i in range(len(date_list)):
        cmd0 = ['down2slc_sen.py', projectName, date_list[i]]
        data0 = [cmd0, err_txt]
        data_para.append(data0)

    ut.parallel_process(data_para,
                        work,
                        n_jobs=inps.parallelNumb,
                        use_kwargs=False)
    os.chdir(downDir)
    print("Down to SLC for project %s is done! " % projectName)
    ut.print_process_time(start_time, time.time())

    sys.exit(1)
예제 #8
0
파일: s1_orb_all.py 프로젝트: ymcmrs/PyINT
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)

    cmd_command = 'generate_multilook_amp.py'

    err_txt = scratchDir + '/' + projectName + '/generate_amp_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(rslcDir + '/*'))
    ]
    #slc_list = ut.get_project_slcList(projectName)
    for i in range(len(slc_list)):
        rslcPar = rslcDir + '/' + slc_list[i] + '/' + slc_list[i] + '.rslc.par'
        #print(rslcPar)
        workDir0 = rslcDir + '/' + slc_list[i]
        BB = glob.glob(workDir0 + '/*.EOF')
        if len(BB) == 0:
            Sensor = ut.read_gamma_par(rslcPar, 'read', 'sensor')
            if 'A' in Sensor: satellite = 'A'
            else: satellite = 'B'
            ut.download_s1_orbit(slc_list[i], workDir0, satellite=satellite)

            BB = glob.glob(workDir0 + '/*.EOF')
            if len(BB) > 0:
                orb_file = BB[0]

                call_str = 'S1_OPOD_vec ' + rslcPar + ' ' + orb_file + ' 31'
                os.system(call_str)

    print("Using precise orbit data for all rslcs is done! ")
    ut.print_process_time(start_time, time.time())

    sys.exit(1)
예제 #9
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)
예제 #10
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)
예제 #11
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)
예제 #12
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)
예제 #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)

    #######################################################################
    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)