elevation包,SRTM30、90mDEM快速下载
官网
官网地址
项目安装
pip install elevation
安装检查
$ eio selfcheck
Your system is ready.
请注意,从 elevation v1.1 开始,官方仅支持 Python 3。 要获得支持 Python 2 的最新版本,请使用 pip install elevation=1.0.6。
命令行用法
1. 30m dem下载
确定感兴趣区域的地理边界,并使用 eio 命令获取 DEM。 例如,要将罗马的 SRTM 30m DEM(大约 41.9N 12.5E)裁剪到 Rome-30m-DEM.tif 文件:
$ eio clip -o Rome-30m-DEM.tif --bounds 12.35 41.8 12.65 42
2. 90m dem下载
$ eio --product SRTM3 clip -o Rome-90m-DEM.tif --bounds 12.35 41.8 12.65 42
–bounds 选项接受纬度和经度坐标 (更准确地说,在WGS84参考系EPSG:4326中的大地坐标中,供关心的人使用) 给出为左、下、右、上,类似于 Rasterio 形式的 Rio 命令。
3.如果已安装 rasterio 和 fiona 包,则可以在 GDAL 和 OGR 支持的任何其他地理空间数据源的相同范围内裁剪 DEM, 例如,如果您有地理配准图像MyImage.tif则可以使用以下命令裁剪相应的 DEM:
$ eio clip -o MyImage-DEM.tif --reference MyImage.tif # enable with: $ pip install rasterio
4.–reference 选项也可以将 verctor 数据作为输入:
$ eio clip -o MyShapefile-DEM.tif --reference MyShapefile.shp # enable with: $ pip install fiona
首次访问某个区域时,Elevation 会从 USGS 或 CGIAR-CSI 服务器下载数据切片,然后 以 GeoTiff 压缩格式缓存它们, 随后进入同一区域和附近区域的速度要快得多。 clip 子命令不允许自动下载大量 DEM 切片, 请参阅上游提供商的网站,了解批量下载的首选程序。
5. 若要清理过时的临时文件并在服务器出现错误时修复缓存,请使用:
$ eio clean
Python API
每个命令在 elevation 模块中都有相应的 API 函数:
>>> import elevation
>>> # clip the SRTM1 30m DEM of Rome and save it to Rome-DEM.tif
>>> elevation.clip(bounds=(12.35, 41.8, 12.65, 42), output='Rome-DEM.tif')
>>> # clean up stale temporary files and fix the cache in the event of a server error
>>> elevation.clean()