ISCE_INSAR/components/isceobj/Alos2Proc/runGeocodeOffset.py

64 lines
2.1 KiB
Python
Raw Normal View History

#
# Author: Cunren Liang
# Copyright 2015-present, NASA-JPL/Caltech
#
import os
import logging
import numpy as np
import isceobj
from isceobj.Alos2Proc.runGeocode import geocode
from isceobj.Alos2Proc.Alos2ProcPublic import getBboxGeo
logger = logging.getLogger('isce.alos2insar.runGeocodeOffset')
def runGeocodeOffset(self):
'''geocode offset fied
'''
if not self.doDenseOffset:
return
if not ((self._insar.modeCombination == 0) or (self._insar.modeCombination == 1)):
return
catalog = isceobj.Catalog.createCatalog(self._insar.procDoc.name)
self.updateParamemetersFromUser()
#use original track object to determine bbox
if self.bbox == None:
masterTrack = self._insar.loadTrack(master=True)
bbox = getBboxGeo(masterTrack)
else:
bbox = self.bbox
catalog.addItem('geocode bounding box', bbox, 'runGeocodeOffset')
demFile = os.path.abspath(self._insar.demGeo)
denseOffsetDir = 'dense_offset'
os.makedirs(denseOffsetDir, exist_ok=True)
os.chdir(denseOffsetDir)
masterTrack = self._insar.loadProduct(self._insar.masterTrackParameter)
#slaveTrack = self._insar.loadProduct(self._insar.slaveTrackParameter)
#########################################################################################
#compute bounding box for geocoding
#if self.bbox == None:
# bbox = getBboxGeo(masterTrack)
#else:
# bbox = self.bbox
#catalog.addItem('geocode bounding box', bbox, 'runGeocodeOffset')
geocodeList = [self._insar.denseOffset, self._insar.denseOffsetSnr]
if self.doOffsetFiltering:
geocodeList.append(self._insar.denseOffsetFilt)
for inputFile in geocodeList:
interpMethod = 'nearest'
geocode(masterTrack, demFile, inputFile, bbox, self.offsetSkipWidth, self.offsetSkipHeight, interpMethod, self._insar.offsetImageTopoffset, self._insar.offsetImageLeftoffset, addMultilookOffset=False)
#########################################################################################
os.chdir('../')
catalog.printToLog(logger, "runGeocodeOffset")
self._insar.procDoc.addAllFromCatalog(catalog)