remove system calls
parent
62e8abe85b
commit
c844d49b48
|
@ -34,16 +34,24 @@ def runDownloadDem(self):
|
||||||
os.makedirs(demDir, exist_ok=True)
|
os.makedirs(demDir, exist_ok=True)
|
||||||
os.chdir(demDir)
|
os.chdir(demDir)
|
||||||
|
|
||||||
downloadUrl = 'http://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/2000.02.11'
|
# downloadUrl = 'http://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/2000.02.11'
|
||||||
cmd = 'dem.py -a stitch -b {} -k -s 1 -c -f -u {}'.format(
|
# cmd = 'dem.py -a stitch -b {} -k -s 1 -c -f -u {}'.format(
|
||||||
bboxStr,
|
# bboxStr,
|
||||||
downloadUrl
|
# downloadUrl
|
||||||
)
|
# )
|
||||||
runCmd(cmd)
|
# runCmd(cmd)
|
||||||
cmd = 'fixImageXml.py -i demLat_*_*_Lon_*_*.dem.wgs84 -f'
|
# cmd = 'fixImageXml.py -i demLat_*_*_Lon_*_*.dem.wgs84 -f'
|
||||||
runCmd(cmd)
|
# runCmd(cmd)
|
||||||
cmd = 'rm *.hgt* *.log demLat_*_*_Lon_*_*.dem demLat_*_*_Lon_*_*.dem.vrt demLat_*_*_Lon_*_*.dem.xml'
|
# cmd = 'rm *.hgt* *.log demLat_*_*_Lon_*_*.dem demLat_*_*_Lon_*_*.dem.vrt demLat_*_*_Lon_*_*.dem.xml'
|
||||||
runCmd(cmd)
|
# runCmd(cmd)
|
||||||
|
|
||||||
|
#replace the above system calls with function calls
|
||||||
|
downloadDem(list(bbox), demType='version3', resolution=1, fillingValue=-32768, outputFile=None, userName=None, passWord=None)
|
||||||
|
imagePathXml((glob.glob('demLat_*_*_Lon_*_*.dem.wgs84'))[0], fullPath=True)
|
||||||
|
filesRemoved = glob.glob('*.hgt*') + glob.glob('*.log') + glob.glob('demLat_*_*_Lon_*_*.dem') + glob.glob('demLat_*_*_Lon_*_*.dem.vrt') + glob.glob('demLat_*_*_Lon_*_*.dem.xml')
|
||||||
|
for filex in filesRemoved:
|
||||||
|
os.remove(filex)
|
||||||
|
|
||||||
os.chdir('../')
|
os.chdir('../')
|
||||||
|
|
||||||
self.dem = glob.glob(os.path.join(demDir, 'demLat_*_*_Lon_*_*.dem.wgs84'))[0]
|
self.dem = glob.glob(os.path.join(demDir, 'demLat_*_*_Lon_*_*.dem.wgs84'))[0]
|
||||||
|
@ -54,16 +62,24 @@ def runDownloadDem(self):
|
||||||
os.makedirs(demGeoDir, exist_ok=True)
|
os.makedirs(demGeoDir, exist_ok=True)
|
||||||
os.chdir(demGeoDir)
|
os.chdir(demGeoDir)
|
||||||
|
|
||||||
downloadUrl = 'http://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/2000.02.11'
|
# downloadUrl = 'http://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/2000.02.11'
|
||||||
cmd = 'dem.py -a stitch -b {} -k -s 3 -c -f -u {}'.format(
|
# cmd = 'dem.py -a stitch -b {} -k -s 3 -c -f -u {}'.format(
|
||||||
bboxStr,
|
# bboxStr,
|
||||||
downloadUrl
|
# downloadUrl
|
||||||
)
|
# )
|
||||||
runCmd(cmd)
|
# runCmd(cmd)
|
||||||
cmd = 'fixImageXml.py -i demLat_*_*_Lon_*_*.dem.wgs84 -f'
|
# cmd = 'fixImageXml.py -i demLat_*_*_Lon_*_*.dem.wgs84 -f'
|
||||||
runCmd(cmd)
|
# runCmd(cmd)
|
||||||
cmd = 'rm *.hgt* *.log demLat_*_*_Lon_*_*.dem demLat_*_*_Lon_*_*.dem.vrt demLat_*_*_Lon_*_*.dem.xml'
|
# cmd = 'rm *.hgt* *.log demLat_*_*_Lon_*_*.dem demLat_*_*_Lon_*_*.dem.vrt demLat_*_*_Lon_*_*.dem.xml'
|
||||||
runCmd(cmd)
|
# runCmd(cmd)
|
||||||
|
|
||||||
|
#replace the above system calls with function calls
|
||||||
|
downloadDem(list(bbox), demType='version3', resolution=3, fillingValue=-32768, outputFile=None, userName=None, passWord=None)
|
||||||
|
imagePathXml((glob.glob('demLat_*_*_Lon_*_*.dem.wgs84'))[0], fullPath=True)
|
||||||
|
filesRemoved = glob.glob('*.hgt*') + glob.glob('*.log') + glob.glob('demLat_*_*_Lon_*_*.dem') + glob.glob('demLat_*_*_Lon_*_*.dem.vrt') + glob.glob('demLat_*_*_Lon_*_*.dem.xml')
|
||||||
|
for filex in filesRemoved:
|
||||||
|
os.remove(filex)
|
||||||
|
|
||||||
os.chdir('../')
|
os.chdir('../')
|
||||||
|
|
||||||
self.demGeo = glob.glob(os.path.join(demGeoDir, 'demLat_*_*_Lon_*_*.dem.wgs84'))[0]
|
self.demGeo = glob.glob(os.path.join(demGeoDir, 'demLat_*_*_Lon_*_*.dem.wgs84'))[0]
|
||||||
|
@ -77,10 +93,17 @@ def runDownloadDem(self):
|
||||||
#cmd = 'wbd.py {}'.format(bboxStr)
|
#cmd = 'wbd.py {}'.format(bboxStr)
|
||||||
#runCmd(cmd)
|
#runCmd(cmd)
|
||||||
download_wbd(np.int(np.floor(bbox[0])), np.int(np.ceil(bbox[1])), np.int(np.floor(bbox[2])), np.int(np.ceil(bbox[3])))
|
download_wbd(np.int(np.floor(bbox[0])), np.int(np.ceil(bbox[1])), np.int(np.floor(bbox[2])), np.int(np.ceil(bbox[3])))
|
||||||
cmd = 'fixImageXml.py -i swbdLat_*_*_Lon_*_*.wbd -f'
|
#cmd = 'fixImageXml.py -i swbdLat_*_*_Lon_*_*.wbd -f'
|
||||||
runCmd(cmd)
|
#runCmd(cmd)
|
||||||
cmd = 'rm *.log'
|
#cmd = 'rm *.log'
|
||||||
runCmd(cmd)
|
#runCmd(cmd)
|
||||||
|
|
||||||
|
#replace the above system calls with function calls
|
||||||
|
imagePathXml((glob.glob('swbdLat_*_*_Lon_*_*.wbd'))[0], fullPath=True)
|
||||||
|
filesRemoved = glob.glob('*.log')
|
||||||
|
for filex in filesRemoved:
|
||||||
|
os.remove(filex)
|
||||||
|
|
||||||
os.chdir('../')
|
os.chdir('../')
|
||||||
|
|
||||||
self.wbd = glob.glob(os.path.join(wbdDir, 'swbdLat_*_*_Lon_*_*.wbd'))[0]
|
self.wbd = glob.glob(os.path.join(wbdDir, 'swbdLat_*_*_Lon_*_*.wbd'))[0]
|
||||||
|
@ -94,6 +117,54 @@ def runDownloadDem(self):
|
||||||
self._insar.procDoc.addAllFromCatalog(catalog)
|
self._insar.procDoc.addAllFromCatalog(catalog)
|
||||||
|
|
||||||
|
|
||||||
|
def downloadDem(bbox, demType='version3', resolution=1, fillingValue=-32768, outputFile=None, userName=None, passWord=None):
|
||||||
|
'''
|
||||||
|
bbox: [s, n, w, e]
|
||||||
|
demType: can be 'version3' or 'nasadem'. nasadem is also tested.
|
||||||
|
resolution: 1 or 3, NASADEM only available in 1-arc sec resolution
|
||||||
|
'''
|
||||||
|
import numpy as np
|
||||||
|
import isceobj
|
||||||
|
from contrib.demUtils import createDemStitcher
|
||||||
|
|
||||||
|
ds = createDemStitcher(demType)
|
||||||
|
ds.configure()
|
||||||
|
|
||||||
|
if demType == 'version3':
|
||||||
|
if resolution == 1:
|
||||||
|
ds._url1 = 'http://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/2000.02.11'
|
||||||
|
else:
|
||||||
|
ds._url3 = 'http://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL3.003/2000.02.11'
|
||||||
|
elif demType == 'nasadem':
|
||||||
|
resolution = 1
|
||||||
|
#this url is included in the module
|
||||||
|
#ds._url1 = 'http://e4ftl01.cr.usgs.gov/MEASURES/NASADEM_HGT.001/2000.02.11'
|
||||||
|
else:
|
||||||
|
raise Exception('unknown DEM type, currently supported DEM types: version3 and nasadem')
|
||||||
|
|
||||||
|
ds.setUsername(userName)
|
||||||
|
ds.setPassword(passWord)
|
||||||
|
|
||||||
|
ds._keepAfterFailed = True
|
||||||
|
ds.setCreateXmlMetadata(True)
|
||||||
|
ds.setUseLocalDirectory(False)
|
||||||
|
ds.setFillingValue(fillingValue)
|
||||||
|
ds.setFilling()
|
||||||
|
|
||||||
|
bbox = [np.int(np.floor(bbox[0])), np.int(np.ceil(bbox[1])), np.int(np.floor(bbox[2])), np.int(np.ceil(bbox[3]))]
|
||||||
|
if outputFile==None:
|
||||||
|
outputFile = ds.defaultName(bbox)
|
||||||
|
|
||||||
|
if not(ds.stitchDems(bbox[0:2],bbox[2:4],resolution,outputFile,'./',keep=True)):
|
||||||
|
print('Could not create a stitched DEM. Some tiles are missing')
|
||||||
|
else:
|
||||||
|
#Apply correction EGM96 -> WGS84
|
||||||
|
demImg = ds.correct()
|
||||||
|
|
||||||
|
#report downloads
|
||||||
|
for k,v in list(ds._downloadReport.items()):
|
||||||
|
print(k,'=',v)
|
||||||
|
|
||||||
|
|
||||||
def download_wbd(s, n, w, e):
|
def download_wbd(s, n, w, e):
|
||||||
'''
|
'''
|
||||||
|
@ -199,3 +270,21 @@ def download_wbd(s, n, w, e):
|
||||||
|
|
||||||
|
|
||||||
return outputFile
|
return outputFile
|
||||||
|
|
||||||
|
|
||||||
|
def imagePathXml(imageFile, fullPath=True):
|
||||||
|
import os
|
||||||
|
import isceobj
|
||||||
|
from isceobj.Util.ImageUtil import ImageLib as IML
|
||||||
|
|
||||||
|
img = IML.loadImage(imageFile)[0]
|
||||||
|
|
||||||
|
dirname = os.path.dirname(imageFile)
|
||||||
|
if fullPath:
|
||||||
|
fname = os.path.abspath( os.path.join(dirname, os.path.basename(imageFile)))
|
||||||
|
else:
|
||||||
|
fname = os.path.basename(imageFile)
|
||||||
|
|
||||||
|
img.filename = fname
|
||||||
|
img.setAccessMode('READ')
|
||||||
|
img.renderHdr()
|
||||||
|
|
|
@ -50,8 +50,21 @@ def runLook(self):
|
||||||
create_xml(self._insar.multilookLongitude, width2, length2, 'double')
|
create_xml(self._insar.multilookLongitude, width2, length2, 'double')
|
||||||
create_xml(self._insar.multilookHeight, width2, length2, 'double')
|
create_xml(self._insar.multilookHeight, width2, length2, 'double')
|
||||||
#los has two bands, use look program in isce instead
|
#los has two bands, use look program in isce instead
|
||||||
cmd = "looks.py -i {} -o {} -r {} -a {}".format(self._insar.los, self._insar.multilookLos, self._insar.numberRangeLooks2, self._insar.numberAzimuthLooks2)
|
#cmd = "looks.py -i {} -o {} -r {} -a {}".format(self._insar.los, self._insar.multilookLos, self._insar.numberRangeLooks2, self._insar.numberAzimuthLooks2)
|
||||||
runCmd(cmd)
|
#runCmd(cmd)
|
||||||
|
|
||||||
|
#replace the above system call with function call
|
||||||
|
from mroipac.looks.Looks import Looks
|
||||||
|
from isceobj.Image import createImage
|
||||||
|
inImage = createImage()
|
||||||
|
inImage.load(self._insar.los+'.xml')
|
||||||
|
|
||||||
|
lkObj = Looks()
|
||||||
|
lkObj.setDownLooks(self._insar.numberAzimuthLooks2)
|
||||||
|
lkObj.setAcrossLooks(self._insar.numberRangeLooks2)
|
||||||
|
lkObj.setInputImage(inImage)
|
||||||
|
lkObj.setOutputFilename(self._insar.multilookLos)
|
||||||
|
lkObj.looks()
|
||||||
|
|
||||||
#water body
|
#water body
|
||||||
#this looking operation has no problems where there is only water and land, but there is also possible no-data area
|
#this looking operation has no problems where there is only water and land, but there is also possible no-data area
|
||||||
|
|
Loading…
Reference in New Issue