NASA DEM下载教程

欢迎关注同名公众号木瓜QGISer,获取更多数据下载方式!

目录

数据简介

数据下载

数据简介

NASA DEM,美国航空航天局(NASA)的 LP DAAC 在 2020 年发布的 DEM数据。该产品基于Shuttle Radar Topography Mission(SRTM) 处理改进、高程控制、空隙填充以及与其他高程数据的合并,改善高程数字模型的高度精度和数据覆盖范围,精度较高。

分辨率:30m。

精度: 在SRTM基础上处理,精度高于SRTM。

卫星拍摄时间:2000年2月11日至2000年2月21日。

数据范围:全球南北纬60度以区域。

数据下载

1、进入NASA EARTHDATA首页。

网址为:https://search.earthdata.nasa.gov/search

图片

2、在左上角页面搜索框内输入NASA DEM,搜索数据。

图片

3、通过范围选中工具选中需要下载DEM的区域。注:通过滑动滚轮可以放大与缩小地图,通过点击鼠标左键不放并移动鼠标可以拖动地图位置。

图片

4、找到对应区域,并框选下载数据范围后,即可看到该区域的下载选项,可以直接点击下载单个需要的DEM,也可以点击下载所有数据。点击下载按钮后,数据就开始下载啦~~。

注:如果没有登录与注册,点击下载的时候会弹出登录/注册选项,按照提示注册并登录就好。

图片

<think>我们正在处理用户请求:获取用于Python处理的DEM(数字高程模型)数据下载脚本。用户需要的是一个Python脚本来下载DEM数据DEM数据通常可以通过公开的地理数据服务获取,例如USGSEarthExplorer、NASAEarthdata等。但请注意,这些服务通常需要认证(如Earthdata需要注册)并且有API使用限制。考虑到用户可能希望快速获取数据,我们可以选择使用公开可用的DEM数据源,例如:1.使用NASAEarthdata的SRTM(航天飞机雷达地形测绘任务)数据,分辨率约30米。2.使用OpenTopography等平台。然而,直接下载DEM数据通常需要以下步骤:-用户认证(如果需要)-指定下载区域(通常通过经纬度边界框)-选择数据集-下载数据文件(如GeoTIFF格式)由于不同的数据源有不同的访问方式,这里我们以NASAEarthdata的SRTM数据为例,因为它是一个广泛使用的全球DEM数据源。注意:在下载NASAEarthdata数据之前,用户需要注册一个账号(免费),并在代码中提供用户名和密码。但出于安全考虑,我们不应在脚本中硬编码凭据,而是建议用户通过环境变量或配置文件提供。我们将使用earthaccess库(NASAEarthdata的Python库)来简化下载过程。如果没有安装,需要先安装。步骤:1.安装earthaccess库:`pipinstallearthaccess`2.使用earthaccess搜索并下载DEM数据。但是,用户可能没有指定区域,因此我们需要让用户指定一个边界框(经纬度范围)和数据集名称。数据集示例:-SRTMGL1:30米分辨率,全球(除极地)DEM数据(版本3)由于用户可能只需要一个简单的脚本,我们将提供一个示例脚本,要求用户输入边界框、用户名和密码(或使用.netrc文件)来下载数据。另外,也可以使用NASA的API直接下载,但earthaccess封装了认证和下载过程,更简单。因此,我们提供以下脚本:</think>以下是一个用于下载DEM(数字高程模型)数据的Python脚本示例,使用NASA Earthdata服务获取SRTM 30米分辨率数据: ```python import earthaccess import os # 初始化Earthdata登录(需提前注册:https://urs.earthdata.nasa.gov) earthaccess.login(persist=True) # 首次运行会提示输入用户名/密码 def download_dem_data( bbox: tuple, output_dir: str = "./dem_data", dataset: str = "SRTMGL1" ): """ 下载指定区域的DEM数据 参数: bbox -- 边界框 (min_lon, min_lat, max_lon, max_lat) output_dir -- 保存路径 (默认当前目录) dataset -- 数据集ID (默认SRTMGL1) """ os.makedirs(output_dir, exist_ok=True) # 构建查询参数 query = { "bounding_box": bbox, "cloud_cover": (0, 10), # 云覆盖率过滤 "short_name": dataset } # 搜索可用数据 results = earthaccess.search_data( **query, count=1 # 取最新数据 ) if not results: print(f"未找到 {dataset} 数据,请检查区域或数据集ID") return None # 下载文件 print(f"正在下载 {dataset} 数据...") files = earthaccess.download(results, output_dir) print(f"下载完成!保存至: {files[0]}") return files[0] # 示例:下载北京地区的DEM数据 if __name__ == "__main__": # 北京边界框 (经度min, 纬度min, 经度max, 纬度max) beijing_bbox = (115.4, 39.4, 117.5, 41.1) download_dem_data(beijing_bbox) ``` ### 使用说明 1. **注册账号** 访问[Earthdata注册页面](https://urs.earthdata.nasa.gov)创建免费账户 2. **安装依赖** ```bash pip install earthaccess rio-cogeo ``` 3. **运行脚本** 首次执行会提示输入Earthdata账号密码,后续自动保存认证信息 4. **数据集选项** - `SRTMGL1`: 全球30米分辨率(推荐) - `NASADEM`: 新版全球30米 - `ASTGTM`: 全球30米(ASTER数据) ### 技术说明 1. **数据格式** 下载为GeoTIFF文件,可用`rasterio`处理: ```python import rasterio with rasterio.open("dem.tif") as src: elevation = src.read(1) # 获取高程矩阵 ``` 2. **坐标系** 默认使用WGS84(EPSG:4326),可通过GDAL转换: ```bash gdalwarp -t_srs EPSG:3857 input.tif output.tif ``` 3. **分辨率控制** 调整边界框大小控制数据量(1°×1°≈120MB) ### 备选数据源 1. **OpenTopography** (需API密钥): ```python import requests dem_url = "https://portal.opentopography.org/API/globaldem?demtype=SRTMGL1&west=115.4&east=117.5&south=39.4&north=41.1" response = requests.get(dem_url, stream=True) ``` 2. **AWS公开数据集** (无需认证): ```python aws_url = "https://s3.amazonaws.com/elevation-tiles-prod/geotiff/{z}/{x}/{y}.tif" ``` [^1]: NASA Earthdata提供全球DEM数据访问服务,支持科学研究和商业应用 [^2]: SRTM数据集由NASA与NGA合作采集,覆盖全球80%陆地表面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值