add fine.unw to remove the effect of filtering
parent
97b7800fda
commit
dc97d160a4
|
@ -38,9 +38,11 @@ from isceobj.Constants import SPEED_OF_LIGHT
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import pickle
|
import pickle
|
||||||
import sys
|
import gdal
|
||||||
|
import numpy as np
|
||||||
#import shelve
|
#import shelve
|
||||||
import s1a_isce_utils as ut
|
import s1a_isce_utils as ut
|
||||||
|
from isceobj.Util.ImageUtil import ImageLib as IML
|
||||||
|
|
||||||
def createParser():
|
def createParser():
|
||||||
'''
|
'''
|
||||||
|
@ -70,6 +72,9 @@ def createParser():
|
||||||
parser.add_argument('-m', '--method', dest='method', type=str, default='icu',
|
parser.add_argument('-m', '--method', dest='method', type=str, default='icu',
|
||||||
help='unwrapping method')
|
help='unwrapping method')
|
||||||
|
|
||||||
|
parser.add_argument('--rmfilter', action='store_true', default=False,
|
||||||
|
help='remove the effect of filtering from final unwrapped interferograms')
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
|
||||||
|
@ -276,6 +281,53 @@ def runUnwrapIcu(infile, outfile):
|
||||||
#unwImage.finalizeImage()
|
#unwImage.finalizeImage()
|
||||||
unwImage.renderHdr()
|
unwImage.renderHdr()
|
||||||
|
|
||||||
|
|
||||||
|
def remove_filter(intfile, filtfile, unwfile):
|
||||||
|
|
||||||
|
outunw = os.path.abspath(unwfile).split('filt_')
|
||||||
|
outunw = outunw[0] + outunw[1]
|
||||||
|
|
||||||
|
ds_unw = gdal.Open(unwfile + ".vrt", gdal.GA_ReadOnly)
|
||||||
|
unw_phase = ds_unw.ReadAsArray()
|
||||||
|
|
||||||
|
bands, length, width = unw_phase.shape
|
||||||
|
print(bands, length, width)
|
||||||
|
outfile = IML.memmap(outunw, mode='write', nchannels=2,
|
||||||
|
nxx=width, nyy=length, scheme='BIL', dataType='f')
|
||||||
|
|
||||||
|
outfile.bands[0][:, :] = unw_phase[0, :, :]
|
||||||
|
|
||||||
|
ds_filt = gdal.Open(filtfile + ".vrt", gdal.GA_ReadOnly)
|
||||||
|
filt_phase = np.angle(ds_filt.ReadAsArray())
|
||||||
|
|
||||||
|
integer_jumps = unw_phase[1, :, :] - filt_phase
|
||||||
|
|
||||||
|
del unw_phase, filt_phase
|
||||||
|
|
||||||
|
ds_int = gdal.Open(intfile + ".vrt", gdal.GA_ReadOnly)
|
||||||
|
int_phase = np.angle(ds_int.ReadAsArray())
|
||||||
|
|
||||||
|
out_phase = integer_jumps + int_phase
|
||||||
|
|
||||||
|
del int_phase, integer_jumps
|
||||||
|
|
||||||
|
outfile.bands[1][:, :] = out_phase[:, :]
|
||||||
|
|
||||||
|
unwImage = isceobj.Image.createImage()
|
||||||
|
unwImage.setFilename(outunw)
|
||||||
|
unwImage.setWidth(width)
|
||||||
|
unwImage.setLength(length)
|
||||||
|
unwImage.imageType = 'unw'
|
||||||
|
unwImage.bands = 2
|
||||||
|
unwImage.scheme = 'BIL'
|
||||||
|
unwImage.dataType = 'FLOAT'
|
||||||
|
unwImage.setAccessMode('read')
|
||||||
|
#unwImage.createImage()
|
||||||
|
unwImage.renderHdr()
|
||||||
|
#unwImage.finalizeImage()
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
def main(iargs=None):
|
def main(iargs=None):
|
||||||
'''
|
'''
|
||||||
The main driver.
|
The main driver.
|
||||||
|
@ -284,6 +336,7 @@ def main(iargs=None):
|
||||||
inps = cmdLineParse(iargs)
|
inps = cmdLineParse(iargs)
|
||||||
interferogramDir = os.path.dirname(inps.intfile)
|
interferogramDir = os.path.dirname(inps.intfile)
|
||||||
print ('unwrapping method : ' , inps.method)
|
print ('unwrapping method : ' , inps.method)
|
||||||
|
'''
|
||||||
if inps.method == 'snaphu':
|
if inps.method == 'snaphu':
|
||||||
if inps.nomcf:
|
if inps.nomcf:
|
||||||
fncall = runUnwrap
|
fncall = runUnwrap
|
||||||
|
@ -297,6 +350,14 @@ def main(iargs=None):
|
||||||
|
|
||||||
elif inps.method == 'icu':
|
elif inps.method == 'icu':
|
||||||
runUnwrapIcu(inps.intfile, inps.unwfile)
|
runUnwrapIcu(inps.intfile, inps.unwfile)
|
||||||
|
'''
|
||||||
|
|
||||||
|
if inps.rmfilter:
|
||||||
|
filtfile = os.path.abspath(inps.intfile)
|
||||||
|
intfile = filtfile.split('filt_')
|
||||||
|
intfile = intfile[0] + intfile[1]
|
||||||
|
|
||||||
|
remove_filter(intfile, filtfile, inps.unwfile)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Reference in New Issue