86 lines
2.9 KiB
Python
86 lines
2.9 KiB
Python
|
#
|
||
|
# 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
|
||
|
|