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