Last active
October 6, 2023 06:07
-
-
Save KMarkert/68dc5917bfcd3178f5eddd0d3151a306 to your computer and use it in GitHub Desktop.
This script is used to bulk download SRTM Water Body Data from the USGS over a defined AOI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import glob | |
import urllib2 | |
import numpy as np | |
outFolder = "J:/africa_srtm/org_zip/" #change output path | |
lats = np.arange(-35,33)#change lat bounds | |
lons = np.arange(-18,52)#change lon bounds | |
fList = glob.glob(r'D:\africa_srtm\SWBD_data\org_zip\*.zip') | |
fArr = np.chararray(len(fList),itemsize=8) | |
for f in range(len(fList)): | |
fArr[f] = fList[f].split('\\')[-1][:-4] | |
eastUrl = 'https://dds.cr.usgs.gov/srtm/version2_1/SWBD/SWBDeast/' | |
westUrl = 'https://dds.cr.usgs.gov/srtm/version2_1/SWBD/SWBDwest/' | |
availTiles = [] | |
for i in range(2): | |
if i == 0: | |
baseUrl = eastUrl | |
else: | |
baseUrl = westUrl | |
baseRep = urllib2.urlopen(baseUrl) | |
baseRead = baseRep.read() | |
baseSplit = baseRead.split('href=') | |
baseRep.close() | |
for i in range(len(baseSplit)): | |
if (baseSplit[i][1]=='e') | (baseSplit[i][1]=='w'): | |
availTiles.append(baseSplit[i][1:9]) | |
availTiles = np.array(availTiles) | |
for i in availTiles: | |
x = int(i[1:4]) | |
y = int(i[5:7]) | |
if i[0] == 'e': | |
baseUrl = eastUrl | |
else: | |
baseUrl = westUrl | |
x = x * -1 | |
if i[4] == 's': | |
y = y * -1 | |
if (np.any(lats==y)==True)&(np.any(lons==x)==True): | |
outFile = outFolder + i + '.zip' | |
if os.path.exists(outFile) == False: | |
print 'Downloading tile: {0}'.format(i) | |
fileUrl = baseUrl + i + '.zip' | |
response = urllib2.urlopen(fileurl) | |
output = open(outFile, 'wb') | |
output.write(response.read()) | |
output.close() | |
response.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment