Apply current workspace changes
This commit is contained in:
+135
@@ -0,0 +1,135 @@
|
||||
#! /usr/bin/env python
|
||||
#################################################################
|
||||
### This program is part of PyINT v2.1 ###
|
||||
### Copy Right (c): 2017-2019, Yunmeng Cao ###
|
||||
### Author: Yunmeng Cao ###
|
||||
### Contact : ymcmrs@gmail.com ###
|
||||
#################################################################
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
from pyint import _utils as ut
|
||||
|
||||
|
||||
INTRODUCTION = '''
|
||||
-------------------------------------------------------------------
|
||||
copy SLC/RSLC from large SLC/RSLC
|
||||
|
||||
'''
|
||||
|
||||
EXAMPLE = '''
|
||||
Usage:
|
||||
slcCopy_gamma_jobs.py projectName Sdate rwidth awidth --memory memory_single_job --walltime walltime_single_job
|
||||
slcCopy_gamma_jobs.py PacayaT163TsxHhA 20150601 5000 5000 --memory 5000 --walltime 00:30:00
|
||||
-------------------------------------------------------------------
|
||||
'''
|
||||
|
||||
def cmdLineParse():
|
||||
parser = argparse.ArgumentParser(description='Copy SLC subset from a large SLC.',\
|
||||
formatter_class=argparse.RawTextHelpFormatter,\
|
||||
epilog=INTRODUCTION+'\n'+EXAMPLE)
|
||||
|
||||
parser.add_argument('projectName',help='projectName for processing.')
|
||||
parser.add_argument('Date',help='Master date.')
|
||||
parser.add_argument('rwidth',help='width of range direction')
|
||||
parser.add_argument('awidth',help='width of azimith direction')
|
||||
parser.add_argument('--memory',dest = 'memory',default = '2000', help='memory to be allocated for one job, default: 5GB')
|
||||
parser.add_argument('--walltime',dest = 'walltime',default = '00:05:00', help='walltime to be allocated for one single job')
|
||||
inps = parser.parse_args()
|
||||
return inps
|
||||
|
||||
|
||||
def main(argv):
|
||||
|
||||
inps = cmdLineParse()
|
||||
projectName = inps.projectName
|
||||
Date = inps.Date; rwidth = inps.rwidth; awidth = inps.awidth; memory = inps.memory; walltime = inps.walltime
|
||||
|
||||
scratchDir = os.getenv('SCRATCHDIR')
|
||||
templateDir = os.getenv('TEMPLATEDIR')
|
||||
templateFile = templateDir + "/" + projectName + ".template"
|
||||
templateDict=ut.update_template(templateFile)
|
||||
rlks = templateDict['range_looks']
|
||||
azlks = templateDict['azimuth_looks']
|
||||
|
||||
processDir = scratchDir + '/' + projectName + "/PROCESS"
|
||||
slcDir = scratchDir + '/' + projectName + "/SLC"
|
||||
rslcDir = scratchDir + '/' + projectName + '/RSLC'
|
||||
ifgDir = scratchDir + '/' + projectName + '/ifgrams'
|
||||
|
||||
Dslc = rslcDir + '/' + Date + '/' + Date + '.rslc'
|
||||
DslcPar = rslcDir + '/' + Date + '/' + Date + '.rslc.par'
|
||||
|
||||
nWidth = ut.read_gamma_par(DslcPar, 'read', 'range_samples')
|
||||
nLine = ut.read_gamma_par(DslcPar, 'read', 'azimuth_lines')
|
||||
|
||||
Ap_samp = np.arange(1,int(nLine),int(awidth)); Na0 = len(Ap_samp); LA_end = int(nLine) - Ap_samp[Na0-1]
|
||||
Rp_samp = np.arange(1,int(nWidth),int(rwidth)); Nr0 = len(Rp_samp); LR_end = int(nWidth) - Rp_samp[Nr0-1]
|
||||
|
||||
if LA_end > (2/3*int(awidth)):
|
||||
Ap_samp1 = Ap_samp
|
||||
else:
|
||||
Ap_samp1 = Ap_samp[0:(Na0-1)] # last batch with '-' means to the end
|
||||
|
||||
if LR_end > (2/3*int(rwidth)):
|
||||
Rp_samp1 = Rp_samp
|
||||
else:
|
||||
Rp_samp1 = Rp_samp[0:(Nr0-1)] # last batch with '-' means to the end
|
||||
|
||||
Na = len(Ap_samp1); Nr = len(Rp_samp1); Ntotal = Na*Nr
|
||||
print('Azimuth samples: ' + str(Na))
|
||||
print('Range samples: ' + str(Nr))
|
||||
print('Total batch numbers: ' + str(Ntotal))
|
||||
|
||||
batch_txt = scratchDir + '/' + projectName + '/RSLC/' + Date + '/Batch_copySLC'
|
||||
workDir = scratchDir + '/' + projectName + '/RSLC/' + Date
|
||||
if os.path.isfile(batch_txt):
|
||||
os.remove(batch_txt)
|
||||
for i in range(Na):
|
||||
for j in range(Nr):
|
||||
if len(str(i)) == 1:
|
||||
i0 = '0' + str(i)
|
||||
else:
|
||||
i0 = str(i)
|
||||
if len(str(j)) == 1:
|
||||
j0 = '0' + str(j)
|
||||
else:
|
||||
j0 = str(j)
|
||||
name0 = Date + '_' +i0 + j0
|
||||
rstart = str(Rp_samp1[j]); astart = str(Ap_samp1[i])
|
||||
if rstart == str(Rp_samp1[Nr-1]):
|
||||
rwidth0 = '-'
|
||||
else:
|
||||
rwidth0 = str(int(int(rwidth) + 200)) # extend 200 to avoid edge effect
|
||||
|
||||
if astart == str(Ap_samp1[Na-1]):
|
||||
awidth0 = '-'
|
||||
else:
|
||||
awidth0 = str(int(int(awidth) + 200)) # extend 200 to avoid edge effect
|
||||
|
||||
if not i==0:
|
||||
astart0 = str(int(int(astart) - 200)) # extend 200 to avoid edge effect
|
||||
else:
|
||||
astart0 = astart
|
||||
|
||||
if not j==0:
|
||||
rstart0 = str(int(int(rstart) - 200)) # extend 200 to avoid edge effect
|
||||
else:
|
||||
rstart0 = rstart
|
||||
|
||||
#str0 = 'SLC_copy ' + Dslc + ' ' + DslcPar + ' ' + workDir + '/' + name0 + '.rslc' + ' ' + workDir + '/' + name0 + '.rslc.par - - ' + rstart0 + ' ' + rwidth0 + ' ' + astart0 + ' ' + awidth0 + ' - -'
|
||||
str0 = 'rslcCopy_gamma.py ' + projectName + ' ' + Date + ' ' + rstart0 + ' ' + rwidth0 + ' ' + astart0 + ' ' + awidth0 + ' ' + name0
|
||||
call_str = 'echo ' + str0 + ' >>' + batch_txt
|
||||
os.system(call_str)
|
||||
|
||||
call_str = 'sbatch_jobs.py ' + batch_txt + ' --memory ' + inps.memory + ' --walltime ' + inps.walltime + ' --job-name ' + Date + '_copySLC'
|
||||
os.system(call_str)
|
||||
|
||||
print("RSLC copy done: " + Date)
|
||||
#sys.exit(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[:])
|
||||
Reference in New Issue
Block a user