68 lines
1.6 KiB
Python
68 lines
1.6 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import numpy as np
|
||
|
import argparse
|
||
|
import os
|
||
|
import isce
|
||
|
import isceobj
|
||
|
import datetime
|
||
|
import shelve
|
||
|
import matplotlib.pyplot as plt
|
||
|
|
||
|
def cmdLineParse():
|
||
|
'''
|
||
|
Command line parser.
|
||
|
'''
|
||
|
|
||
|
parser = argparse.ArgumentParser( description='Generate offset field between two Sentinel swaths')
|
||
|
parser.add_argument('-m', type=str, dest='master', required=True,
|
||
|
help='Directory with the master image')
|
||
|
|
||
|
parser.add_argument('-a', '--az', type=float, dest='azshift', default=0.0,
|
||
|
help='Azimuth shift to add in lines')
|
||
|
|
||
|
parser.add_argument('-r', '--rg', type=float, dest='rgshift', default=0.0,
|
||
|
help='Range shift to add in pixels')
|
||
|
|
||
|
return parser.parse_args()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
'''
|
||
|
Generate offset fields burst by burst.
|
||
|
'''
|
||
|
|
||
|
inps = cmdLineParse()
|
||
|
|
||
|
mdb = shelve.open( os.path.join(inps.master, 'data'), flag='r')
|
||
|
mFrame = mdb['frame']
|
||
|
mdb.close()
|
||
|
|
||
|
print('Before: ')
|
||
|
print('t0: ', mFrame.sensingStart)
|
||
|
print('r0: ', mFrame.startingRange)
|
||
|
|
||
|
|
||
|
deltat = datetime.timedelta(seconds = inps.azshift/ mFrame.PRF)
|
||
|
|
||
|
mFrame.sensingStart += deltat
|
||
|
mFrame.sensingMid += deltat
|
||
|
mFrame.sensingStop += deltat
|
||
|
|
||
|
|
||
|
deltar = inps.rgshift * mFrame.instrument.rangePixelSize
|
||
|
mFrame.startingRange += deltar
|
||
|
|
||
|
mdb = shelve.open( os.path.join(inps.master, 'data'), writeback=True)
|
||
|
mdb['frame'] = mFrame
|
||
|
mdb.close()
|
||
|
|
||
|
mdb = shelve.open(os.path.join(inps.master, 'data'), flag='r')
|
||
|
mFrame = mdb['frame']
|
||
|
mdb.close()
|
||
|
|
||
|
print('After: ')
|
||
|
print('t0: ', mFrame.sensingStart)
|
||
|
print('r0: ', mFrame.startingRange)
|
||
|
|