ISCE_INSAR/components/isceobj/TopsProc/runPreprocessor.py

86 lines
2.9 KiB
Python
Raw Normal View History

2019-01-16 19:40:08 +00:00
#
# Author: Piyush Agram
# Copyright 2016
#
import logging
import isceobj
import mroipac
from mroipac.baseline.Baseline import Baseline
import copy
import os
logger = logging.getLogger('isce.topsinsar.runPreprocessor')
def runPreprocessor(self):
'''Extract images.
'''
virtual = self.useVirtualFiles
catalog = isceobj.Catalog.createCatalog(self._insar.procDoc.name)
###First set maximum number of swaths possible for a sensor.
self._insar.numberOfSwaths = self.master.maxSwaths
swathList = self._insar.getInputSwathList(self.swaths)
catalog.addItem('Input list of swaths to process: ', swathList, 'common')
self.master.configure()
self.slave.configure()
for swath in swathList:
###Process master frame-by-frame
frame = copy.deepcopy(self.master)
frame.swathNumber = swath
frame.output = os.path.join(frame.output, 'IW{0}'.format(swath))
frame.regionOfInterest = self.regionOfInterest
try:
master = extract_slc(frame, virtual=virtual)
success=True
except Exception as err:
print('Could not extract swath {0} from {1}'.format(swath, frame.safe))
print('Generated error: ', err)
success=False
if success:
catalog.addInputsFrom(frame.product, 'master.sensor')
catalog.addItem('burstWidth_{0}'.format(swath), frame.product.bursts[0].numberOfSamples, 'master')
catalog.addItem('burstLength_{0}'.format(swath), frame.product.bursts[0].numberOfLines, 'master')
catalog.addItem('numberOfBursts_{0}'.format(swath), len(frame.product.bursts), 'master')
###Process slave frame-by-frame
frame = copy.deepcopy(self.slave)
frame.swathNumber = swath
frame.output = os.path.join(frame.output, 'IW{0}'.format(swath))
frame.regionOfInterest = self.regionOfInterest
try:
slave = extract_slc(frame, virtual=virtual)
success=True
except Exception as err:
print('Could not extract swath {0} from {1}'.format(swath, frame.safe))
print('Generated error: ', err)
success = False
if success:
catalog.addInputsFrom(frame.product, 'slave.sensor')
catalog.addItem('burstWidth_{0}'.format(swath), frame.product.bursts[0].numberOfSamples, 'slave')
catalog.addItem('burstLength_{0}'.format(swath), frame.product.bursts[0].numberOfLines, 'slave')
catalog.addItem('numberOfBursts_{0}'.format(swath), len(frame.product.bursts), 'slave')
self._insar.masterSlcProduct = self.master.output
self._insar.slaveSlcProduct = self.slave.output
catalog.printToLog(logger, "runPreprocessor")
self._insar.procDoc.addAllFromCatalog(catalog)
def extract_slc(sensor, virtual=False):
# sensor.configure()
sensor.extractImage(virtual=virtual)
return sensor.output