ISCE_INSAR/components/isceobj/RtcProc/runLooks.py

69 lines
1.5 KiB
Python

#
# Author: Piyush Agram
# Copyright 2016
#
import logging
import isceobj
import mroipac
import os
import numpy as np
from isceobj.Util.decorators import use_api
logger = logging.getLogger('isce.grdsar.looks')
def takeLooks(inimg, alks, rlks):
'''
Take looks.
'''
from mroipac.looks.Looks import Looks
img = isceobj.createImage()
img.load(inimg + '.xml')
img.setAccessMode('READ')
spl = os.path.splitext(inimg)
ext = '.{0}alks_{1}rlks'.format(alks, rlks)
outfile = spl[0] + ext + spl[1]
lkObj = Looks()
lkObj.setDownLooks(alks)
lkObj.setAcrossLooks(rlks)
lkObj.setInputImage(img)
lkObj.setOutputFilename(outfile)
lkObj.looks()
return outfile
def runLooks(self):
'''
Make sure that a DEM is available for processing the given data.
'''
refPol = self._grd.polarizations[0]
reference = self._grd.loadProduct( os.path.join(self._grd.outputFolder, 'beta_{0}.xml'.format(refPol)))
azlooks, rglooks = self._grd.getLooks( self.posting, reference.groundRangePixelSize, reference.azimuthPixelSize, self.numberAzimuthLooks, self.numberRangeLooks)
if (azlooks == 1) and (rglooks == 1):
return
slantRange = False
for pol in self._grd.polarizations:
inname = os.path.join( self._grd.outputFolder, 'beta_{0}.img'.format(pol) )
takeLooks(inname, azlooks, rglooks)
if not slantRange:
inname = reference.slantRangeImage.filename
takeLooks(inname, azlooks, rglooks)
slantRange = True
return