Apply current workspace changes
This commit is contained in:
+180
@@ -0,0 +1,180 @@
|
||||
#! /usr/bin/env python
|
||||
#'''
|
||||
###################################################################################
|
||||
# #
|
||||
# Author: Yun-Meng Cao #
|
||||
# Email : ymcmrs@gmail.com #
|
||||
# Date : Mar, 2017 #
|
||||
# #
|
||||
# Select Interferometry-Pairs from time series SAR images #
|
||||
# #
|
||||
###################################################################################
|
||||
#'''
|
||||
import numpy as np
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import getopt
|
||||
import time
|
||||
import glob
|
||||
|
||||
def check_variable_name(path):
|
||||
s=path.split("/")[0]
|
||||
if len(s)>0 and s[0]=="$":
|
||||
p0=os.getenv(s[1:])
|
||||
path=path.replace(path.split("/")[0],p0)
|
||||
return path
|
||||
|
||||
def read_template(File, delimiter='='):
|
||||
'''Reads the template file into a python dictionary structure.
|
||||
Input : string, full path to the template file
|
||||
Output: dictionary, pysar template content
|
||||
Example:
|
||||
tmpl = read_template(KyushuT424F610_640AlosA.template)
|
||||
tmpl = read_template(R1_54014_ST5_L0_F898.000.pi, ':')
|
||||
'''
|
||||
template_dict = {}
|
||||
for line in open(File):
|
||||
line = line.strip()
|
||||
c = [i.strip() for i in line.split(delimiter, 1)] #split on the 1st occurrence of delimiter
|
||||
if len(c) < 2 or line.startswith('%') or line.startswith('#'):
|
||||
next #ignore commented lines or those without variables
|
||||
else:
|
||||
atrName = c[0]
|
||||
atrValue = str.replace(c[1],'\n','').split("#")[0].strip()
|
||||
atrValue = check_variable_name(atrValue)
|
||||
template_dict[atrName] = atrValue
|
||||
return template_dict
|
||||
|
||||
|
||||
def is_number(s):
|
||||
try:
|
||||
int(s)
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
def add_zero(s):
|
||||
if len(s)==1:
|
||||
s="000"+s
|
||||
elif len(s)==2:
|
||||
s="00"+s
|
||||
elif len(s)==3:
|
||||
s="0"+s
|
||||
return s
|
||||
|
||||
|
||||
def usage():
|
||||
print('''
|
||||
******************************************************************************************************
|
||||
|
||||
Select interferometry pairs from time series SAR images
|
||||
|
||||
usage:
|
||||
|
||||
SelectPairs_Gamma.py ProjectName
|
||||
|
||||
e.g. SelectPairs_Gamma.py PacayaT163TsxHhA
|
||||
|
||||
|
||||
*******************************************************************************************************
|
||||
''')
|
||||
|
||||
def main(argv):
|
||||
|
||||
if len(sys.argv)==2:
|
||||
if argv[0] in ['-h','--help']: usage(); sys.exit(1)
|
||||
else: projectName=sys.argv[1]
|
||||
else:
|
||||
usage();sys.exit(1)
|
||||
|
||||
scratchDir = os.getenv('SCRATCHDIR')
|
||||
templateDir = os.getenv('TEMPLATEDIR')
|
||||
templateFile = templateDir + "/" + projectName + ".template"
|
||||
templateContents=read_template(templateFile)
|
||||
processDir = scratchDir + '/' + projectName + "/PROCESS"
|
||||
slcDir = scratchDir + '/' + projectName + "/SLC"
|
||||
|
||||
if not os.path.isdir(processDir):
|
||||
call_str = 'mkdir ' + processDir
|
||||
os.system(call_str)
|
||||
|
||||
|
||||
if 'JOB' in templateContents: JOB = templateContents['JOB']
|
||||
else: JOB = 'IFG'
|
||||
|
||||
INF=JOB
|
||||
if INF=='IFG':
|
||||
Suffix=['']
|
||||
print("Time series interferograms will be processed!")
|
||||
elif INF=='MAI':
|
||||
Suffix=['.F','.B']
|
||||
print("Time series multi-aperture interferograms will be processed!")
|
||||
elif INF=='RSI':
|
||||
Suffix=['.HF','.LF']
|
||||
print("Time series range split-spectrum interferograms will be processed!")
|
||||
else:
|
||||
print("The folder name %s cannot be identified !" % igramDir)
|
||||
usage();sys.exit(1)
|
||||
|
||||
# define files
|
||||
|
||||
SLC_Tab = processDir + "/SLC_Tab"
|
||||
TS_Berp = processDir + "/TS_Berp"
|
||||
TS_Itab = processDir + "/TS_Itab"
|
||||
itab_type = '1'
|
||||
pltflg = '0'
|
||||
|
||||
if 'Max_Spacial_Baseline' in templateContents: MaxSB=templateContents['Max_Spacial_Baseline']
|
||||
else:
|
||||
print("Max_Spacial_Baseline is not found in template!! ")
|
||||
print("500m is chosen as the threshold for spatial baseline!")
|
||||
MaxSB = '500'
|
||||
|
||||
if 'Max_Temporal_Baseline' in templateContents: MaxTB=templateContents['Max_Temporal_Baseline']
|
||||
else:
|
||||
print("Max_Temporal_Baseline is not found in template!! ")
|
||||
print("500 days is chosen as the threshold for temporal baseline!")
|
||||
MaxTB = '500'
|
||||
|
||||
|
||||
# extract available SAR images slc and slc_par
|
||||
ListSLC = os.listdir(slcDir)
|
||||
Datelist = []
|
||||
SLCfile = []
|
||||
SLCParfile = []
|
||||
|
||||
print("All of the available SAR acquisition datelist is :")
|
||||
for kk in range(len(ListSLC)):
|
||||
if ( is_number(ListSLC[kk]) and len(ListSLC[kk])==6 ): # if SAR date number is 8, 6 should change to 8.
|
||||
DD=ListSLC[kk]
|
||||
Year=int(DD[0:2])
|
||||
Month = int(DD[2:4])
|
||||
Day = int(DD[4:6])
|
||||
if ( 0 < Year < 20 and 0 < Month < 13 and 0 < Day < 32 ):
|
||||
Datelist.append(ListSLC[kk])
|
||||
print(ListSLC[kk])
|
||||
DateDir = slcDir+'/'+ListSLC[kk]
|
||||
SLC0 = glob.glob(DateDir+'/*slc')[0]
|
||||
SLCPar0 = glob.glob(DateDir+'/*slc.par')[0]
|
||||
|
||||
str_slc = slcDir + "/" + ListSLC[kk] +"/" + ListSLC[kk] + ".slc"
|
||||
str_slc_par = slcDir + "/" + ListSLC[kk] +"/" + ListSLC[kk] + ".slc.par"
|
||||
|
||||
call_str = 'mv ' + SLC0 + ' ' + str_slc
|
||||
os.system(call_str)
|
||||
|
||||
call_str = 'mv ' + SLCPar0 + ' ' + str_slc_par
|
||||
os.system(call_str)
|
||||
|
||||
SLCfile.append(str_slc)
|
||||
SLCParfile.append(str_slc_par)
|
||||
|
||||
|
||||
print("Change name of SLC file is done! ")
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[:])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user