Stack: adjust indentation

LT1AB
Zhang Yunjun 2020-04-28 16:10:01 -07:00 committed by piyushrpt
parent 34fb0b66fa
commit d494ae3924
1 changed files with 265 additions and 236 deletions

View File

@ -12,27 +12,28 @@ import isce
import isceobj
from mroipac.baseline.Baseline import Baseline
filtStrength = '0.8'
noMCF = 'False'
defoMax = '2'
maxNodes = 72
class config(object):
"""
A class representing the config file
"""
def __init__(self, outname):
self.f= open(outname,'w')
self.f.write('[Common]'+'\n')
self.f.write('')
self.f.write('##########################'+'\n')
self.f= open(outname,'w')
self.f.write('[Common]'+'\n')
self.f.write('')
self.f.write('##########################'+'\n')
def configure(self,inps):
for k in inps.__dict__.keys():
setattr(self, k, inps.__dict__[k])
self.plot = 'False'
self.misreg = None
for k in inps.__dict__.keys():
setattr(self, k, inps.__dict__[k])
self.plot = 'False'
self.misreg = None
def cropFrame(self, function):
self.f.write('##########################'+'\n')
@ -112,7 +113,7 @@ class config(object):
self.f.write('coreg : ' + self.coregSlaveSlc +'\n')
self.f.write('offsets : ' + self.offsetDir +'\n')
if self.misreg:
self.f.write('poly : ' + self.misreg + '\n')
self.f.write('poly : ' + self.misreg + '\n')
self.f.write('##########################'+'\n')
def resampleSlc_subband(self, function):
@ -124,7 +125,7 @@ class config(object):
self.f.write('coreg : ' + self.coregSlaveSlc +'\n')
self.f.write('offsets : ' + self.offsetDir +'\n')
if self.misreg:
self.f.write('poly : ' + self.misreg + '\n')
self.f.write('poly : ' + self.misreg + '\n')
self.f.write('##########################'+'\n')
def baselineGrid(self, function):
@ -223,9 +224,9 @@ class config(object):
self.f.write('outDir : ' + self.outDir + '\n')
self.f.write('shelve : ' + self.shelve + '\n')
if self.fL and self.fH and self.bandWidth:
self.f.write('dcL : ' + self.fL + '\n')
self.f.write('dcH : ' + self.fH + '\n')
self.f.write('bw : ' + self.bandWidth + '\n')
self.f.write('dcL : ' + self.fL + '\n')
self.f.write('dcH : ' + self.fH + '\n')
self.f.write('bw : ' + self.bandWidth + '\n')
self.f.write('##########################'+'\n')
def estimateDispersive(self, function):
@ -257,23 +258,23 @@ class config(object):
def get_dates(inps):
dirs = glob.glob(inps.slcDir+'/*')
acuisitionDates = []
for dir in dirs:
expectedRaw = os.path.join(dir,os.path.basename(dir) + '.slc')
if os.path.exists(expectedRaw):
acuisitionDates.append(os.path.basename(dir))
acuisitionDates.sort()
print (dirs)
print (acuisitionDates)
if inps.masterDate not in acuisitionDates:
print ('master date was not found. The first acquisition will be considered as the stack master date.')
if inps.masterDate is None or inps.masterDate not in acuisitionDates:
inps.masterDate = acuisitionDates[0]
slaveDates = acuisitionDates.copy()
slaveDates.remove(inps.masterDate)
return acuisitionDates, inps.masterDate, slaveDates
dirs = glob.glob(inps.slcDir+'/*')
acuisitionDates = []
for dir in dirs:
expectedRaw = os.path.join(dir,os.path.basename(dir) + '.slc')
if os.path.exists(expectedRaw):
acuisitionDates.append(os.path.basename(dir))
acuisitionDates.sort()
print (dirs)
print (acuisitionDates)
if inps.masterDate not in acuisitionDates:
print ('master date was not found. The first acquisition will be considered as the stack master date.')
if inps.masterDate is None or inps.masterDate not in acuisitionDates:
inps.masterDate = acuisitionDates[0]
slaveDates = acuisitionDates.copy()
slaveDates.remove(inps.masterDate)
return acuisitionDates, inps.masterDate, slaveDates
class run(object):
"""
@ -299,7 +300,6 @@ class run(object):
else:
self.raw_string = ''
# folder structures
self.stack_folder = inps.stack_folder
selfdense_offsets_folder = inps.dense_offsets_folder
@ -308,16 +308,16 @@ class run(object):
def crop(self, acquisitionDates, config_prefix, native=True, israw=True):
for d in acquisitionDates:
configName = os.path.join(self.configDir, config_prefix + d)
configObj = config(configName)
configObj.configure(self)
configObj.inputDir = os.path.join(self.fullFrameSlcDir, d)
configObj.cropOutputDir = os.path.join(self.slcDir, d)
configObj.bbox = self.bbox
configObj.nativeDoppler = native
configObj.israw = israw
configObj.cropFrame('[Function-1]')
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir, config_prefix + d)
configObj = config(configName)
configObj.configure(self)
configObj.inputDir = os.path.join(self.fullFrameSlcDir, d)
configObj.cropOutputDir = os.path.join(self.slcDir, d)
configObj.bbox = self.bbox
configObj.nativeDoppler = native
configObj.israw = israw
configObj.cropFrame('[Function-1]')
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def master_focus_split_geometry(self, stackMaster, config_prefix, split=False, focus=True, native=True):
"""focusing master and producing geometry files"""
@ -357,115 +357,121 @@ class run(object):
def slaves_focus_split(self, slaveDates, config_prefix, split=False, focus=True, native=True):
for slave in slaveDates:
configName = os.path.join(self.configDir, config_prefix + '_'+slave)
configObj = config(configName)
configObj.configure(self)
configObj.slcDir = os.path.join(self.slcDir,slave)
counter=1
if focus:
configObj.focus('[Function-{0}]'.format(counter))
counter += 1
if split:
configObj.slc = os.path.join(configObj.slcDir,slave + self.raw_string + '.slc')
configObj.outDir = configObj.slcDir
configObj.shelve = os.path.join(configObj.slcDir, 'data')
configObj.splitRangeSpectrum('[Function-{0}]'.format(counter))
configObj.finalize()
del configObj
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir, config_prefix + '_'+slave)
configObj = config(configName)
configObj.configure(self)
configObj.slcDir = os.path.join(self.slcDir,slave)
counter=1
if focus:
configObj.focus('[Function-{0}]'.format(counter))
counter += 1
if split:
configObj.slc = os.path.join(configObj.slcDir,slave + self.raw_string + '.slc')
configObj.outDir = configObj.slcDir
configObj.shelve = os.path.join(configObj.slcDir, 'data')
configObj.splitRangeSpectrum('[Function-{0}]'.format(counter))
configObj.finalize()
del configObj
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def slaves_geo2rdr_resampleSlc(self, stackMaster, slaveDates, config_prefix, native=True):
for slave in slaveDates:
configName = os.path.join(self.configDir,config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.masterSlc = os.path.join(self.slcDir, stackMaster)
configObj.slaveSlc = os.path.join(self.slcDir, slave)
configObj.geometryDir = os.path.join(self.workDir, self.stack_folder,'geom_master')
configObj.offsetDir = os.path.join(self.workDir, 'offsets',slave)
configObj.nativeDoppler = native
configObj.geo2rdr('[Function-1]')
configObj.coregSlaveSlc = os.path.join(self.workDir, 'coregSLC','Coarse',slave)
configObj.resampleSlc('[Function-2]')
configObj.finalize()
del configObj
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir,config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.masterSlc = os.path.join(self.slcDir, stackMaster)
configObj.slaveSlc = os.path.join(self.slcDir, slave)
configObj.geometryDir = os.path.join(self.workDir, self.stack_folder,'geom_master')
configObj.offsetDir = os.path.join(self.workDir, 'offsets',slave)
configObj.nativeDoppler = native
configObj.geo2rdr('[Function-1]')
configObj.coregSlaveSlc = os.path.join(self.workDir, 'coregSLC','Coarse',slave)
configObj.resampleSlc('[Function-2]')
configObj.finalize()
del configObj
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def refineSlaveTiming_singleMaster(self, stackMaster, slaveDates, config_prefix):
for slave in slaveDates:
configName = os.path.join(self.configDir,config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.masterSlc = os.path.join(self.slcDir, stackMaster,stackMaster+self.raw_string+'.slc')
configObj.slaveSlc = os.path.join(self.workDir, 'coregSLC','Coarse', slave,slave +'.slc')
configObj.masterMetaData = os.path.join(self.slcDir, stackMaster)
configObj.slaveMetaData = os.path.join(self.slcDir, slave)
configObj.outfile = os.path.join(self.workDir, 'offsets', slave ,'misreg')
configObj.refineSlaveTiming('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir,config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.masterSlc = os.path.join(self.slcDir, stackMaster,stackMaster+self.raw_string+'.slc')
configObj.slaveSlc = os.path.join(self.workDir, 'coregSLC','Coarse', slave,slave +'.slc')
configObj.masterMetaData = os.path.join(self.slcDir, stackMaster)
configObj.slaveMetaData = os.path.join(self.slcDir, slave)
configObj.outfile = os.path.join(self.workDir, 'offsets', slave ,'misreg')
configObj.refineSlaveTiming('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def refineSlaveTiming_Network(self, pairs, stackMaster, slaveDates, config_prefix):
for pair in pairs:
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
if pair[0] == stackMaster:
configObj.masterSlc = os.path.join(self.slcDir,stackMaster,stackMaster+self.raw_string+'.slc')
else:
configObj.masterSlc = os.path.join(self.workDir, 'coregSLC','Coarse', pair[0] , pair[0] + '.slc')
if pair[1] == stackMaster:
configObj.slaveSlc = os.path.join(self.slcDir,stackMaster, stackMaster+self.raw_string+'.slc')
else:
configObj.slaveSlc = os.path.join(self.workDir, 'coregSLC','Coarse', pair[1], pair[1] + '.slc')
configObj.masterMetaData = os.path.join(self.slcDir, pair[0])
configObj.slaveMetaData = os.path.join(self.slcDir, pair[1])
configObj.outfile = os.path.join(self.workDir, 'refineSlaveTiming','pairs', pair[0] + '_' + pair[1] ,'misreg')
configObj.refineSlaveTiming('[Function-1]')
configObj.finalize()
del configObj
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
if pair[0] == stackMaster:
configObj.masterSlc = os.path.join(self.slcDir,stackMaster,stackMaster+self.raw_string+'.slc')
else:
configObj.masterSlc = os.path.join(self.workDir, 'coregSLC','Coarse', pair[0] , pair[0] + '.slc')
if pair[1] == stackMaster:
configObj.slaveSlc = os.path.join(self.slcDir,stackMaster, stackMaster+self.raw_string+'.slc')
else:
configObj.slaveSlc = os.path.join(self.workDir, 'coregSLC','Coarse', pair[1], pair[1] + '.slc')
configObj.masterMetaData = os.path.join(self.slcDir, pair[0])
configObj.slaveMetaData = os.path.join(self.slcDir, pair[1])
configObj.outfile = os.path.join(self.workDir, 'refineSlaveTiming','pairs', pair[0] + '_' + pair[1] ,'misreg')
configObj.refineSlaveTiming('[Function-1]')
configObj.finalize()
del configObj
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def denseOffsets_Network(self, pairs, stackMaster, slaveDates, config_prefix):
for pair in pairs:
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
if pair[0] == stackMaster:
configObj.masterSlc = os.path.join(self.slcDir,
stackMaster,
stackMaster+self.raw_string + '.slc')
else:
configObj.masterSlc = os.path.join(self.workDir,
self.stack_folder,
'SLC',
pair[0],
pair[0] + '.slc')
if pair[1] == stackMaster:
configObj.slaveSlc = os.path.join(self.slcDir,
stackMaster,
stackMaster+self.raw_string+'.slc')
else:
configObj.slaveSlc = os.path.join(self.workDir,
self.stack_folder,
'SLC',
pair[1],
pair[1] + '.slc')
configObj.outfile = os.path.join(self.workDir,
self.dense_offsets_folder,
'pairs',
pair[0] + '_' + pair[1],
pair[0] + '_' + pair[1])
if pair[0] == stackMaster:
configObj.masterSlc = os.path.join(self.slcDir,stackMaster , stackMaster+self.raw_string + '.slc')
else:
configObj.masterSlc = os.path.join(self.workDir, self.stack_folder, 'SLC', pair[0] , pair[0] + '.slc')
if pair[1] == stackMaster:
configObj.slaveSlc = os.path.join(self.slcDir,stackMaster, stackMaster+self.raw_string+'.slc')
else:
configObj.slaveSlc = os.path.join(self.workDir, self.stack_folder,'SLC', pair[1] , pair[1] + '.slc')
configObj.outfile = os.path.join(self.workDir, self.dense_offsets_folder,'pairs', pair[0] + '_' + pair[1] , pair[0] + '_' + pair[1])
configObj.denseOffsets('[Function-1]')
configObj.denseOffset = configObj.outfile + '.bil'
configObj.snr = configObj.outfile + '_snr.bil'
configObj.outDir = os.path.join(self.workDir, self.dense_offsets_folder,'pairs' , pair[0] + '_' + pair[1])
configObj.filterOffsets('[Function-2]')
configObj.finalize()
del configObj
self.runf.write(self.text_cmd + 'stripmapWrapper.py -c '+ configName+'\n')
configObj.denseOffsets('[Function-1]')
configObj.denseOffset = configObj.outfile + '.bil'
configObj.snr = configObj.outfile + '_snr.bil'
configObj.outDir = os.path.join(self.workDir, self.dense_offsets_folder,'pairs' , pair[0] + '_' + pair[1])
configObj.filterOffsets('[Function-2]')
configObj.finalize()
del configObj
self.runf.write(self.text_cmd + 'stripmapWrapper.py -c '+ configName+'\n')
def invertMisregPoly(self):
@ -474,7 +480,7 @@ class run(object):
dateDirs = os.path.join(self.workDir, 'refineSlaveTiming/dates/')
cmd = self.text_cmd + 'invertMisreg.py -i ' + pairDirs + ' -o ' + dateDirs
self.runf.write(cmd + '\n')
def invertDenseOffsets(self):
@ -486,43 +492,43 @@ class run(object):
def rubbersheet(self, slaveDates, config_prefix):
for slave in slaveDates:
configName = os.path.join(self.configDir, config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.geometry_azimuth_offset = os.path.join(self.workDir, 'offsets' , slave , 'azimuth.off')
configObj.dense_offset = os.path.join(self.workDir,self.dense_offsets_folder,'dates', slave , slave + '.bil')
configObj.snr = os.path.join(self.workDir,self.dense_offsets_folder,'dates' , slave , slave + '_snr.bil')
configObj.output_azimuth_offset = 'azimuth.off'
configObj.output_directory = os.path.join(self.workDir,self.dense_offsets_folder,'dates', slave)
configObj.rubbersheet('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir, config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.geometry_azimuth_offset = os.path.join(self.workDir, 'offsets' , slave , 'azimuth.off')
configObj.dense_offset = os.path.join(self.workDir,self.dense_offsets_folder,'dates', slave , slave + '.bil')
configObj.snr = os.path.join(self.workDir,self.dense_offsets_folder,'dates' , slave , slave + '_snr.bil')
configObj.output_azimuth_offset = 'azimuth.off'
configObj.output_directory = os.path.join(self.workDir,self.dense_offsets_folder,'dates', slave)
configObj.rubbersheet('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def resampleOffset(self, slaveDates, config_prefix):
for slave in slaveDates:
configName = os.path.join(self.configDir, config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.targetFile = os.path.join(self.workDir, 'offsets/'+slave + '/azimuth.off')
configObj.input = os.path.join(self.workDir,self.dense_offsets_folder,'dates',slave , slave + '.bil')
configObj.output = os.path.join(self.workDir,self.dense_offsets_folder,'dates',slave, 'azimuth.off')
configObj.resampleOffset('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir, config_prefix+slave)
configObj = config(configName)
configObj.configure(self)
configObj.targetFile = os.path.join(self.workDir, 'offsets/'+slave + '/azimuth.off')
configObj.input = os.path.join(self.workDir,self.dense_offsets_folder,'dates',slave , slave + '.bil')
configObj.output = os.path.join(self.workDir,self.dense_offsets_folder,'dates',slave, 'azimuth.off')
configObj.resampleOffset('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def replaceOffsets(self, slaveDates):
def replaceOffsets(self, slaveDates):
dateDirs = os.path.join(self.workDir, self.dense_offsets_folder,'dates')
for slave in slaveDates:
geometryOffset = os.path.join(self.workDir, 'offsets', slave , 'azimuth.off')
geometryOnlyOffset = os.path.join(self.workDir, 'offsets' , slave , 'azimuth.off.geometry')
rubberSheeted = os.path.join(self.workDir,self.dense_offsets_folder,'dates' , slave , 'azimuth.off')
cmd = self.text_cmd + 'mv ' + geometryOffset + ' ' + geometryOnlyOffset
cmd = cmd + '; mv ' + rubberSheeted + ' ' + geometryOffset
self.runf.write(cmd + '\n')
geometryOffset = os.path.join(self.workDir, 'offsets', slave , 'azimuth.off')
geometryOnlyOffset = os.path.join(self.workDir, 'offsets' , slave , 'azimuth.off.geometry')
rubberSheeted = os.path.join(self.workDir,self.dense_offsets_folder,'dates' , slave , 'azimuth.off')
cmd = self.text_cmd + 'mv ' + geometryOffset + ' ' + geometryOnlyOffset
cmd = cmd + '; mv ' + rubberSheeted + ' ' + geometryOffset
self.runf.write(cmd + '\n')
def gridBaseline(self, stackMaster, slaveDates, config_prefix, split=False):
@ -546,8 +552,16 @@ class run(object):
def slaves_fine_resampleSlc(self, stackMaster, slaveDates, config_prefix, split=False):
# copy over the master into the final SLC folder as well
self.runf.write(self.text_cmd + ' masterStackCopy.py -i ' + os.path.join(self.slcDir,stackMaster, stackMaster+self.raw_string + '.slc') + ' -o ' + os.path.join(self.workDir, self.stack_folder,'SLC', stackMaster, stackMaster+'.slc' )+ '\n')
self.runf.write(self.text_cmd + ' masterStackCopy.py -i ' +
os.path.join(self.slcDir,
stackMaster,
stackMaster + self.raw_string + '.slc') + ' -o ' +
os.path.join(self.workDir,
self.stack_folder,
'SLC',
stackMaster,
stackMaster+'.slc' )+ '\n')
# now resample each of the slaves to the master geometry
for slave in slaveDates:
configName = os.path.join(self.configDir, config_prefix+slave)
@ -574,62 +588,76 @@ class run(object):
def igrams_network(self, pairs, acuisitionDates, stackMaster,low_or_high, config_prefix):
for pair in pairs:
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
if pair[0] == stackMaster:
configObj.masterSlc = os.path.join(self.slcDir,stackMaster + low_or_high + stackMaster+self.raw_string +'.slc')
else:
configObj.masterSlc = os.path.join(self.workDir, self.stack_folder, 'SLC', pair[0] + low_or_high + pair[0] + '.slc')
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
if pair[0] == stackMaster:
configObj.masterSlc = os.path.join(self.slcDir,
stackMaster + low_or_high + stackMaster+self.raw_string +'.slc')
else:
configObj.masterSlc = os.path.join(self.workDir,
self.stack_folder,
'SLC',
pair[0] + low_or_high + pair[0] + '.slc')
if pair[1] == stackMaster:
configObj.slaveSlc = os.path.join(self.slcDir,
stackMaster + low_or_high + stackMaster+self.raw_string+'.slc')
else:
configObj.slaveSlc = os.path.join(self.workDir,
self.stack_folder,
'SLC',
pair[1] + low_or_high + pair[1] + '.slc')
if pair[1] == stackMaster:
configObj.slaveSlc = os.path.join(self.slcDir,stackMaster + low_or_high + stackMaster+self.raw_string+'.slc')
else:
configObj.slaveSlc = os.path.join(self.workDir, self.stack_folder, 'SLC', pair[1] + low_or_high + pair[1] + '.slc')
configObj.outDir = os.path.join(self.workDir,
'Igrams' + low_or_high + pair[0] + '_' + pair[1],
pair[0] + '_' + pair[1])
configObj.outDir = os.path.join(self.workDir, 'Igrams' + low_or_high +
pair[0] + '_' + pair[1] +'/'+pair[0] + '_' + pair[1])
configObj.generateIgram('[Function-1]')
configObj.generateIgram('[Function-1]')
configObj.igram = configObj.outDir+'.int'
configObj.filtIgram = os.path.dirname(configObj.outDir) + '/filt_' + pair[0] + '_' + pair[1] + '.int'
configObj.coherence = os.path.dirname(configObj.outDir) + '/filt_' + pair[0] + '_' + pair[1] + '.cor'
#configObj.filtStrength = filtStrength
configObj.filterCoherence('[Function-2]')
configObj.igram = configObj.outDir+'.int'
configObj.filtIgram = os.path.dirname(configObj.outDir) + '/filt_' + pair[0] + '_' + pair[1] + '.int'
configObj.coherence = os.path.dirname(configObj.outDir) + '/filt_' + pair[0] + '_' + pair[1] + '.cor'
#configObj.filtStrength = filtStrength
configObj.filterCoherence('[Function-2]')
# skip phase unwrapping if input method == no
if self.unwMethod.lower() != 'no':
configObj.igram = configObj.filtIgram
configObj.unwIfg = os.path.dirname(configObj.outDir) + '/filt_' + pair[0] + '_' + pair[1]
configObj.noMCF = noMCF
configObj.master = os.path.join(self.slcDir,stackMaster +'/data')
configObj.defoMax = defoMax
configObj.unwrap('[Function-3]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
# skip phase unwrapping if input method == no
if self.unwMethod.lower() != 'no':
configObj.igram = configObj.filtIgram
configObj.unwIfg = os.path.dirname(configObj.outDir) + '/filt_' + pair[0] + '_' + pair[1]
configObj.noMCF = noMCF
configObj.master = os.path.join(self.slcDir,stackMaster +'/data')
configObj.defoMax = defoMax
configObj.unwrap('[Function-3]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def dispersive_nonDispersive(self, pairs, acuisitionDates, stackMaster,
lowBand, highBand, config_prefix):
for pair in pairs:
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
configObj.lowBandIgram = os.path.join(self.workDir, 'Igrams' + lowBand + pair[0] + '_' + pair[1] + '/filt_'+pair[0] + '_' + pair[1])
configObj.highBandIgram = os.path.join(self.workDir, 'Igrams' + highBand + pair[0] + '_' + pair[1]
+ '/filt_'+pair[0] + '_' + pair[1])
configObj.lowBandCor = os.path.join(self.workDir, 'Igrams' + lowBand + pair[0] + '_' + pair[1]
+ '/filt_'+pair[0] + '_' + pair[1] + '.cor')
configObj.highBandCor = os.path.join(self.workDir, 'Igrams' + highBand + pair[0] + '_' + pair[1]
+ '/filt_'+pair[0] + '_' + pair[1] + '.cor')
configObj.lowBandShelve = os.path.join(self.slcDir,pair[0] + lowBand + 'data')
configObj.highBandShelve = os.path.join(self.slcDir,pair[0] + highBand + 'data')
configObj.outDir = os.path.join(self.workDir, 'Ionosphere/'+pair[0]+'_'+pair[1])
configObj.estimateDispersive('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
configName = os.path.join(self.configDir,config_prefix + pair[0] + '_' + pair[1])
configObj = config(configName)
configObj.configure(self)
configObj.lowBandIgram = os.path.join(self.workDir,
'Igrams' + lowBand + pair[0] + '_' + pair[1],
'filt_' + pair[0] + '_' + pair[1])
configObj.highBandIgram = os.path.join(self.workDir,
'Igrams' + highBand + pair[0] + '_' + pair[1],
'filt_' + pair[0] + '_' + pair[1])
configObj.lowBandCor = os.path.join(self.workDir,
'Igrams' + lowBand + pair[0] + '_' + pair[1],
'filt_' + pair[0] + '_' + pair[1] + '.cor')
configObj.highBandCor = os.path.join(self.workDir,
'Igrams' + highBand + pair[0] + '_' + pair[1],
'filt_' + pair[0] + '_' + pair[1] + '.cor')
configObj.lowBandShelve = os.path.join(self.slcDir,pair[0] + lowBand + 'data')
configObj.highBandShelve = os.path.join(self.slcDir,pair[0] + highBand + 'data')
configObj.outDir = os.path.join(self.workDir, 'Ionosphere/'+pair[0]+'_'+pair[1])
configObj.estimateDispersive('[Function-1]')
configObj.finalize()
self.runf.write(self.text_cmd+'stripmapWrapper.py -c '+ configName+'\n')
def finalize(self):
self.runf.close()
@ -667,7 +695,6 @@ def baselinePair(baselineDir, master, slave,doBaselines=True):
mFrame = mdb['frame']
sFrame = sdb['frame']
bObj = Baseline()
bObj.configure()
bObj.wireInputPort(name='masterFrame', object=mFrame)
@ -712,15 +739,15 @@ def selectPairs(inps,stackMaster, slaveDates, acuisitionDates,doBaselines=True):
baselineDict, timeDict = baselineStack(inps, stackMaster, acuisitionDates,doBaselines)
for slave in slaveDates:
print (slave,' : ' , baselineDict[slave])
print (slave,' : ' , baselineDict[slave])
numDates = len(acuisitionDates)
pairs = []
for i in range(numDates-1):
for j in range(i+1,numDates):
db = np.abs(baselineDict[acuisitionDates[j]] - baselineDict[acuisitionDates[i]])
dt = np.abs(timeDict[acuisitionDates[j]].days - timeDict[acuisitionDates[i]].days)
if (db < inps.dbThr) and (dt < inps.dtThr):
pairs.append((acuisitionDates[i],acuisitionDates[j]))
for j in range(i+1,numDates):
db = np.abs(baselineDict[acuisitionDates[j]] - baselineDict[acuisitionDates[i]])
dt = np.abs(timeDict[acuisitionDates[j]].days - timeDict[acuisitionDates[i]].days)
if (db < inps.dbThr) and (dt < inps.dtThr):
pairs.append((acuisitionDates[i],acuisitionDates[j]))
plotNetwork(baselineDict, timeDict, pairs,os.path.join(inps.workDir,'pairs.pdf'))
return pairs
@ -738,9 +765,11 @@ def plotNetwork(baselineDict, timeDict, pairs,save_name='pairs.png'):
ax1.cla()
for ni in range(len(pairs)):
# ax1.plot(np.array([timeDict[pairs[ni][0]].days,timeDict[pairs[ni][1]].days]),
ax1.plot([datetime.datetime.strptime(pairs[ni][0],datefmt), datetime.datetime.strptime(pairs[ni][1], datefmt)],
np.array([baselineDict[pairs[ni][0]],baselineDict[pairs[ni][1]]]),
'-ko',lw=1, ms=4, alpha=0.7, mfc='r')
ax1.plot([datetime.datetime.strptime(pairs[ni][0],datefmt),
datetime.datetime.strptime(pairs[ni][1], datefmt)],
np.array([baselineDict[pairs[ni][0]],
baselineDict[pairs[ni][1]]]),
'-ko',lw=1, ms=4, alpha=0.7, mfc='r')
@ -778,19 +807,19 @@ def plotNetwork(baselineDict, timeDict, pairs,save_name='pairs.png'):
def writeJobFile(runFile):
jobName = runFile + ".job"
dirName = os.path.dirname(runFile)
with open(runFile) as ff:
nodes = len(ff.readlines())
if nodes >maxNodes:
nodes = maxNodes
jobName = runFile + ".job"
dirName = os.path.dirname(runFile)
with open(runFile) as ff:
nodes = len(ff.readlines())
if nodes >maxNodes:
nodes = maxNodes
f = open (jobName,'w')
f.write('#!/bin/bash '+ '\n')
f.write('#PBS -N Parallel_GNU'+ '\n')
f.write('#PBS -l nodes=' + str(nodes) + '\n')
f = open (jobName,'w')
f.write('#!/bin/bash '+ '\n')
f.write('#PBS -N Parallel_GNU'+ '\n')
f.write('#PBS -l nodes=' + str(nodes) + '\n')
jobTxt='''#PBS -V
jobTxt='''#PBS -V
#PBS -l walltime=05:00:00
#PBS -q default
@ -815,10 +844,10 @@ echo " "
#
'''
f.write(jobTxt+ '\n')
f.write('parallel --sshloginfile $PBS_NODEFILE -a '+runFile+'\n')
f.write('')
f.close()
f.write(jobTxt+ '\n')
f.write('parallel --sshloginfile $PBS_NODEFILE -a '+runFile+'\n')
f.write('')
f.close()
def main(iargs=None):
@ -826,7 +855,7 @@ def main(iargs=None):
if __name__ == "__main__":
# Main engine
main()
# Main engine
main()