2020-03-29 02:19:21 +00:00
|
|
|
#
|
|
|
|
# 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'
|
2020-04-13 19:40:32 +00:00
|
|
|
os.makedirs(denseOffsetDir, exist_ok=True)
|
2020-03-29 02:19:21 +00:00
|
|
|
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)
|