135 lines
4.1 KiB
Python
135 lines
4.1 KiB
Python
#! /usr/bin/env python
|
|
#'''
|
|
##################################################################################
|
|
# #
|
|
# Author: Wei Chen #
|
|
# Email : chenweicug@gmail.com #
|
|
# Date : May,25th 2021 #
|
|
# #
|
|
# Split beam of SLC: backward and forward SLC image generation #
|
|
# #
|
|
##################################################################################
|
|
#'''
|
|
|
|
import numpy as np
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import getopt
|
|
import time
|
|
import glob
|
|
import argparse
|
|
|
|
from pyint import _utils as ut
|
|
|
|
|
|
def get_s1_date(raw_file):
|
|
file0 = os.path.basename(raw_file)
|
|
date = file0[17:25]
|
|
return date
|
|
|
|
def get_satellite(raw_file):
|
|
if 'S1A_IW_SLC_' in raw_file:
|
|
s0 = 'A'
|
|
else:
|
|
s0 = 'B'
|
|
|
|
return s0
|
|
|
|
|
|
def cmdLineParse():
|
|
parser = argparse.ArgumentParser(description='Generate SLC from Sentinel-1 raw data with orbit correction using GAMMA.',\
|
|
formatter_class=argparse.RawTextHelpFormatter,\
|
|
epilog=INTRODUCTION+'\n'+EXAMPLE)
|
|
|
|
parser.add_argument('projectName', help='project name. e.g., ChangningT55S1A')
|
|
parser.add_argument('Mdate',help='date to be processed. e.g., 20180101')
|
|
parser.add_argument('Sdate',help='date to be processed. e.g., 20180113')
|
|
|
|
inps = parser.parse_args()
|
|
|
|
return inps
|
|
|
|
|
|
INTRODUCTION = '''
|
|
-------------------------------------------------------------------
|
|
|
|
Split beam of original SLC to generate sub-aperture SLC: backward- and forward-SLCs
|
|
'''
|
|
|
|
EXAMPLE = """Usage:
|
|
|
|
MAI_SLC_Gamma.py projectName Mdate Sdate
|
|
|
|
MAI_SLC_Gamma.py ChangningT55S1A 20180517 20180529
|
|
|
|
-------------------------------------------------------------------
|
|
"""
|
|
|
|
def main(argv):
|
|
inps = cmdLineParse()
|
|
projectName = inps.projectName
|
|
Mdate = inps.Mdate
|
|
Sdate = inps.Sdate
|
|
scratchDir = os.getenv('SCRATCHDIR')
|
|
projectDir = scratchDir + '/' + projectName
|
|
|
|
templateDir = os.getenv('TEMPLATEDIR')
|
|
templateFile = templateDir + "/" + projectName + ".template"
|
|
templateDict=ut.update_template(templateFile)
|
|
|
|
slcDir = projectDir + '/SLC'
|
|
down_dir = projectDir + '/DOWNLOAD'
|
|
workDir = projectDir + '/MAI'
|
|
|
|
rlks = templateDict['range_looks']
|
|
azlks = templateDict['azimuth_looks']
|
|
Mdate = templateDict['masterDate']
|
|
coregCoarse = templateDict['Coreg_Coarse']
|
|
|
|
if not os.path.isdir(workDir):
|
|
call_str="mkdir " + workDir
|
|
os.system(call_str)
|
|
if 'Squint_MAI' in templateDict: Squint = templateContents['Squint_MAI']
|
|
else: Squint = '0.5'
|
|
|
|
SslcDir = slcDir + "/" + Sdate
|
|
MslcDir = slcDir + "/" + Mdate
|
|
|
|
MslcImg = MslcDir + "/" + Mdate + ".slc"
|
|
MslcPar = MslcDir + "/" + Mdate + ".slc.par"
|
|
SslcImg = SslcDir + "/" + Sdate + ".slc"
|
|
SslcPar = SslcDir + "/" + Sdate + ".slc.par"
|
|
|
|
# split slcs
|
|
|
|
MFslcImg = workDir + "/" + Mdate + ".F.slc"
|
|
MFslcPar = workDir + "/" + Mdate + ".F.slc.par"
|
|
SFslcImg = workDir + "/" + Sdate + ".F.slc"
|
|
SFslcPar = workDir + "/" + Sdate + ".F.slc.par"
|
|
|
|
MBslcImg = workDir + "/" + Mdate + ".B.slc"
|
|
MBslcPar = workDir + "/" + Mdate + ".B.slc.par"
|
|
SBslcImg = workDir + "/" + Sdate + ".B.slc"
|
|
SBslcPar = workDir + "/" + Sdate + ".B.slc.par"
|
|
print(MFslcImg + " "+ MslcImg)
|
|
|
|
# Multi-aperture processing
|
|
|
|
call_str = 'sbi_filt '+ MslcImg + ' ' + MslcPar + ' '+SslcPar + ' ' + MFslcImg + ' '+ MFslcPar + ' ' + MBslcImg + ' ' + MBslcPar + ' ' + Squint
|
|
os.system(call_str)
|
|
print(call_str)
|
|
|
|
call_str = 'sbi_filt '+ SslcImg + ' ' + SslcPar + ' '+MslcPar + ' ' + SFslcImg + ' '+ SFslcPar + ' ' + SBslcImg + ' ' + SBslcPar + ' ' + Squint
|
|
os.system(call_str)
|
|
|
|
sys.exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv[:])
|
|
|
|
|
|
|
|
|
|
|