Merge pull request #99 from mirzaees/run_master

Run master
LT1AB
piyushrpt 2020-03-21 17:11:19 -07:00 committed by GitHub
commit 3f82b2cfe9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 62 additions and 40 deletions

View File

@ -430,11 +430,16 @@ def slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, upd
############################# #############################
i=0 i=0
if not updateStack:
i += 1
runObj = run()
runObj.configure(inps, 'run_' + str(i) + "_unpack_topo_master")
runObj.unpackStackMasterSLC(safe_dict)
runObj.finalize()
i+=1 i+=1
runObj = run() runObj = run()
runObj.configure(inps, 'run_' + str(i) + "_unpack_slc_topo_master") runObj.configure(inps, 'run_' + str(i) + "_unpack_slave_slc")
if not updateStack:
runObj.unpackStackMasterSLC(safe_dict)
runObj.unpackSlavesSLC(stackMasterDate, slaveDates, safe_dict) runObj.unpackSlavesSLC(stackMasterDate, slaveDates, safe_dict)
runObj.finalize() runObj.finalize()

91
contrib/stack/topsStack/topo.py Normal file → Executable file
View File

@ -10,6 +10,8 @@ import sys
import s1a_isce_utils as ut import s1a_isce_utils as ut
from isceobj.Planet.Planet import Planet from isceobj.Planet.Planet import Planet
from zerodop.topozero import createTopozero from zerodop.topozero import createTopozero
import multiprocessing as mp
def createParser(): def createParser():
parser = argparse.ArgumentParser( description='Generates lat/lon/h and los for each pixel') parser = argparse.ArgumentParser( description='Generates lat/lon/h and los for each pixel')
@ -30,6 +32,49 @@ def cmdLineParse(iargs=None):
return parser.parse_args(args=iargs) return parser.parse_args(args=iargs)
def call_topo(input):
(dirname, demImage, master, ind) = input
burst = master.bursts[ind]
latname = os.path.join(dirname, 'lat_%02d.rdr' % (ind + 1))
lonname = os.path.join(dirname, 'lon_%02d.rdr' % (ind + 1))
hgtname = os.path.join(dirname, 'hgt_%02d.rdr' % (ind + 1))
losname = os.path.join(dirname, 'los_%02d.rdr' % (ind + 1))
maskname = os.path.join(dirname, 'shadowMask_%02d.rdr' % (ind + 1))
incname = os.path.join(dirname, 'incLocal_%02d.rdr' % (ind + 1))
#####Run Topo
planet = Planet(pname='Earth')
topo = createTopozero()
topo.slantRangePixelSpacing = burst.rangePixelSize
topo.prf = 1.0 / burst.azimuthTimeInterval
topo.radarWavelength = burst.radarWavelength
topo.orbit = burst.orbit
topo.width = burst.numberOfSamples
topo.length = burst.numberOfLines
topo.wireInputPort(name='dem', object=demImage)
topo.wireInputPort(name='planet', object=planet)
topo.numberRangeLooks = 1
topo.numberAzimuthLooks = 1
topo.lookSide = -1
topo.sensingStart = burst.sensingStart
topo.rangeFirstSample = burst.startingRange
topo.demInterpolationMethod = 'BIQUINTIC'
topo.latFilename = latname
topo.lonFilename = lonname
topo.heightFilename = hgtname
topo.losFilename = losname
topo.maskFilename = maskname
topo.incFilename = incname
topo.topo()
bbox = [topo.minimumLatitude, topo.maximumLatitude, topo.minimumLongitude, topo.maximumLongitude]
topo = None
return bbox
def main(iargs=None): def main(iargs=None):
inps = cmdLineParse(iargs) inps = cmdLineParse(iargs)
@ -40,6 +85,8 @@ def main(iargs=None):
demImage.load(inps.dem + '.xml') demImage.load(inps.dem + '.xml')
boxes = [] boxes = []
inputs = []
for swath in swathList: for swath in swathList:
master = ut.loadProduct(os.path.join(inps.master , 'IW{0}.xml'.format(swath))) master = ut.loadProduct(os.path.join(inps.master , 'IW{0}.xml'.format(swath)))
@ -51,50 +98,20 @@ def main(iargs=None):
else: else:
os.makedirs(dirname) os.makedirs(dirname)
###For each burst
for ind in range(master.numberOfBursts): for ind in range(master.numberOfBursts):
burst = master.bursts[ind] inputs.append((dirname, demImage, master, ind))
latname = os.path.join(dirname, 'lat_%02d.rdr'%(ind+1)) pool = mp.Pool(mp.cpu_count())
lonname = os.path.join(dirname, 'lon_%02d.rdr'%(ind+1)) results = pool.map(call_topo, inputs)
hgtname = os.path.join(dirname, 'hgt_%02d.rdr'%(ind+1)) pool.close()
losname = os.path.join(dirname, 'los_%02d.rdr'%(ind+1))
maskname = os.path.join(dirname, 'shadowMask_%02d.rdr'%(ind+1))
incname = os.path.join(dirname, 'incLocal_%02d.rdr'%(ind+1))
#####Run Topo
planet = Planet(pname='Earth')
topo = createTopozero()
topo.slantRangePixelSpacing = burst.rangePixelSize
topo.prf = 1.0/burst.azimuthTimeInterval
topo.radarWavelength = burst.radarWavelength
topo.orbit = burst.orbit
topo.width = burst.numberOfSamples
topo.length = burst.numberOfLines
topo.wireInputPort(name='dem', object=demImage)
topo.wireInputPort(name='planet', object=planet)
topo.numberRangeLooks = 1
topo.numberAzimuthLooks = 1
topo.lookSide = -1
topo.sensingStart = burst.sensingStart
topo.rangeFirstSample = burst.startingRange
topo.demInterpolationMethod='BIQUINTIC'
topo.latFilename = latname
topo.lonFilename = lonname
topo.heightFilename = hgtname
topo.losFilename = losname
topo.maskFilename = maskname
topo.incFilename = incname
topo.topo()
bbox = [topo.minimumLatitude, topo.maximumLatitude, topo.minimumLongitude, topo.maximumLongitude] for bbox in results:
boxes.append(bbox) boxes.append(bbox)
topo = None
boxes = np.array(boxes) boxes = np.array(boxes)
bbox = [np.min(boxes[:,0]), np.max(boxes[:,1]), np.min(boxes[:,2]), np.max(boxes[:,3])] bbox = [np.min(boxes[:,0]), np.max(boxes[:,1]), np.min(boxes[:,2]), np.max(boxes[:,3])]
print ('bbox : ',bbox) print ('bbox : ',bbox)
if __name__ == '__main__': if __name__ == '__main__':