import urllib.request import zipfile import os import sys SRTM_DIR = '/home/slin/enduro-trails/data/srtm' BASE_URL = 'https://srtm.kurviger.de/SRTM3/Eurasia' tiles = [] for lat in [54, 55, 56]: for lon in range(41, 47): tiles.append(f'N{lat}E{lon:03d}') os.chdir(SRTM_DIR) count = 0 for tile in tiles: hgt = f'{tile}.hgt' if os.path.exists(hgt): print(f' EXISTS: {hgt}') continue url = f'{BASE_URL}/{tile}.hgt.zip' tmp = f'/tmp/{tile}.hgt.zip' try: print(f' Downloading {tile}...', end=' ', flush=True) urllib.request.urlretrieve(url, tmp) if os.path.getsize(tmp) > 0: with zipfile.ZipFile(tmp, 'r') as z: z.extractall('.') os.remove(tmp) size = os.path.getsize(hgt) if os.path.exists(hgt) else 0 print(f'OK ({size // 1024}KB)') count += 1 else: print('EMPTY') os.remove(tmp) except Exception as e: print(f'FAIL: {e}') if os.path.exists(tmp): os.remove(tmp) print(f'\nDownloaded: {count} new files') print(f'Total HGT: {len([f for f in os.listdir(".") if f.endswith(".hgt")])}')