如何用python得到1km数字高程图的数据
时间: 2024-09-22 20:02:54 浏览: 68
获取1公里分辨率的数字高程模型(DEM,Digital Elevation Model)数据通常涉及下载已有的地球表面高度数据集,Python有几种方法可以做到这一点:
1. **USGS National Map Service**: 美国地质调查局提供免费的全球DEM数据,例如SRTM(Shuttle Radar Topography Mission),你可以使用`gdal`或`rasterio`库下载指定地区的数据,示例代码如下:
```python
import os
from rasterio import env
url = "https://prd-tnm.s3.amazonaws.com/StagedProducts/SRTMGL1_003/SRTMGL1_HR_M_V003_28.N55.W090.hgt.zip"
output = "dem_data.zip"
# 下载数据
if not os.path.exists(output):
with env '':
urllib.request.urlretrieve(url, output)
# 解压数据
import zipfile
with zipfile.ZipFile(output, 'r') as zip_ref:
zip_ref.extractall("dem_data")
```
2. **ESA WorldCover**: 欧洲航天局的世界覆盖数据库也包含部分DEM数据,可以访问他们的API,使用`requests`库下载数据,需要注册账号并获得API key。
3. **Google Earth Engine (GEE)**: Google Earth Engine提供了大量的卫星和地形数据,虽然它默认的分辨率较高(通常是30米),但你可以使用其Python API下载小区域的低分辨率数据,然后在本地处理为1公里分辨率。
4. **开源GIS软件如QGIS**: 它提供了工具可以从上述资源直接导入或下载DEM数据,不过这需要通过图形界面操作。
下载后,通常你需要使用像GDAL或rasterio这样的库来读取数据,并根据需要进行处理。如果数据过大,可能会考虑分块处理。
阅读全文