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