Added iterative multiplication for interferogram flattening
parent
4631aff062
commit
44cdd7dbf1
|
@ -56,19 +56,14 @@ def compute_FlatEarth(self,width,length):
|
||||||
|
|
||||||
# Open the interferogram
|
# Open the interferogram
|
||||||
ifgFilename= os.path.join(self.insar.ifgDirname, self.insar.ifgFilename)
|
ifgFilename= os.path.join(self.insar.ifgDirname, self.insar.ifgFilename)
|
||||||
ds = gdal.Open(ifgFilename+'.full',gdal.GA_ReadOnly)
|
intf = np.memmap(ifgFilename+'.full',dtype=np.complex64,mode='r+',shape=(length,width))
|
||||||
intf = ds.GetRasterBand(1).ReadAsArray()
|
|
||||||
ds = None
|
|
||||||
|
|
||||||
intf *= np.exp(cJ*fact*rng2)
|
for ll in range(length):
|
||||||
|
intf[ll,:] *= np.exp(cJ*fact*rng2[ll,:])
|
||||||
|
|
||||||
del rng2
|
del rng2
|
||||||
|
del intf
|
||||||
|
|
||||||
# Write the interferogram
|
|
||||||
intf.tofile(ifgFilename+'.full')
|
|
||||||
write_xml(ifgFilename+'.full',width,length,1,"CFLOAT","BIL")
|
|
||||||
|
|
||||||
intf=None
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,7 +198,7 @@ def generateIgram(self,imageSlc1, imageSlc2, resampName, azLooks, rgLooks):
|
||||||
multilook(resampInt+'.full', outname=resampInt, alks=azLooks, rlks=rgLooks) #takeLooks(objAmp,azLooks,rgLooks)
|
multilook(resampInt+'.full', outname=resampInt, alks=azLooks, rlks=rgLooks) #takeLooks(objAmp,azLooks,rgLooks)
|
||||||
multilook(resampAmp+'.full', outname=resampAmp, alks=azLooks, rlks=rgLooks) #takeLooks(objInt,azLooks,rgLooks)
|
multilook(resampAmp+'.full', outname=resampAmp, alks=azLooks, rlks=rgLooks) #takeLooks(objInt,azLooks,rgLooks)
|
||||||
|
|
||||||
os.system('rm ' + resampInt+'.full* ' + resampAmp + '.full* ')
|
#os.system('rm ' + resampInt+'.full* ' + resampAmp + '.full* ')
|
||||||
# End of modification
|
# End of modification
|
||||||
for obj in [objInt, objAmp, objSlc1, objSlc2]:
|
for obj in [objInt, objAmp, objSlc1, objSlc2]:
|
||||||
obj.finalizeImage()
|
obj.finalizeImage()
|
||||||
|
@ -305,15 +300,15 @@ def runFullBandInterferogram(self):
|
||||||
|
|
||||||
|
|
||||||
###Compute coherence
|
###Compute coherence
|
||||||
#cohname = os.path.join(self.insar.ifgDirname, self.insar.correlationFilename)
|
cohname = os.path.join(self.insar.ifgDirname, self.insar.correlationFilename)
|
||||||
#computeCoherence(masterSlc, slaveSlc, cohname+'.full')
|
computeCoherence(masterSlc, slaveSlc, cohname+'.full')
|
||||||
#multilook(cohname+'.full', outname=cohname, alks=azLooks, rlks=rgLooks)
|
multilook(cohname+'.full', outname=cohname, alks=azLooks, rlks=rgLooks)
|
||||||
|
|
||||||
|
|
||||||
###Multilook relevant geometry products
|
##Multilook relevant geometry products
|
||||||
#for fname in [self.insar.latFilename, self.insar.lonFilename, self.insar.losFilename]:
|
for fname in [self.insar.latFilename, self.insar.lonFilename, self.insar.losFilename]:
|
||||||
# inname = os.path.join(self.insar.geometryDirname, fname)
|
inname = os.path.join(self.insar.geometryDirname, fname)
|
||||||
# multilook(inname + '.full', outname= inname, alks=azLooks, rlks=rgLooks)
|
multilook(inname + '.full', outname= inname, alks=azLooks, rlks=rgLooks)
|
||||||
|
|
||||||
def runInterferogram(self, igramSpectrum = "full"):
|
def runInterferogram(self, igramSpectrum = "full"):
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@ import shelve
|
||||||
|
|
||||||
logger = logging.getLogger('isce.insar.runResampleSubbandSlc')
|
logger = logging.getLogger('isce.insar.runResampleSubbandSlc')
|
||||||
|
|
||||||
def resampleSlc(masterFrame, slaveFrame, imageSlc2, radarWavelength, coregDir,
|
# Modified by V. Brancato 10.14.2019 added "self" as input parameter of resampleSLC
|
||||||
|
def resampleSlc(self,masterFrame, slaveFrame, imageSlc2, radarWavelength, coregDir,
|
||||||
azoffname, rgoffname, azpoly = None, rgpoly = None, misreg=False):
|
azoffname, rgoffname, azpoly = None, rgpoly = None, misreg=False):
|
||||||
logger.info("Resampling slave SLC")
|
logger.info("Resampling slave SLC")
|
||||||
|
|
||||||
|
@ -56,8 +57,15 @@ def resampleSlc(masterFrame, slaveFrame, imageSlc2, radarWavelength, coregDir,
|
||||||
width = rngImg.getWidth()
|
width = rngImg.getWidth()
|
||||||
length = rngImg.getLength()
|
length = rngImg.getLength()
|
||||||
|
|
||||||
|
# Modified by V. Brancato on 10.14.2019 (if Rubbersheeting in range is turned on, flatten the interferogram during cross-correlation)
|
||||||
|
if not self.doRubbersheetingRange:
|
||||||
|
print('Rubber sheeting in range is turned off, flattening the interferogram during resampling')
|
||||||
flatten = True
|
flatten = True
|
||||||
|
else:
|
||||||
|
print('Rubber sheeting in range is turned on, flattening the interferogram during interferogram formation')
|
||||||
|
flatten=False
|
||||||
|
# end of Modification
|
||||||
|
|
||||||
rObj.flatten = flatten
|
rObj.flatten = flatten
|
||||||
rObj.outputWidth = width
|
rObj.outputWidth = width
|
||||||
rObj.outputLines = length
|
rObj.outputLines = length
|
||||||
|
@ -105,15 +113,25 @@ def runResampleSubbandSlc(self, misreg=False):
|
||||||
masterFrame = self._insar.loadProduct( self._insar.masterSlcCropProduct)
|
masterFrame = self._insar.loadProduct( self._insar.masterSlcCropProduct)
|
||||||
slaveFrame = self._insar.loadProduct( self._insar.slaveSlcCropProduct)
|
slaveFrame = self._insar.loadProduct( self._insar.slaveSlcCropProduct)
|
||||||
|
|
||||||
if self.doRubbersheeting:
|
# Modified by V. Brancato 10.14.2019
|
||||||
print('Using rubber sheeted offsets for resampling sub-bands')
|
|
||||||
|
if self.doRubbersheetingAzimuth:
|
||||||
|
print('Using rubber in azimuth sheeted offsets for resampling sub-bands')
|
||||||
azoffname = os.path.join( self.insar.offsetsDirname, self.insar.azimuthRubbersheetFilename)
|
azoffname = os.path.join( self.insar.offsetsDirname, self.insar.azimuthRubbersheetFilename)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print('Using refined offsets for resampling sub-bands')
|
print('Using refined offsets for resampling sub-bands')
|
||||||
azoffname = os.path.join( self.insar.offsetsDirname, self.insar.azimuthOffsetFilename)
|
azoffname = os.path.join( self.insar.offsetsDirname, self.insar.azimuthOffsetFilename)
|
||||||
|
|
||||||
|
if self.doRubbersheetingRange:
|
||||||
|
print('Using rubber in range sheeted offsets for resampling sub-bands')
|
||||||
|
rgoffname = os.path.join( self.insar.offsetsDirname, self.insar.rangeRubbersheetFilename)
|
||||||
|
else:
|
||||||
|
print('Using refined offsets for resampling sub-bands')
|
||||||
rgoffname = os.path.join( self.insar.offsetsDirname, self.insar.rangeOffsetFilename)
|
rgoffname = os.path.join( self.insar.offsetsDirname, self.insar.rangeOffsetFilename)
|
||||||
|
# ****************** End of Modification
|
||||||
|
|
||||||
|
# rgoffname = os.path.join( self.insar.offsetsDirname, self.insar.rangeOffsetFilename)
|
||||||
azpoly = self.insar.loadProduct( os.path.join(self.insar.misregDirname, self.insar.misregFilename) + '_az.xml')
|
azpoly = self.insar.loadProduct( os.path.join(self.insar.misregDirname, self.insar.misregFilename) + '_az.xml')
|
||||||
rgpoly = self.insar.loadProduct( os.path.join(self.insar.misregDirname, self.insar.misregFilename) + '_rg.xml')
|
rgpoly = self.insar.loadProduct( os.path.join(self.insar.misregDirname, self.insar.misregFilename) + '_rg.xml')
|
||||||
|
|
||||||
|
@ -124,7 +142,7 @@ def runResampleSubbandSlc(self, misreg=False):
|
||||||
wvlL = self.insar.lowBandRadarWavelength
|
wvlL = self.insar.lowBandRadarWavelength
|
||||||
coregDir = os.path.join(self.insar.coregDirname, self.insar.lowBandSlcDirname)
|
coregDir = os.path.join(self.insar.coregDirname, self.insar.lowBandSlcDirname)
|
||||||
|
|
||||||
lowbandCoregFilename = resampleSlc(masterFrame, slaveFrame, imageSlc2, wvlL, coregDir,
|
lowbandCoregFilename = resampleSlc(self,masterFrame, slaveFrame, imageSlc2, wvlL, coregDir,
|
||||||
azoffname, rgoffname, azpoly=azpoly, rgpoly=rgpoly,misreg=False)
|
azoffname, rgoffname, azpoly=azpoly, rgpoly=rgpoly,misreg=False)
|
||||||
|
|
||||||
imageSlc2 = os.path.join(self.insar.splitSpectrumDirname, self.insar.highBandSlcDirname,
|
imageSlc2 = os.path.join(self.insar.splitSpectrumDirname, self.insar.highBandSlcDirname,
|
||||||
|
@ -132,7 +150,7 @@ def runResampleSubbandSlc(self, misreg=False):
|
||||||
wvlH = self.insar.highBandRadarWavelength
|
wvlH = self.insar.highBandRadarWavelength
|
||||||
coregDir = os.path.join(self.insar.coregDirname, self.insar.highBandSlcDirname)
|
coregDir = os.path.join(self.insar.coregDirname, self.insar.highBandSlcDirname)
|
||||||
|
|
||||||
highbandCoregFilename = resampleSlc(masterFrame, slaveFrame, imageSlc2, wvlH, coregDir,
|
highbandCoregFilename = resampleSlc(self,masterFrame, slaveFrame, imageSlc2, wvlH, coregDir,
|
||||||
azoffname, rgoffname, azpoly=azpoly, rgpoly=rgpoly, misreg=False)
|
azoffname, rgoffname, azpoly=azpoly, rgpoly=rgpoly, misreg=False)
|
||||||
|
|
||||||
self.insar.lowBandSlc2 = lowbandCoregFilename
|
self.insar.lowBandSlc2 = lowbandCoregFilename
|
||||||
|
|
Loading…
Reference in New Issue