55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import os
|
||
|
import shelve
|
||
|
import isce
|
||
|
import argparse
|
||
|
import datetime
|
||
|
|
||
|
def cmdLineParse():
|
||
|
'''
|
||
|
Command line parser.
|
||
|
'''
|
||
|
|
||
|
parser = argparse.ArgumentParser(description='Fix master metadata')
|
||
|
parser.add_argument('-m', '--master', dest='master', type=str, required=True,
|
||
|
help='Directory with master SLC')
|
||
|
parser.add_argument('-o', '--offset', dest='offset', type=str, required=True,
|
||
|
help='Pickle with offsets')
|
||
|
|
||
|
return parser.parse_args()
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
'''
|
||
|
Main driver.
|
||
|
'''
|
||
|
|
||
|
inps = cmdLineParse()
|
||
|
|
||
|
mdb = shelve.open( os.path.join(inps.master, 'data'), writeback=True)
|
||
|
odb = shelve.open( inps.offset, flag='r')
|
||
|
|
||
|
field = odb['cull_field']
|
||
|
aa, rr = field.getFitPolynomials(azimuthOrder=0, rangeOrder=0, usenumpy=True)
|
||
|
|
||
|
meanaz = aa._coeffs[0][0]
|
||
|
meanrg = rr._coeffs[0][0]
|
||
|
|
||
|
frame = mdb['frame']
|
||
|
|
||
|
r0 = frame.getStartingRange()
|
||
|
dr = frame.getInstrument().getRangePixelSize()
|
||
|
frame.setStartingRange( r0 + meanrg* dr)
|
||
|
|
||
|
prf = frame.getInstrument().getPulseRepetitionFrequency()
|
||
|
delta = datetime.timedelta(seconds = meanaz / prf)
|
||
|
|
||
|
print('Range: ', meanrg*dr)
|
||
|
print('Azimuth: ', delta)
|
||
|
frame.setSensingStart( frame.getSensingStart() + delta)
|
||
|
frame.setSensingMid( frame.getSensingMid() + delta)
|
||
|
frame.setSensingStop( frame.getSensingStop() + delta)
|
||
|
|
||
|
odb.close()
|
||
|
mdb.close()
|