diff --git a/contrib/stack/topsStack/FilterAndCoherence.py b/contrib/stack/topsStack/FilterAndCoherence.py index 4e833b2..ed629b6 100755 --- a/contrib/stack/topsStack/FilterAndCoherence.py +++ b/contrib/stack/topsStack/FilterAndCoherence.py @@ -30,10 +30,12 @@ import logging -import isce -import isceobj import argparse import os + +import isce +import isceobj +from isceobj.TopsProc.runBurstIfg import computeCoherence logger = logging.getLogger('isce.tops.runFilter') def runFilter(infile, outfile, filterStrength): @@ -135,7 +137,11 @@ def createParser(): dest='cohfile') parser.add_argument('-s', '--strength', type=float, default=0.5, help='Filter strength', dest='filterstrength') - + parser.add_argument('--slc1', type=str, help="SLC 1", dest='slc1') + parser.add_argument('--slc2', type=str, help="SLC 2", dest='slc2') + parser.add_argument('--cc','--complex_coh',type=str, default='fine.cori.full',help='complex coherence file',dest='cpx_cohfile') + parser.add_argument('-r','--range_looks',type=int, default=9, help= 'range looks', dest='numberRangelooks') + parser.add_argument('-z','--azimuth_looks',type=int, default=3, help= 'azimuth looks', dest='numberAzlooks') return parser def cmdLineParse(iargs=None): @@ -152,7 +158,31 @@ def main(iargs=None): runFilter(inps.infile, inps.filtfile, inps.filterstrength) estCoherence(inps.filtfile, inps.cohfile) + if inps.slc1 and inps.slc2: + computeCoherence(inps.slc1,inps.slc2,inps.cpx_cohfile) + from mroipac.looks.Looks import Looks + print('Multilooking {0} ...'.format(inps.cpx_cohfile)) + + infile=inps.cpx_cohfile + inimg = isceobj.createImage() + inimg.load(infile + '.xml') + + alks=inps.numberAzlooks + rlks=inps.numberRangelooks + + spl = os.path.splitext(inimg.filename) + #ext = '.{0}alks_{1}rlks'.format(alks, rlks) + #outname = spl[0] + ext + spl[1] + outname=spl[0] + lkObj = Looks() + lkObj.setDownLooks(alks) + lkObj.setAcrossLooks(rlks) + lkObj.setInputImage(inimg) + lkObj.setOutputFilename(outname) + lkObj.looks() + fullfilename=inps.cpx_cohfile + ret=os.system('rm '+fullfilename) if __name__ == '__main__': main() diff --git a/contrib/stack/topsStack/Stack.py b/contrib/stack/topsStack/Stack.py index 84965e5..a9e5238 100644 --- a/contrib/stack/topsStack/Stack.py +++ b/contrib/stack/topsStack/Stack.py @@ -205,7 +205,12 @@ class config(object): self.f.write('filt : ' + self.filtName + '\n') self.f.write('coh : ' + self.cohName + '\n') self.f.write('strength : ' + self.filtStrength + '\n') - + self.f.write('slc1 : ' + self.slc1 + '\n') + self.f.write('slc2 : ' + self.slc2 + '\n') + self.f.write('complex_coh : '+ self.cpxcor + '\n') + self.f.write('range_looks : ' + self.rangeLooks + '\n') + self.f.write('azimuth_looks : ' + self.azimuthLooks + '\n') + def unwrap(self, function): self.f.write('###################################'+'\n') self.f.write(function + '\n') @@ -629,12 +634,16 @@ class run(object): master = pair[0] slave = pair[1] mergedDir = os.path.join(self.work_dir, 'merged/interferograms/' + master + '_' + slave) + mergedSLCDir = os.path.join(self.work_dir, 'merged/SLC') configName = os.path.join(self.config_path ,'config_igram_filt_coh_' + master + '_' + slave) configObj = config(configName) configObj.configure(self) configObj.input = os.path.join(mergedDir,'fine.int') configObj.filtName = os.path.join(mergedDir,'filt_fine.int') configObj.cohName = os.path.join(mergedDir,'filt_fine.cor') + configObj.slc1=os.path.join(mergedSLCDir, '{}/{}.slc.full'.format(master, master)) + configObj.slc2=os.path.join(mergedSLCDir, '{}/{}.slc.full'.format(slave, slave)) + configObj.cpxcor=os.path.join(mergedDir,'fine.cor.full') #configObj.filtStrength = str(self.filtStrength) configObj.FilterAndCoherence('[Function-1]') configObj.finalize() diff --git a/contrib/stack/topsStack/stackSentinel.py b/contrib/stack/topsStack/stackSentinel.py index 05a9ce5..8e24db9 100755 --- a/contrib/stack/topsStack/stackSentinel.py +++ b/contrib/stack/topsStack/stackSentinel.py @@ -505,12 +505,14 @@ def slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, upd def correlationStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, pairs, updateStack): ############################# - i = slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, updateStack) + i = slcStack(inps, acquisitionDates,stackMasterDate, slaveDates, safe_dict, updateStack) + i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_merge_master") - runObj.mergeMaster(stackMasterDate, virtual = 'False') + runObj.configure(inps, 'run_' + str(i) + "_merge_master_slave_slc") + runObj.mergeMaster(stackMasterDate, virtual = 'True') + runObj.mergeSlaveSLC(slaveDates, virtual = 'True') runObj.finalize() i+=1 @@ -530,6 +532,13 @@ def interferogramStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe i = slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, updateStack) + i+=1 + runObj = run() + runObj.configure(inps, 'run_' + str(i) + "_merge_master_slave_slc") + runObj.mergeMaster(stackMasterDate, virtual = 'True') + runObj.mergeSlaveSLC(slaveDates, virtual = 'True') + runObj.finalize() + i+=1 runObj = run() runObj.configure(inps, 'run_' + str(i) + "_merge_burst_igram") @@ -548,12 +557,6 @@ def interferogramStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe runObj.unwrap(pairs) runObj.finalize() - i+=1 - runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_merge_master_slave_slc") - runObj.mergeMaster(stackMasterDate, virtual = 'True') - runObj.mergeSlaveSLC(slaveDates, virtual = 'True') - runObj.finalize() def offsetStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, pairs, updateStack):