def main(iargs=None): inps = cmd_line_parse(iargs) print('single track!') inps.startDate, inps.endDate = multitrack_utilities.find_start_end_date( os.getcwd(), inps) # set output dir inps.outdir = multitrack_utilities.set_outdir(inps, 'geodmod') print(inps) if str.find(inps.file, 'ifgramStack') != -1: process_ifgramStack(inps) elif str.find(inps.file, 'velocity') != -1: process_geocode(inps) process_velocity(inps) elif str.find(inps.file, 'timeseries') != -1: process_geocode(inps) process_timeseries(inps) else: process_HDFEOS(inps) # rename *.rsc1 to *.rsc outfile = multitrack_utilities.seperate_str_byspace(['srtm.dem' + '.rsc']) write_rsc_file( inps, outfile, multitrack_utilities.seperate_str_byspace(['srtm.dem' + '.rsc1'])) os.remove(outfile) print('rename *.rsc1 to *.rsc') os.rename( multitrack_utilities.seperate_str_byspace(['srtm.dem' + '.rsc1']), outfile) # generate dem.jpeg dem_jpeg('srtm.dem')
def process_ifgramStack(inps): """process ifgramStack.h5 file""" if os.path.exists("".join(inps.outdir)) == False: os.makedirs("".join(inps.outdir)) #ifgramStack file atr_asc = ['./inputs/' + inps.file] cmd_args = [ atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(inps.outdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) #save dataset of unw os.chdir("".join(inps.outdir)) filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ 'geo_' + filename + extension, "".join(['unwrapPhase-', inps.startDate, '_', inps.endDate]) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()]))
def process_geocode(inps): """process temporalCoherence.h5 and geometryRadar.h5 file""" # process cor and dem dataset if os.path.exists("".join(inps.outdir)) == False: os.makedirs("".join(inps.outdir)) demname = 'geometryRadar.h5' if not os.path.isfile(demname): demname_f = './inputs/geometryRadar.h5' else: demname_f = 'geometryRadar.h5' cmd_args = [ demname_f, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(inps.outdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) if inps.mask_file: cmd_args = [ inps.mask_file, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(inps.outdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split())
def process_timeseries(inps): """geocode timeseries**.h5 file and get the deformation field of two time periods""" atr_asc = inps.file #unw file cmd_args = [ atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(inps.outdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) #save dataset of unw os.chdir("".join(inps.outdir)) filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ 'geo_' + filename + extension, "".join([inps.startDate, '_', inps.endDate]) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()]))
def calculate_horzvert_displacement(inps, outdir): """generate horizontal and vertical displacment data""" os.chdir(outdir) datafiles = [] key1 = 'geo_' for file in os.listdir(outdir): if os.path.splitext(file)[1] == '.unw': if str.find(file, key1) != -1: datafiles.append(file) if inps.azimuth != 'None': if inps.outname[0] != 'None': cmd_args = [ datafiles[0], datafiles[1], '--az', inps.azimuth, '-o', inps.outname ] else: cmd_args = [datafiles[0], datafiles[1], '--az', inps.azimuth] else: if inps.outname[0] != 'None': cmd_args = [datafiles[0], datafiles[1], '-o', inps.outname] else: cmd_args = [datafiles[0], datafiles[1]] print("asc_desc2horz_vert.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['asc_desc2horz_vert.py', args_str.split()])) return
def process_HDFEOS(inps): """process S1*.h5 file""" atr_asc = inps.file #save dataset of unw and geometry filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ filename + extension, "".join(['displacement-', inps.startDate, '_', inps.endDate]), '-o', "".join(['geo_', inps.startDate, '_', inps.endDate, '.unw']) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) #mv if os.path.exists(inps.outdir) == False: os.makedirs(inps.outdir) else: shutil.rmtree(inps.outdir) os.makedirs(inps.outdir) key1 = 'geo_' for file in os.listdir(os.getcwd()): if str.find(file, key1) != -1: shutil.move(file, inps.outdir)
def calculate_hozrvert_velocity(atr_asc, outdir, inps): """generate horizontal and vertical velocity data""" os.chdir("".join(outdir)) folders = multitrack_utilities.find_folder_horzvert('Sen', outdir) print(folders) file1 = outdir + folders[0] + '/' + atr_asc print(file1) file2 = outdir + folders[1] + '/' + atr_asc print(file2) outname = ['vel_horizontal.h5', 'vel_vertical.h5'] if inps.azimuth != 'None': cmd_args = [file1, file2, '--az', inps.azimuth, '-o', outname] else: cmd_args = [file1, file2, '-o', outname] print("asc_desc2horz_vert.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['asc_desc2horz_vert.py', args_str.split()])) for folder in folders: delete_dir = outdir + folder + '/' shutil.rmtree(delete_dir)
def process_velocity(inps, track, startDate, endDate, outdir, tmpdir): """process velocity.h5 file""" if os.path.exists("".join(tmpdir)) == False: os.makedirs("".join(tmpdir)) atr_asc = "".join([str(inps.DataType) + '.h5']) # mask if inps.maskfile and inps.maskfile != 'None': cmd_args = [atr_asc, '-m', inps.maskfile] print('mask.py', cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['mask.py', args_str.split()])) atr_asc = multitrack_utilities.seprate_filename_extension( atr_asc)[1] + '_msk.h5' print(atr_asc) #geocode velocity file cmd_args = [ atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(tmpdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) # save dataset of unw os.chdir("".join(tmpdir)) print('save unw file') atr_asc = 'geo_' + atr_asc velocity_displacement(atr_asc, startDate, endDate) copy_file('geo', 'unw', outdir) return atr_asc
def process_HDFEOS(inps, track, startDate, endDate, outdir, tmpdir): """process S1*.h5 file""" atr_asc = multitrack_utilities.find_HDFEOS_fullname("".join( [os.getenv('SCRATCHDIR') + '/' + track + '/mintpy/'])) #save dataset of unw filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ filename + extension, "".join(['displacement-', startDate, '_', endDate]), '-o', "".join(['geo_', startDate, '_', endDate, '.unw']) ] print("save_roipac.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', args_str.split()])) # mv if os.path.exists(tmpdir) == False: os.makedirs(tmpdir) else: shutil.rmtree(tmpdir) os.makedirs(tmpdir) key1 = 'geo_' for file in os.listdir(os.getcwd()): if str.find(file, key1) != -1: shutil.move(file, tmpdir) copy_file('geo', 'unw', outdir) shutil.rmtree(tmpdir)
def process_ifgramStack(inps, track, startDate, endDate, outdir, tmpdir): """process ifgramStack.h5 file""" if os.path.exists("".join(tmpdir)) == False: os.makedirs("".join(tmpdir)) atr_asc = ['./inputs/' + str(inps.DataType) + '.h5'] # mask if inps.maskfile and inps.maskfile != 'None': date_msk1 = re.split(r'[_.]', str(inps.maskfile))[0] date_msk1f = multitrack_utilities.find_nearest_date( os.getcwd(), str(date_msk1)) date_msk2 = re.split(r'[_.]', str(inps.maskfile))[1] date_msk2f = multitrack_utilities.find_nearest_date( os.getcwd(), str(date_msk2)) maskfile = date_msk1f + '_' + date_msk2f + '.cor' cmd_args = [atr_asc, '-m', maskfile] print('mask.py', cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['mask.py', args_str.split()])) atr_asc = './inputs/' + multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1] + '_msk.h5' #geocode ifgramStack file cmd_args = [ atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(tmpdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) #save dataset of unw os.chdir("".join(tmpdir)) filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ 'geo_' + filename + extension, "".join(['unwrapPhase-', startDate, '_', endDate]) ] print("save_roipac.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', args_str.split()])) copy_file('geo', 'unw', outdir) shutil.rmtree(tmpdir)
def geodmod(inpsdict): """prepare data for geodmod software""" if inpsdict['mimtpy.geodmod'] == 'yes': Dataset = inpsdict['mimtpy.geodmod.DataSet'] Dataset = list(tuple([i for i in Dataset.split(',')])) for dataset in Dataset: print( '\n***********************Start processing {} dataset***********************' .format(dataset)) # go to dataset_dir dataset_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy')) if not os.path.isdir(dataset_dir): raise Exception('Error! No such dir : {}'.format(dataset_dir)) print('\nGo to project dir:', dataset_dir) os.chdir(dataset_dir) # create geodmod dir software = 'geodmod' outdir = os.path.abspath(os.path.join(dataset_dir, software)) if not os.path.isdir(outdir): os.makedirs(outdir) # find the HDFEOS file name HDFEOS_file = mu.find_HDFEOS_fullname(dataset_dir) print('\nThe HDFEOS file is {}'.format(HDFEOS_file)) atr = readfile.read_attribute(HDFEOS_file) # get the startdate and enddate startDate, endDate = mu.find_start_end_date( dataset_dir, inpsdict['mimtpy.geodmod.startDate'], inpsdict['mimtpy.geodmod.endDate']) if startDate == 'None': startDate = atr['START_DATE'] if endDate == 'None': endDate = atr['END_DATE'] # go to geodmod dir print('\nGo to geodmod dir:', outdir) os.chdir(outdir) # generate parameter list for HDFEOS_to_geotiff.py if inpsdict['mimtpy.geodmod.SNWE'] == 'None': scp_args = [ '../' + HDFEOS_file, '-s', startDate, '-e', endDate ] else: SNWE = inpsdict['mimtpy.geodmod.SNWE'] SNWE = list(tuple([float(i) for i in SNWE.split(',')])) scp_args = [ '../' + HDFEOS_file, '-s', startDate, '-e', endDate, '--bbox', SNWE ] scp_args = mu.seperate_str_byspace(scp_args) # run save_geodmod.py print('save_geodmod.py', scp_args) mimtpy.save_geodmod.main(scp_args.split()) else: print('\nSkip geodmod step')
def main(iargs=None): inps = cmd_line_parse(iargs) print('--------------------------------------------------\n') if inps.e_ramp: print('subtract forward model data from observed data') ramp_file, ramp_noise_file = calculate_ramp_noise(inps) print('--------------------------------------------------\n') print('calculate residual data with estimating ramps') calculate_residual(inps, ramp_noise_file, ramp_file) else: print('calculate residual data without estimating ramp') observed_file = inps.Obs_file[0] mask_file = inps.mask[0] residual_file = inps.Model_file[0][:-3] + '_residual_noramp.h5' model_file = inps.Model_file[0] scp_args = [ observed_file, model_file, '-o', residual_file, '--outdir', inps.outdir[0] ] scp_args = mu.seperate_str_byspace(scp_args) print('subtract_h5.py', scp_args) mimtpy.subtract_h5.main(scp_args.split()) print('finish!')
def main(iargs=None): inps = cmd_line_parse(iargs) print(inps) # process HDFEOS data process_HDFEOS(inps) # rename *.rsc1 to *.rsc outfile = mu.seperate_str_byspace(['srtm.dem' + '.rsc']) write_rsc_file(inps, outfile, mu.seperate_str_byspace(['srtm.dem' + '.rsc1'])) os.remove(outfile) print('rename *.rsc1 to *.rsc') os.rename(mu.seperate_str_byspace(['srtm.dem' + '.rsc1']), outfile) # generate dem.jpeg dem_jpeg('srtm.dem')
def process_saveroi(inps): #save_roipac cmd_args = [ 'geo_temporalCoherence.h5', '-o', "".join(['geo_', inps.startDate, '_', inps.endDate, '.cor']) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) cmd_args = ['geo_geometryRadar.h5', 'height', '-o', 'srtm.dem'] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()]))
def process_timeseries(inps, track, startDate, endDate, outdir, tmpdir): """geocode timeseries**.h5 file and get the deformation field of two time periods""" if os.path.exists("".join(tmpdir)) == False: os.makedirs("".join(tmpdir)) atr_asc = multitrack_utilities.find_timeseries_horzvert("".join( [os.getenv('SCRATCHDIR') + '/' + track + '/mintpy/'])) # mask if inps.maskfile and inps.maskfile != 'None': cmd_args = [atr_asc, '-m', inps.maskfile] print('mask.py', cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['mask.py', args_str.split()])) atr_asc = multitrack_utilities.seprate_filename_extension( atr_asc)[1] + '_msk.h5' #geocode timeseries file cmd_args = [ atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', tmpdir ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) #save dataset of unw os.chdir("".join(tmpdir)) filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ 'geo_' + filename + extension, "".join([startDate, '_', endDate]) ] print("save_roipac.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', args_str.split()])) copy_file('geo', 'unw', outdir) shutil.rmtree(tmpdir)
def process_velocity(inps): """process velocity.h5 file""" atr_asc = inps.file #velocity file cmd_args = [atr_asc, '-b',inps.SNWE, '-y',inps.latStep, '-x',inps.lonStep, '--outdir',"".join(inps.outdir)] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) os.chdir("".join(inps.outdir)) print('save unw file') multitrack_utilities.velo_disp(inps)
def process_HDFEOS(inps): """process *.he5 file""" atr_asc = inps.file #save dataset of unw cor and dem filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ filename + extension, "".join(['displacement-', inps.startDate, '_', inps.endDate]), '-o', "".join(['geo_', inps.startDate, '_', inps.endDate, '.unw']) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) cmd_args = [ filename + extension, 'temporalCoherence', '-o', "".join(['geo_', inps.startDate, '_', inps.endDate, '.cor']) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) completion_status = os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) cmd_args = [filename + extension, 'height', '-o', 'srtm.dem'] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) # mv if os.path.exists(inps.outdir) == False: os.makedirs(inps.outdir) else: shutil.rmtree(inps.outdir) os.makedirs(inps.outdir) key1 = 'geo_' key2 = 'srtm' for file in os.listdir(os.getcwd()): if str.find(file, key1) != -1 or str.find(file, key2) != -1: shutil.move(file, inps.outdir) os.chdir("".join(inps.outdir)) multitrack_utilities.delete_tmpgeo(inps.outdir, 'geo_', '.h5')
def calculate_ramp_noise(inps): """subtract forward model data from observed data""" observed_file = inps.Obs_file[0] mask_file = inps.mask[0] ramp_type = inps.surface_type ramp_file = inps.ramp_file[0] ramp_noise_file = inps.output[0] model_file = inps.Model_file[0] scp_args = [ observed_file, model_file, '-o', ramp_noise_file, '--ramp', '-s', ramp_type, '-m', mask_file, '--ramp_file', ramp_file, '--outdir', inps.outdir[0] ] scp_args = mu.seperate_str_byspace(scp_args) print('subtract_h5.py', scp_args) print('ramp_noise file is: %s' % ramp_noise_file) print('estimated ramp file is: %s' % ramp_file) mimtpy.subtract_h5.main(scp_args.split()) return ramp_file, ramp_noise_file
def process_HDFEOS(inps): """process *.he5 file""" atr_asc = inps.file #save dataset of unw cor and dem filename, extension = mu.seprate_filename_extension("".join(atr_asc))[1:3] output_unw = "".join(['geo_', inps.startDate, '_', inps.endDate, '.unw']) cmd_args = [ '../' + filename + extension, "".join(['displacement-', inps.startDate, '_', inps.endDate]), '-o', output_unw ] print("save_roipac.py", cmd_args) asct_str = mu.seperate_str_byspace(cmd_args) os.system(mu.seperate_str_byspace(['save_roipac.py', asct_str.split()])) output_cor = "".join(['geo_', inps.startDate, '_', inps.endDate, '.cor']) cmd_args = [ '../' + filename + extension, 'temporalCoherence', '-o', output_cor ] print("save_roipac.py", cmd_args) asct_str = mu.seperate_str_byspace(cmd_args) completion_status = os.system( mu.seperate_str_byspace(['save_roipac.py', asct_str.split()])) output_dem = 'srtm.dem' cmd_args = ['../' + filename + extension, 'height', '-o', output_dem] print("save_roipac.py", cmd_args) asct_str = mu.seperate_str_byspace(cmd_args) os.system(mu.seperate_str_byspace(['save_roipac.py', asct_str.split()])) mask_filter(inps, output_unw) mask_filter(inps, output_cor) #mask_filter(inps,output_dem) if inps.SNWE: print('Subset data based on bbox') subset_data_based_bbox(inps, output_unw) subset_data_based_bbox(inps, output_cor) subset_data_based_bbox(inps, output_dem)
def horzvert(inps): """generate horzontal and vertical files.""" # get ascending data and descending data dataset_asc = inps.DataSet[0] dataset_des = inps.DataSet[1] # get ascending and descending data name file_asc = os.path.split(dataset_asc)[1].split('.')[0] file_des = os.path.split(dataset_des)[1].split('.')[0] # output dir outdir = inps.outdir[0] # judge whether we should change the reference point refpoi_lalo = inps.ref_poi if refpoi_lalo: refpoi_lat = refpoi_lalo[0] refpoi_lon = refpoi_lalo[1] print('\nchanging ascending and descending data reference point') # change ascending data refpoi completion_status = os.system( mu.seperate_str_byspace([ 'reference_point.py', dataset_asc, '-l', refpoi_lat, '-L', refpoi_lon ])) if completion_status == 1: raise Exception('error when runing reference_point.py for %s' % dataset_asc) asc_data, asc_atr = readfile.read(dataset_asc) asc_atr['REF_LAT'] = refpoi_lat asc_atr['REF_LON'] = refpoi_lon writefile.write(asc_data, out_file=dataset_asc, metadata=asc_atr) # change descending data refpoi completion_status = os.system( mu.seperate_str_byspace([ 'reference_point.py', dataset_des, '-l', refpoi_lat, '-L', refpoi_lon ])) if completion_status == 1: raise Exception('error when runing reference_point.py for %s' % dataset_des) des_data, des_atr = readfile.read(dataset_des) des_atr['REF_LAT'] = refpoi_lat des_atr['REF_LON'] = refpoi_lon writefile.write(des_data, out_file=dataset_des, metadata=des_atr) print('\ngo to the output dir {}'.format(outdir)) os.chdir(outdir) # spatial range in lat/lon format SNWE = inps.SNWE # subset ascending and descending to the same spatial region print('\nsubset ascending data') sub_file_asc = 'subset_' + file_asc + '.h5' print( mu.seperate_str_byspace([ 'subset.py', dataset_asc, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_asc ])) completion_status = os.system( mu.seperate_str_byspace([ 'subset.py', dataset_asc, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_asc ])) if completion_status == 1: raise Exception('error when subset ascending data!') print('\nsubset descending data') sub_file_des = 'subset_' + file_des + '.h5' print( mu.seperate_str_byspace([ 'subset.py', dataset_des, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_des ])) completion_status = os.system( mu.seperate_str_byspace([ 'subset.py', dataset_des, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_des ])) if completion_status == 1: raise Exception('error when subset descending data!') # resolve ascending and descending to horz and vert data. azimuth = inps.azimuth outname = inps.outname horz_name = outname[0] vert_name = outname[1] print('\n runing asc_desc2horz_vert.py') print( mu.seperate_str_byspace([ 'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '--az', str(azimuth), '-o', horz_name, vert_name ])) completion_status = os.system( mu.seperate_str_byspace([ 'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '--az', str(azimuth), '-o', horz_name, vert_name ])) if completion_status == 1: raise Exception('error when running asc_desc2horz_vert.py!') # run H5UNW_to_geotiff.py # horizontal data scp_args2 = [ horz_name, '--outdir', outdir, '--output', horz_name.split('.')[0] + '.tiff' ] scp_args2 = mu.seperate_str_byspace(scp_args2) print('\nH5UNW_to_geotiff.py', scp_args2) mimtpy.H5UNW_to_geotiff.main(scp_args2.split()) # vertical data scp_args2 = [ vert_name, '--outdir', outdir, '--output', vert_name.split('.')[0] + '.tiff' ] scp_args2 = mu.seperate_str_byspace(scp_args2) print('\nH5UNW_to_geotiff.py', scp_args2) mimtpy.H5UNW_to_geotiff.main(scp_args2.split()) return
def extract_data(inps, dataset, outdir): """extract data from HDFEOS file based on the given attribute""" # read HDFEOS file # metadata atr = readfile.read_attribute("".join(inps.input_HDFEOS)) attr = "".join(inps.attribute) # read 2d data if attr == 'displacement' or attr == 'velocity': if inps.date == None: date1 = atr['START_DATE'] date2 = atr['END_DATE'] #raise Exception("ERROR! Date for displacement must be given!") else: # date1 and date2 if '_' in "".join(inps.date): date1, date2 = ptime.yyyymmdd("".join(inps.date).split('_')) else: date1 = atr['START_DATE'] date2 = ptime.yyyymmdd("".join(inps.date)) #date12 = '{}_{}'.format(date1, date2) if attr == 'displacement': # read / prepare data slice_list = readfile.get_slice_list("".join(inps.input_HDFEOS)) # read/prepare data dname = 'displacement' slice_name1 = view.search_dataset_input( slice_list, '{}-{}'.format(dname, date1))[0][0] slice_name2 = view.search_dataset_input( slice_list, '{}-{}'.format(dname, date2))[0][1] data = readfile.read("".join(inps.input_HDFEOS), datasetName=slice_name2)[0] data -= readfile.read("".join(inps.input_HDFEOS), datasetName=slice_name1)[0] data_name = '{}_{}_{}'.format(attr, date1, date2) if inps.mask: print("mask file") maskfile = readfile.read( "".join(inps.input_HDFEOS), datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0] data[maskfile == 0] = np.nan outfile = outdir + '/' + data_name + '.h5' atr['FILE_TYPE'] = '.unw' writefile.write(data, out_file=outfile, metadata=atr) #print('converting range to phase') #data *= range2phase #if inps.ref_yx: # data -= data[inps.ref_yx[0], inps.ref_yx[1]] elif attr == 'velocity': maskfile = readfile.read( "".join(inps.input_HDFEOS), datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0] dname = 'displacement' data_timeseries = readfile.read("".join(inps.input_HDFEOS), datasetName=dataset + dname)[0] if inps.mask: print("mask file") data_timeseries[:, maskfile == 0] = np.nan bperp_date = h5py.File("".join(inps.input_HDFEOS), 'r') data_bperp = bperp_date[(dataset + 'bperp')] data_date = bperp_date[(dataset + 'date')] ts_data_name = 'timeseries_ERA_demErr.h5' outfile = outdir + '/' + ts_data_name # write to HDF5 file dsDict = dict() dsDict['bperp'] = data_bperp dsDict['date'] = data_date dsDict['timeseries'] = data_timeseries atr['FILE_TYPE'] = attr writefile.write(dsDict, out_file=outfile, metadata=atr) # run timeseries2velocity.py output_vel = 'velocity_' + date1 + '_' + date2 + '.h5' data_name = output_vel.split('.')[0] os.chdir(outdir) completion_status = os.system( multitrack_utilities.seperate_str_byspace([ 'timeseries2velocity.py', outfile, '--start-date', date1, '--end-date', date2, '--exclude', '../exclude_date.txt', '--output', output_vel ])) if completion_status == 1: raise Exception('error when generate velocity!') data_vel, vel_atr = readfile.read(output_vel, datasetName='velocity') data = data_vel if inps.mask: print("mask file") data[~maskfile] = np.nan writefile.write(data, out_file=output_vel, metadata=vel_atr) os.chdir('../') else: data = readfile.read("".join(inps.input_HDFEOS), datasetName=dataset + attr)[0] outfile = outdir + '/' + attr + '.h5' data_name = attr atr['FILE_TYPE'] = attr if inps.mask: print("mask file") maskfile = readfile.read( "".join(inps.input_HDFEOS), datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0] data[maskfile == 0] = np.nan writefile.write(data, out_file=outfile, metadata=atr) # mask data #if inps.mask: # print("mask file") # maskfile = readfile.read("".join(inps.input_HDFEOS),datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0] # data[maskfile == 0] = np.nan return data, data_name, atr
def horzvert(inpsdict): """generate horzontal and vertical files.""" if inpsdict['mimtpy.horzvert'] == 'yes': Dataset = inpsdict['mimtpy.horzvert.DataSet'] Dataset = list(tuple([i for i in Dataset.split(',')])) asc_data = Dataset[0] asc_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), asc_data, 'mintpy')) if not os.path.isdir(asc_dir): raise Exception('Error! No such dir : {}'.format(asc_dir)) des_data = Dataset[1] des_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), des_data, 'mintpy')) if not os.path.isdir(des_dir): raise Exception('Error! No such dir : {}'.format(des_dir)) # create workdir workdir = inpsdict['mimtpy.horzvert.outdir'] print('\nthe work dir is {}.\n '.format(workdir)) files = inpsdict['mimtpy.horzvert.dataname'] files = list(tuple([i for i in files.split(',')])) file_asc = files[0] file_des = files[1] file_type = file_asc.split('_')[0] # out put dir outdir = os.path.abspath(os.path.join(workdir, file_type)) + '/' if not os.path.isdir(outdir): os.makedirs(outdir) print('\nthe output dir is %s .\n' % outdir) # go to output dir os.chdir(outdir) # get the input ascending and descending dir+name file_asc_data = asc_dir + '/' + file_type + '/' + file_asc + '.h5' file_des_data = des_dir + '/' + file_type + '/' + file_des + '.h5' # reference point refpoi_lalo = inpsdict['mimtpy.horzvert.referencepoint'] if refpoi_lalo != 'None': refpoi_lalo = list(tuple(i for i in refpoi_lalo.split(','))) # spatial range in lat/lon format SNWE = inpsdict['mimtpy.horzvert.SNWE'] SNWE = list(tuple(float(i) for i in SNWE.split(','))) # resolve ascending and descending to horz and vert data. azimuth = inpsdict['mimtpy.horzvert.azimuth'] outname = inpsdict['mimtpy.horzvert.outname'] if outname != 'None': outname = list(tuple(i for i in outname.split(','))) if refpoi_lalo != 'None' and azimuth != 'None' and outname != 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--reference_point', refpoi_lalo, '--azimuth', azimuth, '--outname', outname, '--outdir', outdir ] elif refpoi_lalo != 'None' and azimuth != 'None' and outname == 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--reference_point', refpoi_lalo, '--azimuth', azimuth, '--outdir', outdir ] elif refpoi_lalo != 'None' and azimuth == 'None' and outname != 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--reference_point', refpoi_lalo, '--outname', outname, '--outdir', outdir ] elif refpoi_lalo != 'None' and azimuth == 'None' and outname == 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--reference_point', refpoi_lalo, '--outdir', outdir ] elif refpoi_lalo == 'None' and azimuth != 'None' and outname != 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--azimuth', azimuth, '--outname', outname, '--outdir', outdir ] elif refpoi_lalo == 'None' and azimuth != 'None' and outname == 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--azimuth', azimuth, '--outdir', outdir ] elif refpoi_lalo == 'None' and azimuth == 'None' and outname != 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--outname', outname, '--outdir', outdir ] elif refpoi_lalo == 'None' and azimuth == 'None' and outname == 'None': scp_args2 = [ file_asc_data, file_des_data, '--bbox', SNWE, '--outdir', outdir ] scp_args2 = mu.seperate_str_byspace(scp_args2) print('\ngenerate_horzvert.py', scp_args2) mimtpy.generate_horzvert.main(scp_args2.split()) else: print('\nSkip horzvert step') return
def plot(inpsdict): """plot.""" if inpsdict['mimtpy.plot'] == 'yes': print('Start ploting data') plot_type = inpsdict['mimtpy.plot.type'] if plot_type == 'velocity' or plot_type == 'displacement': Dataset = inpsdict['mimtpy.velcumu.DataSet'] Dataset = list(tuple([i for i in Dataset.split(',')])) for dataset in Dataset: # go to dataset_dir dataset_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy')) if not os.path.isdir(dataset_dir): raise Exception( 'Error! No such dir : {}'.format(dataset_dir)) os.chdir(dataset_dir) # go to data to be plotted dir plot_dir = os.path.abspath(os.path.join( dataset_dir, plot_type)) + '/' if not os.path.isdir(plot_dir): raise Exception('Error! No such dir : {}'.format(plot_dir)) print('plotting {} data in {} dir'.format(plot_type, plot_dir)) print('Go to %s.\n' % plot_dir) os.chdir(plot_dir) # plot data Vfiles = [] path_list = os.listdir(plot_dir) for Vfile in path_list: Vfiles.append(Vfile) Vfiles.sort() for Vfile in Vfiles: if Vfile.find(plot_type) >= 0 and Vfile.find('.tiff') > 0: filename = Vfile outfile = filename.split('.')[0] shpdir = inpsdict['mimtpy.plot.shpdir'] if shpdir != 'no': faults = inpsdict['mimtpy.plot.fault'] faults = list(tuple(i for i in faults.split(','))) fcolor = inpsdict['mimtpy.plot.fcolor'] fcolor = list(tuple(i for i in fcolor.split(','))) fstyle = inpsdict['mimtpy.plot.fstyle'] fstyle = list(tuple(i for i in fstyle.split(','))) refpoi = inpsdict['mimtpy.plot.refpoi'] scp_args = [ filename, '--shpdir', shpdir, '--fault', faults, '--fcolor', fcolor, '--fstyle', fstyle, '--refpoi', refpoi, '--outfile', outfile, '--outdir', plot_dir ] else: scp_args = [ filename, '--outfile', outfile, '--outdir', plot_dir ] scp_args = mu.seperate_str_byspace(scp_args) # run plot_geotiff.py print( '\n*********************ploting %s file********************' % Vfile) print('plot_geotiff.py', scp_args) mimtpy.plot_geotiff.main(scp_args.split()) else: print('\nSkip plot process') return
def velcumu(inpsdict): """generate velocity.h5 and velocity.tiff file or generate cumudisp_date1_date2.h5 and cumudisp_date1_date2_tiff.""" if inpsdict['mimtpy.velcumu'] == 'yes': Dataset = inpsdict['mimtpy.velcumu.DataSet'] Dataset = list(tuple([i for i in Dataset.split(',')])) for dataset in Dataset: print( '\n***********************Start processing {} dataset***********************' .format(dataset)) # go to dataset_dir dataset_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy')) if not os.path.isdir(dataset_dir): raise Exception('Error! No such dir : {}'.format(dataset_dir)) os.chdir(dataset_dir) print('\nGo to project dir:', dataset_dir) # create velocity or cumulative dir filetype = inpsdict['mimtpy.velcumu.type'] outdir = os.path.abspath(os.path.join(dataset_dir, filetype)) if not os.path.isdir(outdir): os.makedirs(outdir) print('\nthe output dir for {} is {}.\n'.format(filetype, outdir)) # find the HDFEOS file name HDFEOS_file = mu.find_HDFEOS_fullname(dataset_dir) print('\nThe HDFEOS file is {}'.format(HDFEOS_file)) atr = readfile.read_attribute(HDFEOS_file) # get the startdate and enddate startDate, endDate = mu.find_start_end_date( dataset_dir, inpsdict['mimtpy.velcumu.startDate'], inpsdict['mimtpy.velcumu.endDate']) if startDate == 'None': startDate = atr['START_DATE'] if endDate == 'None': endDate = atr['END_DATE'] # generate parameter list for HDFEOS_to_geotiff.py if inpsdict['mimtpy.velcumu.SNWE'] == 'None': if inpsdict['mimtpy.velcumu.mask'] == 'y': scp_args = [ HDFEOS_file, filetype, '--date', startDate + '_' + endDate, '--mask', '--outdir', outdir ] else: scp_args = [ HDFEOS_file, filetype, '--date', startDate + '_' + endDate, '--outdir', outdir ] else: SNWE = inpsdict['mimtpy.velcumu.SNWE'] SNWE = list(tuple([float(i) for i in SNWE.split(',')])) if inpsdict['mimtpy.velcumu.mask'] == 'y': scp_args = [ HDFEOS_file, filetype, '--date', startDate + '_' + endDate, '--mask', '--bbox', SNWE, '--outdir', outdir ] else: scp_args = [ HDFEOS_file, filetype, '--date', startDate + '_' + endDate, '--bbox', SNWE, '--outdir', outdir ] scp_args = mu.seperate_str_byspace(scp_args) # run HDFEOS_to_geotiff.py print('HDFEOS_to_geotiff.py', scp_args) mimtpy.HDFEOS_to_geotiff.main(scp_args.split()) else: print('\nSkip velcumu process') return
def multitrack_run_software(inpsdict, folders, inps): """run save_geodmod/gbis for each track""" for project in folders: os.chdir("".join( [os.getenv('SCRATCHDIR') + '/' + project + '/mintpy/'])) if inpsdict['DataType'] == 'HDFEOS': datafile = multitrack_utilities.find_HDFEOS_fullname("".join( [os.getenv('SCRATCHDIR') + '/' + project + '/mintpy/'])) elif inpsdict['DataType'] == 'timeseries': datafile = multitrack_utilities.find_timeseries("".join( [os.getenv('SCRATCHDIR') + '/' + project + '/mintpy/'])) elif inpsdict['DataType'] == 'ifgramStack': datafile = "".join([str(inpsdict['DataType']) + '.h5']) elif inpsdict['DataType'] == 'velocity': datafile = "".join([str(inpsdict['DataType']) + '.h5']) if inps.outdir == os.getenv('SCRATCHDIR'): inpsdict['outdir'] = inps.outdir + '/' + project + '/mintpy' else: inpsdict['outdir'] = inps.outdir + '/' + project if inps.ModelSoftware == 'geodmod': print( multitrack_utilities.seperate_str_byspace([ 'save_geodmod.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-outdir', inpsdict['outdir'] ])) completion_status = os.system( multitrack_utilities.seperate_str_byspace([ 'save_geodmod.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-outdir', inpsdict['outdir'] ])) if completion_status == 1: print('error when runing save_geodmod.py') exit(0) elif inps.ModelSoftware == 'gbis': if inpsdict['ref_lalo'][0] == 'None': if inpsdict['mask_file'] == 'None': print('here!') print( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-outdir', inpsdict['outdir'] ])) completion_status = os.system( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-outdir', inpsdict['outdir'] ])) if completion_status == 1: raise Exception('error when runing save_gbis.py') else: print( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-m', inpsdict['mask_file'], '-outdir', inpsdict['outdir'] ])) completion_status = os.system( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-m', inpsdict['mask_file'], '-outdir', inpsdict['outdir'] ])) if completion_status == 1: raise Exception('error when runing save_gbis.py') else: if inpsdict['mask_file'] == 'None': print( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '--ref-lalo', inpsdict['ref_lalo'], '-outdir', inpsdict['outdir'] ])) completion_status = os.system( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '--ref-lalo', inpsdict['ref_lalo'], '-outdir', inpsdict['outdir'] ])) if completion_status == 1: raise Exception('error when runing save_gbis.py') else: print( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-m', inpsdict['mask_file'], '--ref-lalo', inpsdict['ref_lalo'], '-outdir', inpsdict['outdir'] ])) completion_status = os.system( multitrack_utilities.seperate_str_byspace([ 'save_gbis_mimt.py', datafile, '-b', inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s', inpsdict['startDate'], '-e', inpsdict['endDate'], '-m', inpsdict['mask_file'], '--ref-lalo', inpsdict['ref_lalo'], '-outdir', inpsdict['outdir'] ])) if completion_status == 1: raise Exception('error when runing save_gbis.py')
def plot(inpsdict): """plot.""" if inpsdict['mimtpy.plot'] == 'yes': print('Start ploting data') plot_type = inpsdict['mimtpy.plot.type'] if plot_type == 'velocity' or plot_type == 'displacement': Dataset = inpsdict['mimtpy.velcumu.DataSet'] Dataset = list(tuple([i for i in Dataset.split(',')])) for dataset in Dataset: # go to dataset_dir dataset_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy')) if not os.path.isdir(dataset_dir): raise Exception( 'Error! No such dir : {}'.format(dataset_dir)) os.chdir(dataset_dir) # go to data to be plotted dir plot_dir = os.path.abspath(os.path.join( dataset_dir, plot_type)) + '/' if not os.path.isdir(plot_dir): raise Exception('Error! No such dir : {}'.format(plot_dir)) print('plotting {} data in {} dir'.format(plot_type, plot_dir)) #elif plot_type == 'horzvert': # plot_dir = inpsdict['mimtpy.horzvert.outdir'] #elif plot_type == 'coneatenation': # plot_dir = inpsdict['mimtpy.coneatenation.outdir'] print('Go to %s.\n' % plot_dir) os.chdir(plot_dir) # plot data Vfiles = [] path_list = os.listdir(plot_dir) for Vfile in path_list: Vfiles.append(Vfile) Vfiles.sort() for Vfile in Vfiles: if Vfile.find(plot_type) >= 0 and Vfile.find('.tiff') > 0: filename = Vfile fault = inpsdict['mimtpy.plot.fault'] refpoi = inpsdict['mimtpy.plot.refpoi'] vlim = inpsdict['mimtpy.plot.vlim'] outfile = filename.split('.')[0] if vlim == 'None': scp_args = [ filename, '--fault', fault, '--refpoi', refpoi, '--outfile', outfile, '--outdir', plot_dir ] else: vlim = list( tuple([float(i) for i in vlim.split(',')])) scp_args = [ filename, '--fault', fault, '--refpoi', refpoi, '--vlim', vlim, '--outfile', outfile, '--outdir', plot_dir ] scp_args = mu.seperate_str_byspace(scp_args) # run plot_geotiff.py print( '\n*********************ploting %s file********************' % Vfile) print('plot_geotiff.py', scp_args) mimtpy.plot_geotiff.main(scp_args.split()) else: print('\nSkip plot process') return
def concatenation(inpsdict): """concatenation adjencant tracks.""" if inpsdict['mimtpy.concatenation'] == 'yes': Dataset = inpsdict['mimtpy.concatenation.DataSet'] Dataset = list(tuple([i for i in Dataset.split(',')])) project_master = Dataset[0] promaster_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), project_master, 'mintpy')) if not os.path.isdir(promaster_dir): raise Exception('Error! No such dir : {}'.format(promaster_dir)) project_slave = Dataset[1] proslave_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), project_slave, 'mintpy')) if not os.path.isdir(proslave_dir): raise Exception('Error! No such dir : {}'.format(proslave_dir)) # create workdir workdir = inpsdict['mimtpy.concatenation.outdir'] if not os.path.isdir(workdir): os.makedirs(workdir) print('\nthe work dir is {}.\n'.format(workdir)) # run track_offset.py # file type files = inpsdict['mimtpy.concatenation.dataname'] files = list(tuple([i for i in files.split(',')])) file_master = files[0] file_slave = files[1] file_type = file_master.split('_')[0] # out put dir outdir = os.path.abspath(os.path.join(workdir, file_type)) + '/' if not os.path.isdir(outdir): os.makedirs(outdir) print('the output dir is %s .\n' % outdir) #track_offset.py option rewrite_opt = inpsdict['mimtpy.concatenation.rewrite'] mosaic_opt = inpsdict['mimtpy.concatenation.mosaic'] # file_dir fmaster_dir = os.path.abspath(os.path.join(promaster_dir, file_type)) + '/' if not os.path.isdir(fmaster_dir): raise Exception('Error! No such dir : {}'.format(fmaster_dir)) fslave_dir = os.path.abspath(os.path.join(proslave_dir, file_type)) + '/' if not os.path.isdir(fslave_dir): raise Exception('Error! No such dir : {}'.format(fslave_dir)) # master and slave data name Dmaster = fmaster_dir + file_master + '.h5' Dslave = fslave_dir + file_slave + '.h5' # mosaic file name if inpsdict['mimtpy.concatenation.outname'] != 'None': outname = inpsdict['mimtpy.concatenation.outname'] else: outname = file_master + '_mosaic' if rewrite_opt == 'y': if mosaic_opt == 'y': scp_args = [ Dmaster, Dslave, '--rewrite_slave', '--mosaic', '--output', outname, '--outdir', outdir ] elif mosaic_opt == 'n': scp_args = [ Dmaster, Dslave, '--rewrite_slave', '--output', outname, '--outdir', outdir ] elif rewrite_opt == 'n': if mosaic_opt == 'y': scp_args = [ Dmaster, Dslave, '--mosaic', '--output', outname, '--outdir', outdir ] elif mosaic_opt == 'n': scp_args = [ Dmaster, Dslave, '--output', outname, '--outdir', outdir ] scp_args = mu.seperate_str_byspace(scp_args) # run track_offset.py print('track_offset.py', scp_args) mimtpy.track_offset.main(scp_args.split()) # run H5UNW_to_geotiff.py # mosaic data Dmosaic = outdir + outname + '.h5' scp_args2 = [ Dmosaic, '--outdir', outdir, '--output', outname + '.tiff' ] scp_args2 = mu.seperate_str_byspace(scp_args2) print('\nH5UNW_to_geotiff.py', scp_args2) mimtpy.H5UNW_to_geotiff.main(scp_args2.split()) else: print('\nSkip concatenation process') return
def horzvert(inpsdict): """generate horzontal and vertical files.""" if inpsdict['mimtpy.horzvert'] == 'yes': Dataset = inpsdict['mimtpy.horzvert.DataSet'] Dataset = list(tuple([i for i in Dataset.split(',')])) asc_data = Dataset[0] asc_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), asc_data, 'mintpy')) if not os.path.isdir(asc_dir): raise Exception('Error! No such dir : {}'.format(asc_dir)) des_data = Dataset[1] des_dir = os.path.abspath( os.path.join(os.getenv('SCRATCHDIR'), des_data, 'mintpy')) if not os.path.isdir(des_dir): raise Exception('Error! No such dir : {}'.format(des_dir)) # create workdir workdir = inpsdict['mimtpy.horzvert.outdir'] print('\nthe work dir is {}.\n '.format(workdir)) files = inpsdict['mimtpy.horzvert.dataname'] files = list(tuple([i for i in files.split(',')])) file_asc = files[0] file_des = files[1] file_type = file_asc.split('_')[0] # out put dir outdir = os.path.abspath(os.path.join(workdir, file_type)) + '/' if not os.path.isdir(outdir): os.makedirs(outdir) print('\nthe output dir is %s .\n' % outdir) # get the input ascending and descending dir+name file_asc_data = asc_dir + '/' + file_type + '/' + file_asc + '.h5' file_des_data = des_dir + '/' + file_type + '/' + file_des + '.h5' # judge whether we should change the reference point refpoi_lalo = inpsdict['mimtpy.horzvert.referencepoint'] if refpoi_lalo != 'None': refpoi_lalo = list(tuple(float(i) for i in refpoi_lalo.split(','))) refpoi_lat = refpoi_lalo[0] refpoi_lon = refpoi_lalo[1] print('\nchanging ascending and descending data reference point') # change ascending data refpoi completion_status = os.system( mu.seperate_str_byspace([ 'reference_point.py', file_asc_data, '-l', refpoi_lat, '-L', refpoi_lon ])) if completion_status == 1: raise Exception('error when runing reference_point.py for %s' % file_asc_data) asc_data, asc_atr = readfile.read(file_asc_data) asc_atr['REF_LAT'] = refpoi_lat asc_atr['REF_LON'] = refpoi_lon writefile.write(asc_data, out_file=file_asc_data, metadata=asc_atr) # change descending data refpoi completion_status = os.system( mu.seperate_str_byspace([ 'reference_point.py', file_des_data, '-l', refpoi_lat, '-L', refpoi_lon ])) if completion_status == 1: raise Exception('error when runing reference_point.py for %s' % file_des_data) des_data, des_atr = readfile.read(file_des_data) des_atr['REF_LAT'] = refpoi_lat des_atr['REF_LON'] = refpoi_lon writefile.write(des_data, out_file=file_des_data, metadata=des_atr) print('\ngo to the output dir {}'.format(outdir)) os.chdir(outdir) # spatial range in lat/lon format SNWE = inpsdict['mimtpy.horzvert.SNWE'] SNWE = list(tuple(float(i) for i in SNWE.split(','))) # subset ascending and descending to the same spatial region print('\nsubset ascending data') sub_file_asc = 'subset_' + file_asc + '.h5' file_asc_data = asc_dir + '/' + file_type + '/' + file_asc + '.h5' print( mu.seperate_str_byspace([ 'subset.py', file_asc_data, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_asc ])) completion_status = os.system( mu.seperate_str_byspace([ 'subset.py', file_asc_data, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_asc ])) if completion_status == 1: raise Exception('error when subset ascending data!') print('\nsubset descending data') sub_file_des = 'subset_' + file_des + '.h5' file_des_data = des_dir + '/' + file_type + '/' + file_des + '.h5' print( mu.seperate_str_byspace([ 'subset.py', file_des_data, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_des ])) completion_status = os.system( mu.seperate_str_byspace([ 'subset.py', file_des_data, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o', sub_file_des ])) if completion_status == 1: raise Exception('error when subset descending data!') # resolve ascending and descending to horz and vert data. azimuth = inpsdict['mimtpy.horzvert.azimuth'] outname = inpsdict['mimtpy.horzvert.outname'] if outname == 'None': horz_name = file_type + '_horz.h5' vert_name = file_type + '_vert.h5' else: outname = list(tuple(i for i in outname.split(','))) horz_name = file_type + outname[0] vert_name = file_type + outname[1] if azimuth == 'None': print( mu.seperate_str_byspace([ 'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '-o', horz_name, vert_name ])) completion_status = os.system( mu.seperate_str_byspace([ 'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '-o', horz_name, vert_name ])) if completion_status == 1: raise Exception('error when running asc_desc2horz_vert.py!') else: print( os.system( mu.seperate_str_byspace([ 'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '--az', azimuth, '-o', horz_name, vert_name ]))) completion_status = os.system( mu.seperate_str_byspace([ 'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '--az', azimuth, '-o', horz_name, vert_name ])) if completion_status == 1: raise Exception('error when running asc_desc2horz_vert.py!') # run H5UNW_to_geotiff.py # horizontal data scp_args2 = [ horz_name, '--outdir', outdir, '--output', horz_name.split('.')[0] + '.tiff' ] scp_args2 = mu.seperate_str_byspace(scp_args2) print('\nH5UNW_to_geotiff.py', scp_args2) mimtpy.H5UNW_to_geotiff.main(scp_args2.split()) # vertical data scp_args2 = [ vert_name, '--outdir', outdir, '--output', vert_name.split('.')[0] + '.tiff' ] scp_args2 = mu.seperate_str_byspace(scp_args2) print('\nH5UNW_to_geotiff.py', scp_args2) mimtpy.H5UNW_to_geotiff.main(scp_args2.split()) else: print('\nSkip horzvert step') return
def process_ifgramStack(inps): """process ifgramStack.h5 file""" if os.path.exists("".join(inps.outdir)) == False: os.makedirs("".join(inps.outdir)) # dem file demname = 'geometryRadar.h5' if not os.path.isfile(demname): demname_f = './inputs/geometryRadar.h5' else: demname_f = 'geometryRadar.h5' cmd_args = [ demname_f, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(inps.outdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) #ifgramStack file atr_asc = ['./inputs/' + inps.file] cmd_args = [ atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep, '--outdir', "".join(inps.outdir) ] print("geocode.py", cmd_args) args_str = multitrack_utilities.seperate_str_byspace(cmd_args) mintpy.geocode.main(args_str.split()) #save dataset of unw cor and dem os.chdir("".join(inps.outdir)) filename, extension = multitrack_utilities.seprate_filename_extension( "".join(atr_asc))[1:3] cmd_args = [ 'geo_' + filename + extension, "".join(['unwrapPhase-', inps.startDate, '_', inps.endDate]) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) cmd_args = [ 'geo_' + filename + extension, "".join(['coherence-', inps.startDate, '_', inps.endDate]) ] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) completion_status = os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) cmd_args = ['geo_geometryRadar.h5', 'height', '-o', 'srtm.dem'] print("save_roipac.py", cmd_args) asct_str = multitrack_utilities.seperate_str_byspace(cmd_args) os.system( multitrack_utilities.seperate_str_byspace( ['save_roipac.py', asct_str.split()])) multitrack_utilities.delete_tmpgeo(inps.outdir, 'geo_', '.h5')