160 lines
6.7 KiB
Python
160 lines
6.7 KiB
Python
#! /usr/bin/env python
|
|
#################################################################
|
|
### This program is part of PyINT v2.1 ###
|
|
### Purpose: loading PyINT products for mintPy ###
|
|
### Copy Right (c): 2019, Yunmeng Cao ###
|
|
### Author : Yunmeng Cao ###
|
|
### Contact : ymcmrs@gmail.com ###
|
|
#################################################################
|
|
|
|
import numpy as np
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import time
|
|
import argparse
|
|
import glob
|
|
|
|
from pyint import _utils as ut
|
|
|
|
def write_template(str0,templateFile):
|
|
with open(templateFile, 'a') as f:
|
|
f.write(str0 + '\n')
|
|
return
|
|
|
|
def cmdLineParse():
|
|
parser = argparse.ArgumentParser(description='Loading pyint products for mintPy time-series analysis.',\
|
|
formatter_class=argparse.RawTextHelpFormatter,\
|
|
epilog=INTRODUCTION+'\n'+EXAMPLE)
|
|
|
|
parser.add_argument('projectName', help='name of the project.')
|
|
#parser.add_argument('--data-type', dest='dataType', type=str, default='big_endian',choices={'big_endian', 'little_endian'},help='data type, big endian or little endian. [default: big_endian]')
|
|
inps = parser.parse_args()
|
|
|
|
return inps
|
|
|
|
|
|
INTRODUCTION = '''
|
|
-----------------------------------------------------------------
|
|
Loading pyint products for mintPy time-series analysis.
|
|
|
|
'''
|
|
|
|
EXAMPLE = """Usage:
|
|
|
|
load_mintpy.py projectName
|
|
-----------------------------------------------------------------
|
|
"""
|
|
|
|
def main(argv):
|
|
|
|
inps = cmdLineParse()
|
|
projectName = inps.projectName
|
|
scratchDir = os.getenv('SCRATCHDIR')
|
|
scratchDir0 = os.getenv('SCRATCHDIR0')
|
|
projectDir = scratchDir + '/' + projectName
|
|
projectDir0 = scratchDir0 + '/' + projectName
|
|
demDir = scratchDir + '/' + projectName + '/DEM'
|
|
rslcDir = scratchDir + '/' + projectName + '/RSLC'
|
|
|
|
ifgDir = projectDir + '/ifgrams'
|
|
#unwFile = projectDir + '/ifgrams/*/2*rlks.diff_filt.unw' # considering geocode unw file
|
|
unwFile = projectDir + '/ifgrams/*/diff_filt_*.unw' # considering geocode unw file
|
|
corFile = projectDir + '/ifgrams/*/diff_filt_*rlks.cor'
|
|
#corFile = projectDir + '/ifgrams/*/filt_*.cor'
|
|
print(unwFile)
|
|
templateDir = os.getenv('TEMPLATEDIR')
|
|
templateFile = templateDir + "/" + projectName + ".template"
|
|
templateDict=ut.update_template(templateFile)
|
|
|
|
rlks = templateDict['range_looks']
|
|
azlks = templateDict['azimuth_looks']
|
|
masterDate = templateDict['masterDate']
|
|
MampPar = rslcDir + '/' + masterDate + '/' + masterDate + '_' + rlks + 'rlks.amp.par'
|
|
date_list = ut.get_project_slcList(projectName)
|
|
date_list = sorted(date_list)
|
|
slc_par_list = [rslcDir + '/' + date0 + '/' + date0 + '.rlsc.par' for date0 in date_list ]
|
|
ifgdir_list = glob.glob(ifgDir + '/*')
|
|
for k0 in ifgdir_list:
|
|
pair0 = os.path.basename(k0)
|
|
#print(pair0)
|
|
m0 = pair0.split('-')[0]
|
|
s0 = pair0.split('-')[1]
|
|
|
|
workDir = k0
|
|
mamppar0 = rslcDir + '/' + m0 + '/' + m0 + '_' + rlks + 'rlks.amp.par'
|
|
samppar0 = rslcDir + '/' + s0 + '/' + s0 + '_' + rlks + 'rlks.amp.par'
|
|
mrslcpar0 = rslcDir + '/' + m0 + '/' + m0 + '.rslc.par'
|
|
srslcpar0 = rslcDir + '/' + s0 + '/' + s0 + '.rslc.par'
|
|
|
|
mamppar = workDir + '/' + m0 + '_' + rlks + 'rlks.amp.par'
|
|
samppar = workDir + '/' + s0 + '_' + rlks + 'rlks.amp.par'
|
|
mrslcpar = workDir + '/' + m0 + '.rslc.par'
|
|
srslcpar = workDir + '/' + s0 + '.rslc.par'
|
|
|
|
ut.copy_file(mamppar0, mamppar)
|
|
ut.copy_file(samppar0, samppar)
|
|
ut.copy_file(mrslcpar0,mrslcpar)
|
|
ut.copy_file(srslcpar0,srslcpar)
|
|
|
|
#unw_list = glob.glob(ifgDir + '/*/*rlks.diff_filt.unw')
|
|
#cor_list = glob.glob(ifgDir + '/*/*rlks.diff_filt.cor')
|
|
|
|
dem_geo = glob.glob(demDir + '/*rlks.utm.dem')[0]
|
|
geo_par = glob.glob(demDir + '/*rlks.utm.dem.par')[0]
|
|
|
|
dem_rdc = glob.glob(demDir + '/*_' + rlks + 'rlks.rdc.dem')[0]
|
|
rdc_par = glob.glob(demDir + '/*_' + rlks + 'rlks.diff_par')[0] # diff_par
|
|
lt = glob.glob(demDir + '/*_' + rlks + 'rlks.UTM_TO_RDC')[0]
|
|
|
|
strPro = 'mintpy.load.processor = gamma'
|
|
strUNW = "mintpy.load.unwFile = " + unwFile
|
|
strCOR = 'mintpy.load.corFile = ' + corFile
|
|
strCon = 'mintpy.load.connCompFile = auto'
|
|
strInt = 'mintpy.load.intFile = auto'
|
|
strIon = 'mintpy.load.ionoFile = auto'
|
|
|
|
strDem = 'mintpy.load.demFile = ' + dem_rdc
|
|
strDemGeo = 'mintpy.load.demFile = ' + dem_geo
|
|
strLtY = 'mintpy.load.lookupYFile = ' + lt
|
|
strLtX = 'mintpy.load.lookupXFile = ' + lt
|
|
strInc = 'mintpy.load.incAngleFile = auto'
|
|
strAza = 'mintpy.load.azAngleFile = auto'
|
|
strSha = 'mintpy.load.shadowMaskFile = auto'
|
|
strWat = 'mintpy.load.waterMaskFile = auto'
|
|
strBrp = 'mintpy.load.bperpFile = auto'
|
|
|
|
templateFile0 = projectDir + '/mintpy.template'
|
|
|
|
if 'mintpy.load.processor' not in templateDict: write_template(strPro,templateFile0)
|
|
if 'mintpy.load.unwFile' not in templateDict: write_template(strUNW,templateFile0)
|
|
if 'mintpy.load.corFile' not in templateDict: write_template(strCOR,templateFile0)
|
|
if 'mintpy.load.demFile' not in templateDict: write_template(strDem,templateFile0)
|
|
if 'mintpy.load.lookupYFile' not in templateDict: write_template(strLtY,templateFile0)
|
|
if 'mintpy.load.lookupXFile' not in templateDict: write_template(strLtX,templateFile0)
|
|
|
|
if 'mintpy.load.connCompFile' not in templateDict: write_template(strCon,templateFile0)
|
|
if 'mintpy.load.intFile' not in templateDict: write_template(strInt,templateFile0)
|
|
if 'mintpy.load.ionoFile' not in templateDict: write_template(strIon,templateFile0)
|
|
|
|
if 'mintpy.load.incAngleFile' not in templateDict: write_template(strInc,templateFile0)
|
|
if 'mintpy.load.azAngleFile' not in templateDict: write_template(strAza,templateFile0)
|
|
if 'mintpy.load.shadowMaskFile' not in templateDict: write_template(strSha,templateFile0)
|
|
if 'mintpy.load.waterMaskFile' not in templateDict: write_template(strWat,templateFile0)
|
|
if 'mintpy.load.bperpFile' not in templateDict: write_template(strBrp,templateFile0)
|
|
|
|
os.chdir(projectDir0)
|
|
call_str = 'load_data.py -t ' + templateFile0
|
|
os.system(call_str)
|
|
|
|
os.chdir(projectDir0)
|
|
write_template(strDemGeo,templateFile0)
|
|
call_str = 'load_data.py -t ' + templateFile0
|
|
os.system(call_str)
|
|
|
|
sys.exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv[:])
|
|
|