145 lines
4.3 KiB
Python
145 lines
4.3 KiB
Python
#! /usr/bin/env python
|
|
#################################################################
|
|
### This program is part of PyINT v1.0 ###
|
|
### Copy Right (c): 2017, Yunmeng Cao ###
|
|
### Author: Yunmeng Cao ###
|
|
### Email : ymcmrs@gmail.com ###
|
|
### Univ. : Central South University & University of Miami ###
|
|
#################################################################
|
|
|
|
|
|
import os
|
|
import sys
|
|
import glob
|
|
import time
|
|
import argparse
|
|
|
|
import h5py
|
|
import numpy as np
|
|
|
|
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 UseGamma(inFile, task, keyword):
|
|
if task == "read":
|
|
f = open(inFile, "r")
|
|
while 1:
|
|
line = f.readline()
|
|
if not line: break
|
|
if line.count(keyword) == 1:
|
|
strtemp = line.split(":")
|
|
value = strtemp[1].strip()
|
|
return value
|
|
print("Keyword " + keyword + " doesn't exist in " + inFile)
|
|
f.close()
|
|
|
|
def UseGamma2(inFile, task, keyword):
|
|
if task == "read":
|
|
f = open(inFile, "r")
|
|
while 1:
|
|
line = f.readline()
|
|
if not line: break
|
|
if line.count(keyword) == 1:
|
|
strtemp = line.split(":")
|
|
value = strtemp[2].strip()
|
|
return value
|
|
print("Keyword " + keyword + " doesn't exist in " + inFile)
|
|
f.close()
|
|
|
|
def usage():
|
|
print('''
|
|
******************************************************************************************************
|
|
|
|
Get co-registration standard deviation of SLCs for one project
|
|
|
|
usage:
|
|
|
|
GenerateRSC_Gamma.py projectName
|
|
|
|
e.g. Get_off_std.py GalapagosT061EnvA
|
|
|
|
*******************************************************************************************************
|
|
''')
|
|
|
|
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')
|
|
OFFDir = scratchDir + '/' + projectName + '/RSLC'
|
|
OFFSTR = OFFDir + '/*.off_std'
|
|
OFFFile = glob.glob(OFFSTR)
|
|
STD_TXT ='COREG_STD_ALL'
|
|
os.chdir(OFFDir)
|
|
if os.path.isfile(STD_TXT):
|
|
os.remove(STD_TXT)
|
|
|
|
for ff in OFFFile:
|
|
OFF_STD = ff
|
|
NM = os.path.basename(ff).split('.')[0]
|
|
RR = UseGamma(OFF_STD,'read','final range offset poly. coeff.:')
|
|
cor_rg = RR.split(' ')[0]
|
|
|
|
AA = UseGamma(OFF_STD,'read','final azimuth offset poly. coeff.:')
|
|
cor_az = AA.split(' ')[0]
|
|
|
|
STDRR = UseGamma(OFF_STD,'read','final model fit std. dev. (samples) range:')
|
|
std_rg=STDRR.split(' ')[0]
|
|
|
|
std_az = UseGamma2(OFF_STD,'read','final model fit std. dev. (samples) range:')
|
|
|
|
STR = NM + ' ' + cor_rg + ' ' + cor_az + ' ' + std_rg + ' ' + std_az
|
|
call_str ='echo ' + STR + ' >> ' + STD_TXT
|
|
os.system(call_str)
|
|
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv[1:])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|