commit
4998f720d7
|
@ -654,33 +654,40 @@ class workflow(object):
|
|||
|
||||
##############################
|
||||
|
||||
def baselinePair(baselineDir, master, slave):
|
||||
def baselinePair(baselineDir, master, slave,doBaselines=True):
|
||||
|
||||
try:
|
||||
mdb = shelve.open( os.path.join(master, 'raw'), flag='r')
|
||||
sdb = shelve.open( os.path.join(slave, 'raw'), flag='r')
|
||||
except:
|
||||
mdb = shelve.open( os.path.join(master, 'data'), flag='r')
|
||||
sdb = shelve.open( os.path.join(slave, 'data'), flag='r')
|
||||
if doBaselines: # open files to calculate baselines
|
||||
try:
|
||||
mdb = shelve.open( os.path.join(master, 'raw'), flag='r')
|
||||
sdb = shelve.open( os.path.join(slave, 'raw'), flag='r')
|
||||
except:
|
||||
mdb = shelve.open( os.path.join(master, 'data'), flag='r')
|
||||
sdb = shelve.open( os.path.join(slave, 'data'), flag='r')
|
||||
|
||||
mFrame = mdb['frame']
|
||||
sFrame = sdb['frame']
|
||||
mFrame = mdb['frame']
|
||||
sFrame = sdb['frame']
|
||||
|
||||
|
||||
bObj = Baseline()
|
||||
bObj.configure()
|
||||
bObj.wireInputPort(name='masterFrame', object=mFrame)
|
||||
bObj.wireInputPort(name='slaveFrame', object=sFrame)
|
||||
bObj.baseline()
|
||||
bObj = Baseline()
|
||||
bObj.configure()
|
||||
bObj.wireInputPort(name='masterFrame', object=mFrame)
|
||||
bObj.wireInputPort(name='slaveFrame', object=sFrame)
|
||||
bObj.baseline() # calculate baseline from orbits
|
||||
pBaselineBottom = bObj.pBaselineBottom
|
||||
pBaselineTop = bObj.pBaselineTop
|
||||
else: # set baselines to zero if not calculated
|
||||
pBaselineBottom = 0.0
|
||||
pBaselineTop = 0.0
|
||||
|
||||
baselineOutName = os.path.basename(master) + "_" + os.path.basename(slave) + ".txt"
|
||||
f = open(os.path.join(baselineDir, baselineOutName) , 'w')
|
||||
f.write("PERP_BASELINE_BOTTOM " + str(bObj.pBaselineBottom) + '\n')
|
||||
f.write("PERP_BASELINE_TOP " + str(bObj.pBaselineTop) + '\n')
|
||||
f.write("PERP_BASELINE_BOTTOM " + str(pBaselineBottom) + '\n')
|
||||
f.write("PERP_BASELINE_TOP " + str(pBaselineTop) + '\n')
|
||||
f.close()
|
||||
print('Baseline at top/bottom: %f %f'%(bObj.pBaselineTop,bObj.pBaselineBottom))
|
||||
return (bObj.pBaselineTop+bObj.pBaselineBottom)/2.
|
||||
print('Baseline at top/bottom: %f %f'%(pBaselineTop,pBaselineBottom))
|
||||
return (pBaselineTop+pBaselineBottom)/2.
|
||||
|
||||
def baselineStack(inps,stackMaster,acqDates):
|
||||
def baselineStack(inps,stackMaster,acqDates,doBaselines=True):
|
||||
from collections import OrderedDict
|
||||
baselineDir = os.path.join(inps.workDir,'baselines')
|
||||
if not os.path.exists(baselineDir):
|
||||
|
@ -693,7 +700,7 @@ def baselineStack(inps,stackMaster,acqDates):
|
|||
for slv in acqDates:
|
||||
if slv != stackMaster:
|
||||
slave = os.path.join(inps.slcDir, slv)
|
||||
baselineDict[slv]=baselinePair(baselineDir, master, slave)
|
||||
baselineDict[slv]=baselinePair(baselineDir, master, slave, doBaselines)
|
||||
t = datetime.datetime.strptime(slv, datefmt)
|
||||
timeDict[slv] = t - t0
|
||||
else:
|
||||
|
@ -702,11 +709,11 @@ def baselineStack(inps,stackMaster,acqDates):
|
|||
|
||||
return baselineDict, timeDict
|
||||
|
||||
def selectPairs(inps,stackMaster, slaveDates, acuisitionDates):
|
||||
baselineDict, timeDict = baselineStack(inps, stackMaster, acuisitionDates)
|
||||
def selectPairs(inps,stackMaster, slaveDates, acuisitionDates,doBaselines=True):
|
||||
|
||||
baselineDict, timeDict = baselineStack(inps, stackMaster, acuisitionDates,doBaselines)
|
||||
for slave in slaveDates:
|
||||
print (slave,' : ' , baselineDict[slave])
|
||||
|
||||
numDates = len(acuisitionDates)
|
||||
pairs = []
|
||||
for i in range(numDates-1):
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# modified to work for different UAVSAR stack segments EJF 2019/05/04
|
||||
|
||||
import os
|
||||
import glob
|
||||
|
@ -14,15 +15,17 @@ def createParser():
|
|||
Create command line parser.
|
||||
'''
|
||||
|
||||
parser = argparse.ArgumentParser(description='Unzip Alos zip files.')
|
||||
parser = argparse.ArgumentParser(description='Prepare UAVSAR SLC Stack files.')
|
||||
parser.add_argument('-i', '--input', dest='input', type=str, required=True,
|
||||
help='directory which has all dates as directories. Inside each date, zip files are expected.')
|
||||
help='directory which has all dates.')
|
||||
parser.add_argument('-d', '--dop_file', dest='dopFile', type=str, required=True,
|
||||
help='Doppler file for the stack.')
|
||||
help='Doppler file for the stack. Needs to be in directory where command is run.')
|
||||
parser.add_argument('-o', '--output', dest='output', type=str, required=True,
|
||||
help='output directory which will be used for unpacking.')
|
||||
parser.add_argument('-t', '--text_cmd', dest='text_cmd', type=str, default='source ~/.bash_profile;'
|
||||
, help='text command to be added to the beginning of each line of the run files. Example : source ~/.bash_profile;')
|
||||
parser.add_argument('-s', '--segment', dest='segment', type=str, default='1',
|
||||
help='segment of the UAVSAR stack to prepare. For "s2" use "2", etc. Default is "1" ')
|
||||
parser.add_argument('-t', '--text_cmd', dest='text_cmd', type=str, default='source ~/.bash_profile;',
|
||||
help='text command to be added to the beginning of each line of the run files. Default: source ~/.bash_profile;')
|
||||
|
||||
return parser
|
||||
|
||||
|
@ -64,14 +67,13 @@ def main(iargs=None):
|
|||
inps = cmdLineParse(iargs)
|
||||
|
||||
outputDir = os.path.abspath(inps.output)
|
||||
run_unPack = 'run_unPackAlos'
|
||||
|
||||
#######################################
|
||||
slc_files = glob.glob(os.path.join(inps.input, '*_s5_1x1.slc'))
|
||||
slc_files = glob.glob(os.path.join(inps.input, '*_s'+inps.segment+'_1x1.slc'))
|
||||
for file in slc_files:
|
||||
imgDate = get_Date(file)
|
||||
print (imgDate)
|
||||
annFile = file.replace('_s5_1x1.slc','')+'.ann'
|
||||
annFile = file.replace('_s'+inps.segment+'_1x1.slc','')+'.ann'
|
||||
print (annFile)
|
||||
imgDir = os.path.join(outputDir,imgDate)
|
||||
if not os.path.exists(imgDir):
|
||||
|
@ -81,7 +83,8 @@ def main(iargs=None):
|
|||
print (cmd)
|
||||
os.system(cmd)
|
||||
|
||||
cmd = 'mv ' + file + ' ' + imgDir
|
||||
slcFile = os.path.join(imgDir, imgDate+'.slc')
|
||||
cmd = 'mv ' + file + ' ' + slcFile
|
||||
print(cmd)
|
||||
os.system(cmd)
|
||||
|
||||
|
@ -90,7 +93,6 @@ def main(iargs=None):
|
|||
os.system(cmd)
|
||||
|
||||
shelveFile = os.path.join(imgDir, 'data')
|
||||
slcFile = os.path.join(imgDir, os.path.basename(file))
|
||||
write_xml(shelveFile, slcFile)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -325,7 +325,10 @@ def main(iargs=None):
|
|||
if not os.path.exists(runDir):
|
||||
os.makedirs(runDir)
|
||||
|
||||
pairs = selectPairs(inps,stackMasterDate, slaveDates, acquisitionDates)
|
||||
if inps.sensor.lower() == 'uavsar_stack': # don't try to calculate baselines for UAVSAR_STACK data
|
||||
pairs = selectPairs(inps,stackMasterDate, slaveDates, acquisitionDates,doBaselines=False)
|
||||
else:
|
||||
pairs = selectPairs(inps,stackMasterDate, slaveDates, acquisitionDates,doBaselines=True)
|
||||
print ('number of pairs: ', len(pairs))
|
||||
|
||||
###If only a summary is requested quit after this
|
||||
|
|
Loading…
Reference in New Issue