81 lines
2.5 KiB
Python
Executable File
81 lines
2.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import copy
|
|
import argparse
|
|
import numpy as np
|
|
|
|
import isce
|
|
import isceobj
|
|
import s1a_isce_utils as ut
|
|
from isceobj.TopsProc.runMergeBursts import mergeBox
|
|
from isceobj.TopsProc.runMergeBursts import adjustValidWithLooks
|
|
|
|
|
|
def createParser():
|
|
parser = argparse.ArgumentParser( description='adjust valid samples by considering number of looks')
|
|
|
|
parser.add_argument('-i', '--input', dest='input', type=str, required=True,
|
|
help='Directory with input acquistion')
|
|
parser.add_argument('-o', '--output', dest='output', type=str, required=True,
|
|
help='Directory with output')
|
|
parser.add_argument('-r', '--nrlks', dest='nrlks', type=int, default=1,
|
|
help='Number of range looks. Default: 1')
|
|
parser.add_argument('-a', '--nalks', dest='nalks', type=int, default=1,
|
|
help='Number of azimuth looks. Default: 1')
|
|
|
|
return parser
|
|
|
|
def cmdLineParse(iargs = None):
|
|
parser = createParser()
|
|
return parser.parse_args(args=iargs)
|
|
|
|
|
|
def main(iargs=None):
|
|
'''
|
|
adjust valid samples by considering number of looks
|
|
'''
|
|
inps = cmdLineParse(iargs)
|
|
|
|
|
|
swathList = sorted(ut.getSwathList(inps.input))
|
|
|
|
frames=[]
|
|
for swath in swathList:
|
|
frame = ut.loadProduct( os.path.join(inps.input , 'IW{0}.xml'.format(swath)))
|
|
minBurst = frame.bursts[0].burstNumber
|
|
maxBurst = frame.bursts[-1].burstNumber
|
|
|
|
if minBurst==maxBurst:
|
|
print('Skipping processing of swath {0}'.format(swath))
|
|
continue
|
|
|
|
frames.append(frame)
|
|
|
|
|
|
if inps.nrlks != 1 or inps.nalks != 1:
|
|
print('updating swath xml')
|
|
box = mergeBox(frames)
|
|
#adjust valid with looks, 'frames' ARE CHANGED AFTER RUNNING THIS
|
|
#here numberRangeLooks, instead of numberRangeLooks0, is used, since we need to do next step multilooking after unwrapping. same for numberAzimuthLooks.
|
|
(burstValidBox, burstValidBox2, message) = adjustValidWithLooks(frames, box, inps.nalks, inps.nrlks, edge=0, avalid='strict', rvalid='strict')
|
|
else:
|
|
print('number of range and azimuth looks are all equal to 1, no need to update swath xml')
|
|
|
|
for swath in swathList:
|
|
print('writing ', os.path.join(inps.output , 'IW{0}.xml'.format(swath)))
|
|
os.makedirs(os.path.join(inps.output, 'IW{0}'.format(swath)), exist_ok=True)
|
|
ut.saveProduct(frames[swath-1], os.path.join(inps.output , 'IW{0}.xml'.format(swath)))
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
'''
|
|
Main driver.
|
|
'''
|
|
# Main Driver
|
|
main()
|
|
|
|
|
|
|