def unwrap(self): icuObj = Icu() icuObj.filteringFlag = False ##insarApp.py already filters it icuObj.initCorrThreshold = 0.1 icuObj.icu(intImage=self.intImage, ampImage=self.ampImage, unwImage = self.unwImage) self.ampImage.finalizeImage() self.intImage.finalizeImage() self.unwImage.renderHdr() self.unwImage.finalizeImage()
def runUnwrapIcu(infile, outfile): from mroipac.icu.Icu import Icu #Setup images #ampImage # ampImage = obj.insar.resampAmpImage.copy(access_mode='read') # width = self.ampImage.getWidth() img = isceobj.createImage() img.load(infile + '.xml') width = img.getWidth() #intImage intImage = isceobj.createIntImage() intImage.initImage(infile, 'read', width) intImage.createImage() #unwImage unwImage = isceobj.Image.createImage() unwImage.setFilename(outfile) unwImage.setWidth(width) unwImage.imageType = 'unw' unwImage.bands = 2 unwImage.scheme = 'BIL' unwImage.dataType = 'FLOAT' unwImage.setAccessMode('write') unwImage.createImage() #unwrap with icu icuObj = Icu() icuObj.filteringFlag = False icuObj.useAmplitudeFlag = False icuObj.singlePatch = True icuObj.initCorrThreshold = 0.1 icuObj.icu(intImage=intImage, unwImage = unwImage) #ampImage.finalizeImage() intImage.finalizeImage() unwImage.finalizeImage() unwImage.renderHdr()
def estPhaseSigma(insar): from mroipac.icu.Icu import Icu intImage = isceobj.createSlcImage() #Filtered file intImage.setWidth(insar.resampIntImage.width) intImage.setFilename(insar.topophaseFlatFilename) intImage.setAccessMode('read') ampImage = isceobj.createAmpImage() ampImage.setWidth(insar.resampIntImage.width) ampImage.setFilename('resampOnlyImage.amp') ampImage.setAccessMode('read') outImage = isceobj.createRgImage() outImage.imageType = 'cor' outImage.scheme = 'BIL' outImage.bands = 1 outImage.setWidth(insar.resampIntImage.width) outImage.setFilename('phsig.cor') outImage.setAccessMode('write') intImage.createImage() ampImage.createImage() outImage.createImage() icuObj = Icu() icuObj.filteringFlag = False icuObj.unwrappingFlag = False icuObj.initCorrThreshold = 0.1 icuObj.icu(intImage=intImage, ampImage=ampImage, phsigImage=outImage) outImage.renderHdr() intImage.finalizeImage() ampImage.finalizeImage() outImage.finalizeImage()
def run(resampAmpImage, widthInt, infos, catalog=None, sceneid='NO_ID'): logger.info("Applying power-spectral filter: %s" % sceneid) # Initialize the flattened interferogram topoflatIntFilename = infos['outputPath'] + '.' + infos['topophaseFlatFilename'] intImage = isceobj.createIntImage() intImage.setFilename(topoflatIntFilename) intImage.setWidth(widthInt) intImage.setAccessMode('read') intImage.createImage() # Create the filtered interferogram filtIntFilename = infos['outputPath'] + '.' + infos['filt_topophaseFlatFilename'] filtImage = isceobj.createIntImage() filtImage.setFilename(filtIntFilename) filtImage.setWidth(widthInt) filtImage.setAccessMode('write') filtImage.createImage() objFilter = Filter() objFilter.wireInputPort(name='interferogram',object=intImage) objFilter.wireOutputPort(name='filtered interferogram',object=filtImage) objFilter.goldsteinWerner(alpha=infos['filterStrength']) intImage.finalizeImage() filtImage.finalizeImage() #Create phase sigma correlation file here filtImage = isceobj.createIntImage() filtImage.setFilename(filtIntFilename) filtImage.setWidth(widthInt) filtImage.setAccessMode('read') filtImage.createImage() phsigFilename = infos['outputPath'] + '.' + infos['phsigFilename'] phsigImage = isceobj.createImage() phsigImage.dataType='FLOAT' phsigImage.bands = 1 phsigImage.setWidth(widthInt) phsigImage.setFilename(phsigFilename) phsigImage.setAccessMode('write') phsigImage.setImageType('cor')#the type in this case is not for mdx.py displaying but for geocoding method phsigImage.createImage() ampImage = isceobj.createAmpImage() IU.copyAttributes(resampAmpImage, ampImage) ampImage.setAccessMode('read') ampImage.createImage() icuObj = Icu(name='insarapp_filter_icu') icuObj.configure() icuObj.filteringFlag = False icuObj.unwrappingFlag = False icuObj.initCorrThreshold = 0.1 icuObj.icu(intImage=filtImage, ampImage=ampImage, phsigImage=phsigImage) filtImage.finalizeImage() phsigImage.finalizeImage() phsigImage.renderHdr() ampImage.finalizeImage()
def runUnwrap(self, igramSpectrum="full"): '''Specific connector from an insarApp object to a Snaphu object.''' if igramSpectrum == "full": ifgDirname = self.insar.ifgDirname elif igramSpectrum == "low": if not self.doDispersive: print( 'Estimating dispersive phase not requested ... skipping sub-band interferogram unwrapping' ) return ifgDirname = os.path.join(self.insar.ifgDirname, self.insar.lowBandSlcDirname) elif igramSpectrum == "high": if not self.doDispersive: print( 'Estimating dispersive phase not requested ... skipping sub-band interferogram unwrapping' ) return ifgDirname = os.path.join(self.insar.ifgDirname, self.insar.highBandSlcDirname) wrapName = os.path.join(ifgDirname, 'filt_' + self.insar.ifgFilename) if '.flat' in wrapName: unwrapName = wrapName.replace('.flat', '.unw') elif '.int' in wrapName: unwrapName = wrapName.replace('.int', '.unw') else: unwrapName = wrapName + '.unw' img1 = isceobj.createImage() img1.load(wrapName + '.xml') width = img1.getWidth() # Get amp image name originalWrapName = os.path.join(ifgDirname, self.insar.ifgFilename) if '.flat' in originalWrapName: resampAmpImage = originalWrapName.replace('.flat', '.amp') elif '.int' in originalWrapName: resampAmpImage = originalWrapName.replace('.int', '.amp') else: resampAmpImage = originalWrapName + '.amp' ampImage = isceobj.createAmpImage() ampImage.setWidth(width) ampImage.setFilename(resampAmpImage) ampImage.setAccessMode('read') ampImage.createImage() #width = ampImage.getWidth() #intImage intImage = isceobj.createIntImage() intImage.initImage(wrapName, 'read', width) intImage.createImage() #unwImage unwImage = isceobj.Image.createUnwImage() unwImage.setFilename(unwrapName) unwImage.setWidth(width) unwImage.imageType = 'unw' unwImage.bands = 2 unwImage.scheme = 'BIL' unwImage.dataType = 'FLOAT' unwImage.setAccessMode('write') unwImage.createImage() icuObj = Icu(name='insarapp_icu') icuObj.configure() icuObj.filteringFlag = False #icuObj.useAmplitudeFlag = False icuObj.singlePatch = True icuObj.initCorrThreshold = 0.1 icuObj.icu(intImage=intImage, ampImage=ampImage, unwImage=unwImage) #At least one can query for the name used self.insar.connectedComponentsFilename = icuObj.conncompFilename ampImage.finalizeImage() intImage.finalizeImage() unwImage.finalizeImage() unwImage.renderHdr()