Added computation of non-filtered correlation

LT1AB
Yujie Zheng 2020-02-28 13:49:13 -08:00
parent f864b582a4
commit e95311da68
3 changed files with 55 additions and 13 deletions

View File

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

View File

@ -205,6 +205,11 @@ 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')
@ -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()

View File

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