From 68c7261b5d69d1d095d5fb009fd625848303923d Mon Sep 17 00:00:00 2001 From: Sara Mirzaee <37273875+mirzaees@users.noreply.github.com> Date: Mon, 15 Feb 2021 14:24:56 -0500 Subject: [PATCH] Stack minor modification (#232) * stackStripMap.py: change numbering style to match with topsStack * Stack.py: separate parallel processors in topo.py from runfiles * stackSentinel.py: add a new argument for parallel processors in topo.py * Stack.py: remove extra num_process for unpackStackReferenceSLC * stackSentinel.py: tie numProcess4topo to numProcessif the first not specified --- contrib/stack/stripmapStack/stackStripMap.py | 36 ++++++++++---------- contrib/stack/topsStack/Stack.py | 3 +- contrib/stack/topsStack/stackSentinel.py | 13 +++++-- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/contrib/stack/stripmapStack/stackStripMap.py b/contrib/stack/stripmapStack/stackStripMap.py index 355446f..01a3417 100755 --- a/contrib/stack/stripmapStack/stackStripMap.py +++ b/contrib/stack/stripmapStack/stackStripMap.py @@ -144,7 +144,7 @@ def slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates, pairs, if inps.bbox: i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_crop") + runObj.configure(inps, 'run_{:02d}_crop'.format(i)) config_prefix = "config_crop_" runObj.crop(acquisitionDates, config_prefix, native=not inps.zerodop, israw=not inps.nofocus) runObj.finalize() @@ -152,41 +152,41 @@ def slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates, pairs, i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_reference") + runObj.configure(inps, 'run_{:02d}_reference'.format(i)) config_prefix = "config_reference_" runObj.reference_focus_split_geometry(stackReferenceDate, config_prefix, split=splitFlag, focus=not inps.nofocus, native=not inps.zerodop) runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_focus_split") + runObj.configure(inps, 'run_{:02d}_focus_split'.format(i)) config_prefix = "config_focus_split" runObj.secondarys_focus_split(secondaryDates, config_prefix, split=splitFlag, focus=not inps.nofocus, native=not inps.zerodop) runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_geo2rdr_coarseResamp") + runObj.configure(inps, 'run_{:02d}_geo2rdr_coarseResamp'.format(i)) config_prefix = "config_geo2rdr_coarseResamp_" runObj.secondarys_geo2rdr_resampleSlc(stackReferenceDate, secondaryDates, config_prefix, native=(not inps.nofocus) or (not inps.zerodop)) runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_refineSecondaryTiming") + runObj.configure(inps, 'run_{:02d}_refineSecondaryTiming'.format(i)) config_prefix = 'config_refineSecondaryTiming_' runObj.refineSecondaryTiming_Network(pairs, stackReferenceDate, secondaryDates, config_prefix) runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_invertMisreg") + runObj.configure(inps, 'run_{:02d}_invertMisreg'.format(i)) runObj.invertMisregPoly() runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_fineResamp") + runObj.configure(inps, 'run_{:02d}_fineResamp'.format(i)) config_prefix = 'config_fineResamp_' runObj.secondarys_fine_resampleSlc(stackReferenceDate, secondaryDates, config_prefix, split=splitFlag) runObj.finalize() @@ -194,33 +194,33 @@ def slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates, pairs, if rubberSheet: i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_denseOffset") + runObj.configure(inps, 'run_{:02d}_denseOffset'.format(i)) config_prefix = 'config_denseOffset_' runObj.denseOffsets_Network(pairs, stackReferenceDate, secondaryDates, config_prefix) runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_invertDenseOffsets") + runObj.configure(inps, 'run_{:02d}_invertDenseOffsets'.format(i)) runObj.invertDenseOffsets() runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_resampleOffset") + runObj.configure(inps, 'run_{:02d}_resampleOffset'.format(i)) config_prefix = 'config_resampOffsets_' runObj.resampleOffset(secondaryDates, config_prefix) runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_replaceOffsets") + runObj.configure(inps, 'run_{:02d}_replaceOffsets'.format(i)) runObj.replaceOffsets(secondaryDates) runObj.finalize() i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_fineResamp") + runObj.configure(inps, 'run_{:02d}_fineResamp'.format(i)) config_prefix = 'config_fineResamp_' runObj.secondarys_fine_resampleSlc(stackReferenceDate, secondaryDates, config_prefix, split=splitFlag) runObj.finalize() @@ -229,7 +229,7 @@ def slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates, pairs, i+=1 config_prefix = 'config_baselinegrid_' runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_grid_baseline") + runObj.configure(inps, 'run_{:02d}_grid_baseline'.format(i)) runObj.gridBaseline(stackReferenceDate, secondaryDates,config_prefix) runObj.finalize() @@ -244,7 +244,7 @@ def interferogramStack(inps, acquisitionDates, stackReferenceDate, secondaryDate i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_igram") + runObj.configure(inps, 'run_{:02d}_igram'.format(i)) config_prefix = 'config_igram_' low_or_high = "/" runObj.igrams_network(pairs, acquisitionDates, stackReferenceDate, low_or_high, config_prefix) @@ -269,7 +269,7 @@ def interferogramIonoStack(inps, acquisitionDates, stackReferenceDate, secondary i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_igram") + runObj.configure(inps, 'run_{:02d}_igram'.format(i)) config_prefix = 'config_igram_' low_or_high = "/" runObj.igrams_network(pairs, acquisitionDates, stackReferenceDate, low_or_high, config_prefix) @@ -277,7 +277,7 @@ def interferogramIonoStack(inps, acquisitionDates, stackReferenceDate, secondary i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_igramLowBand") + runObj.configure(inps, 'run_{:02d}_igramLowBand'.format(i)) config_prefix = 'config_igramLowBand_' low_or_high = "/LowBand/" runObj.igrams_network(pairs, acquisitionDates, stackReferenceDate, low_or_high, config_prefix) @@ -285,7 +285,7 @@ def interferogramIonoStack(inps, acquisitionDates, stackReferenceDate, secondary i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_igramHighBand") + runObj.configure(inps, 'run_{:02d}_igramHighBand'.format(i)) config_prefix = 'config_igramHighBand_' low_or_high = "/HighBand/" runObj.igrams_network(pairs, acquisitionDates, stackReferenceDate, low_or_high, config_prefix) @@ -293,7 +293,7 @@ def interferogramIonoStack(inps, acquisitionDates, stackReferenceDate, secondary i+=1 runObj = run() - runObj.configure(inps, 'run_' + str(i) + "_iono") + runObj.configure(inps, 'run_{:02d}_iono'.format(i)) config_prefix = 'config_iono_' lowBand = '/LowBand/' highBand = '/HighBand/' diff --git a/contrib/stack/topsStack/Stack.py b/contrib/stack/topsStack/Stack.py index 1f421fa..ccd347c 100644 --- a/contrib/stack/topsStack/Stack.py +++ b/contrib/stack/topsStack/Stack.py @@ -76,7 +76,7 @@ class config(object): self.f.write('reference : ' + self.outDir + '\n') self.f.write('dem : ' + self.dem + '\n') self.f.write('geom_referenceDir : ' + self.geom_referenceDir + '\n') - self.f.write('numProcess : ' + str(self.numProcess) + '\n') + self.f.write('numProcess : ' + str(self.numProcess4topo) + '\n') self.f.write('##########################' + '\n') def geo2rdr(self,function): @@ -333,7 +333,6 @@ class run(object): configObj.outDir = os.path.join(self.work_dir, 'reference') configObj.geom_referenceDir = os.path.join(self.work_dir, 'geom_reference') configObj.dem = os.path.join(self.work_dir, configObj.dem) - configObj.numProcess = self.numProcess configObj.Sentinel1_TOPS('[Function-1]') configObj.topo('[Function-2]') configObj.finalize() diff --git a/contrib/stack/topsStack/stackSentinel.py b/contrib/stack/topsStack/stackSentinel.py index c7efd12..b3885ce 100755 --- a/contrib/stack/topsStack/stackSentinel.py +++ b/contrib/stack/topsStack/stackSentinel.py @@ -166,8 +166,11 @@ def createParser(): parser.add_argument('-useGPU', '--useGPU', dest='useGPU',action='store_true', default=False, help='Allow App to use GPU when available') - parser.add_argument('--num-proc', '--num-process', dest='numProcess', type=int, default=1, - help='number of parallel processes (where applicable) (default: %(default)s).') + parser.add_argument('--num_proc', '--num_process', dest='numProcess', type=int, default=1, + help='number of tasks running in parallel in each run file (default: %(default)s).') + + parser.add_argument('--num_proc4topo', '--num_process4topo', dest='numProcess4topo', type=int, default=1, + help='number of parallel processes (for topo only) (default: %(default)s).') parser.add_argument('-u', '--unw_method', dest='unwMethod', type=str, default='snaphu', choices=['icu', 'snaphu'], help='Unwrapping method (default: %(default)s).') @@ -187,6 +190,10 @@ def cmdLineParse(iargs = None): inps.work_dir = os.path.abspath(inps.work_dir) inps.dem = os.path.abspath(inps.dem) + if any(i in iargs for i in ['--num_proc', '--num_process']) and all( + i not in iargs for i in ['--num_proc4topo', '--num_process4topo']): + inps.numProcess4topo = inps.numProcess + return inps @@ -762,4 +769,4 @@ def main(iargs=None): if __name__ == "__main__": # Main engine - main() + main(sys.argv[1:])