* Update README.md * Update runTopo.py * Update rtcApp.py * Update runNormalize.py * Update SConscriptLT1AB
parent
4282bb8e0a
commit
fb7ad09211
|
@ -630,13 +630,16 @@ The inputs are Sentinel GRD zipfiles
|
||||||
<rtcApp>
|
<rtcApp>
|
||||||
<constant name="dir">/Users/data/sentinel1 </constant>
|
<constant name="dir">/Users/data/sentinel1 </constant>
|
||||||
<component name="rtcApp">
|
<component name="rtcApp">
|
||||||
<property name="posting">20</property>
|
|
||||||
<property name="sensor name">sentinel1</property>
|
<property name="sensor name">sentinel1</property>
|
||||||
|
<property name="posting">100</property>
|
||||||
|
<property name="polarizations">[VV, VH]</property>
|
||||||
|
<property name="epsg id">32618</property>
|
||||||
|
<property name="geocode spacing">100</property>
|
||||||
|
<property name="geocode interpolation method">bilinear</property>
|
||||||
<component name="master">
|
<component name="master">
|
||||||
<property name="safe">$dir$/rtcApp/data/S1A_IW_GRDH_1SDV_20181221T225104_20181221T225129_025130_02C664_B46C.zip</property>
|
<property name="safe">$dir$/rtcApp/data/S1A_IW_GRDH_1SDV_20181221T225104_20181221T225129_025130_02C664_B46C.zip</property>
|
||||||
<property name="orbit directory">$dir$/orbits</property>
|
<property name="orbit directory">$dir$/orbits</property>
|
||||||
<property name="output directory">$dir$/rtcApp/output</property>
|
<property name="output directory">$dir$/rtcApp/output</property>
|
||||||
<property name="polarization">[VV, VH]</property>
|
|
||||||
</component>
|
</component>
|
||||||
</component>
|
</component>
|
||||||
</rtcApp>
|
</rtcApp>
|
||||||
|
|
|
@ -59,6 +59,7 @@ listFiles = ['mdx.py',
|
||||||
# 'extractHDROrbit.py',
|
# 'extractHDROrbit.py',
|
||||||
# 'formSLC.py',
|
# 'formSLC.py',
|
||||||
# 'viewMetadata.py',
|
# 'viewMetadata.py',
|
||||||
|
'rtcApp.py',
|
||||||
'make_raw.py',
|
'make_raw.py',
|
||||||
'__init__.py',
|
'__init__.py',
|
||||||
'isceApp.py',
|
'isceApp.py',
|
||||||
|
|
|
@ -100,6 +100,28 @@ GEOCODE_BOX = Application.Parameter(
|
||||||
doc='Bounding box for geocoding - South, North, West, East in degrees'
|
doc='Bounding box for geocoding - South, North, West, East in degrees'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
EPSG = Application.Parameter(
|
||||||
|
'epsg',
|
||||||
|
public_name='epsg id',
|
||||||
|
default = '',
|
||||||
|
type=str,
|
||||||
|
doc='epsg code for roi'
|
||||||
|
)
|
||||||
|
|
||||||
|
GSPACING = Application.Parameter('gspacing',
|
||||||
|
public_name='geocode spacing',
|
||||||
|
default = 100.0,
|
||||||
|
type = float,
|
||||||
|
doc = 'Desired grid spacing of geocoded product in meters, in the specified UTM grid.'
|
||||||
|
)
|
||||||
|
|
||||||
|
INTMETHOD = Application.Parameter('intmethod',
|
||||||
|
public_name='geocode interpolation method',
|
||||||
|
default = 'bilinear',
|
||||||
|
type = str,
|
||||||
|
doc = 'Desired grid spacing of geocoded product in meters, in the specified UTM grid.'
|
||||||
|
)
|
||||||
|
|
||||||
PICKLE_DUMPER_DIR = Application.Parameter(
|
PICKLE_DUMPER_DIR = Application.Parameter(
|
||||||
'pickleDumpDir',
|
'pickleDumpDir',
|
||||||
public_name='pickle dump directory',
|
public_name='pickle dump directory',
|
||||||
|
@ -149,10 +171,10 @@ NUMBER_RANGE_LOOKS = Application.Parameter('numberRangeLooks',
|
||||||
|
|
||||||
POSTING = Application.Parameter('posting',
|
POSTING = Application.Parameter('posting',
|
||||||
public_name='posting',
|
public_name='posting',
|
||||||
default = 20.0,
|
default = 10.0,
|
||||||
type = float,
|
type = float,
|
||||||
mandatory = False,
|
mandatory = False,
|
||||||
doc = 'Posting of data used to determine looks')
|
doc = 'Posting of data. This can be any integer multiple of the product resolution. Used to determine looks')
|
||||||
|
|
||||||
POLARIZATIONS = Application.Parameter('polarizations',
|
POLARIZATIONS = Application.Parameter('polarizations',
|
||||||
public_name='polarizations',
|
public_name='polarizations',
|
||||||
|
@ -215,6 +237,9 @@ class GRDSAR(Application):
|
||||||
NUMBER_RANGE_LOOKS,
|
NUMBER_RANGE_LOOKS,
|
||||||
POSTING,
|
POSTING,
|
||||||
GEOCODE_BOX,
|
GEOCODE_BOX,
|
||||||
|
EPSG,
|
||||||
|
GSPACING,
|
||||||
|
INTMETHOD,
|
||||||
PICKLE_DUMPER_DIR,
|
PICKLE_DUMPER_DIR,
|
||||||
PICKLE_LOAD_DIR,
|
PICKLE_LOAD_DIR,
|
||||||
RENDERER,
|
RENDERER,
|
||||||
|
@ -357,7 +382,7 @@ class GRDSAR(Application):
|
||||||
self.multilook = RtcProc.createLooks(self)
|
self.multilook = RtcProc.createLooks(self)
|
||||||
self.runTopo = RtcProc.createTopo(self)
|
self.runTopo = RtcProc.createTopo(self)
|
||||||
self.runNormalize = RtcProc.createNormalize(self)
|
self.runNormalize = RtcProc.createNormalize(self)
|
||||||
# self.runGeocode = RtcProc.createGeocode(self)
|
self.runGeocode = RtcProc.createGeocode(self)
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -390,8 +415,8 @@ class GRDSAR(Application):
|
||||||
self.step('normalize', func=self.runNormalize)
|
self.step('normalize', func=self.runNormalize)
|
||||||
|
|
||||||
# Geocode
|
# Geocode
|
||||||
# self.step('geocode', func=self.runGeocode,
|
self.step('geocode', func=self.runGeocode,
|
||||||
# args=(self.geocode_list, self.do_unwrap, self.geocode_bbox))
|
args=(self.geocode_list, self.geocode_bbox))
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -417,12 +442,8 @@ class GRDSAR(Application):
|
||||||
##Run normalize to get gamma0
|
##Run normalize to get gamma0
|
||||||
self.runNormalize()
|
self.runNormalize()
|
||||||
|
|
||||||
###Compute covariance
|
|
||||||
# self.runEstimateCovariance()
|
|
||||||
|
|
||||||
# Geocode
|
# Geocode
|
||||||
# self.runGeocode(self.geocode_list, self.do_unwrap, self.geocode_bbox)
|
self.runGeocode()
|
||||||
|
|
||||||
|
|
||||||
timeEnd = time.time()
|
timeEnd = time.time()
|
||||||
logger.info("Total Time: %i seconds" %(timeEnd - timeStart))
|
logger.info("Total Time: %i seconds" %(timeEnd - timeStart))
|
||||||
|
|
|
@ -47,5 +47,5 @@ createVerifyDEM = _factory("runVerifyDEM")
|
||||||
createLooks = _factory("runLooks")
|
createLooks = _factory("runLooks")
|
||||||
createTopo = _factory("runTopo")
|
createTopo = _factory("runTopo")
|
||||||
createNormalize = _factory("runNormalize")
|
createNormalize = _factory("runNormalize")
|
||||||
#createGeocode = _factory("runGeocode")
|
createGeocode = _factory("runGeocode")
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ project = 'RtcProc'
|
||||||
|
|
||||||
install = os.path.join(envisceobj['PRJ_SCONS_INSTALL'],package,project)
|
install = os.path.join(envisceobj['PRJ_SCONS_INSTALL'],package,project)
|
||||||
|
|
||||||
listFiles = ['__init__.py', 'Factories.py', 'RtcProc.py', 'runPreprocessor.py', 'runVerifyDEM.py', 'runLooks.py', 'runTopo.py']
|
listFiles = ['__init__.py', 'Factories.py', 'RtcProc.py', 'runPreprocessor.py', 'runVerifyDEM.py', 'runLooks.py', 'runNormalize.py', 'runTopo.py', 'runGeocode.py']
|
||||||
|
|
||||||
envisceobj.Install(install,listFiles)
|
envisceobj.Install(install,listFiles)
|
||||||
envisceobj.Alias('install',install)
|
envisceobj.Alias('install',install)
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# coding: utf-8
|
||||||
|
# Author: Simon Kraatz
|
||||||
|
# Copyright 2016
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import isceobj
|
||||||
|
import os
|
||||||
|
import numpy as np
|
||||||
|
from isceobj.Util.decorators import use_api
|
||||||
|
from osgeo import gdal, ogr, osr
|
||||||
|
|
||||||
|
logger = logging.getLogger('isce.grdsar.looks')
|
||||||
|
|
||||||
|
def runGeocode(self):
|
||||||
|
'''
|
||||||
|
Geocode a swath file using corresponding lat, lon files
|
||||||
|
'''
|
||||||
|
sourcexmltmpl = ''' <SimpleSource>
|
||||||
|
<SourceFilename>{0}</SourceFilename>
|
||||||
|
<SourceBand>{1}</SourceBand>
|
||||||
|
</SimpleSource>'''
|
||||||
|
|
||||||
|
gcl = [f for f in os.listdir(self._grd.outputFolder) if f.startswith('gamma') and f.endswith('.vrt')]
|
||||||
|
a, b = os.path.split(self._grd.outputFolder)
|
||||||
|
latfile = os.path.join(a,self._grd.geometryFolder,'lat.rdr.vrt')
|
||||||
|
lonfile = os.path.join(a,self._grd.geometryFolder,'lon.rdr.vrt')
|
||||||
|
|
||||||
|
outsrs = 'EPSG:'+str(self.epsg)
|
||||||
|
gspacing = self.gspacing
|
||||||
|
method = self.intmethod
|
||||||
|
insrs = 4326
|
||||||
|
fmt = 'GTiff'
|
||||||
|
fl = len(gcl)
|
||||||
|
|
||||||
|
for num, val in enumerate(gcl):
|
||||||
|
print('****Geocoding file %s out of %s: %s****' %(num+1, fl, val))
|
||||||
|
infile = os.path.join(a, self._grd.outputFolder, val)
|
||||||
|
outfile = os.path.join(a, self._grd.outputFolder, val[:-3]+'tif')
|
||||||
|
|
||||||
|
driver = gdal.GetDriverByName('VRT')
|
||||||
|
tempvrtname = os.path.join(a, self._grd.outputFolder, 'geocode.vrt')
|
||||||
|
|
||||||
|
inds = gdal.OpenShared(infile, gdal.GA_ReadOnly)
|
||||||
|
tempds = driver.Create(tempvrtname, inds.RasterXSize, inds.RasterYSize, 0)
|
||||||
|
|
||||||
|
for ii in range(inds.RasterCount):
|
||||||
|
band = inds.GetRasterBand(1)
|
||||||
|
tempds.AddBand(band.DataType)
|
||||||
|
tempds.GetRasterBand(ii+1).SetMetadata({'source_0': sourcexmltmpl.format(infile, ii+1)}, 'vrt_sources')
|
||||||
|
|
||||||
|
sref = osr.SpatialReference()
|
||||||
|
sref.ImportFromEPSG(insrs)
|
||||||
|
srswkt = sref.ExportToWkt()
|
||||||
|
|
||||||
|
tempds.SetMetadata({'SRS' : srswkt,
|
||||||
|
'X_DATASET': lonfile,
|
||||||
|
'X_BAND' : '1',
|
||||||
|
'Y_DATASET': latfile,
|
||||||
|
'Y_BAND' : '1',
|
||||||
|
'PIXEL_OFFSET' : '0',
|
||||||
|
'LINE_OFFSET' : '0',
|
||||||
|
'PIXEL_STEP' : '1',
|
||||||
|
'LINE_STEP' : '1'}, 'GEOLOCATION')
|
||||||
|
|
||||||
|
band = None
|
||||||
|
tempds = None
|
||||||
|
inds = None
|
||||||
|
bounds = None
|
||||||
|
|
||||||
|
spacing = [gspacing, gspacing]
|
||||||
|
|
||||||
|
warpOptions = gdal.WarpOptions(format=fmt,
|
||||||
|
xRes=spacing[0], yRes=spacing[1],
|
||||||
|
dstSRS=outsrs,
|
||||||
|
outputBounds = bounds,
|
||||||
|
resampleAlg=method, geoloc=True)
|
||||||
|
gdal.Warp(outfile, tempvrtname, options=warpOptions)
|
||||||
|
|
||||||
|
return
|
|
@ -110,4 +110,3 @@ def runSimamp(outdir, hname='z.rdr'):
|
||||||
hgtImage.finalizeImage()
|
hgtImage.finalizeImage()
|
||||||
simImage.finalizeImage()
|
simImage.finalizeImage()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue