
简介由NASA地球观测项目整理发布的美国地质区域数据包面向地质、地理信息系统、环境科学等领域的科研人员与学习者可用于空间分析、地质制图、灾害风险评估等场景。压缩包内共19个文件以.shp几何数据、.dbf属性表、.prj投影定义为核心辅以.sbn/.sbx空间索引及.xml元数据整体仅93KB属于体量精简、结构完整的地理信息系统数据样本。文件命名采用‘au45三位数字cg’的形式每个编号对应不同地理单元配合其中的.prj文件可正确加载坐标系统使用ArcGIS、QGIS等桌面GIS软件即可读取并开展基础地层与构造分析。已有212人浏览学习尽管数据量不大但覆盖了空间几何、属性语义、投影参数等关键图层要素可帮助理解矢量数据的组织逻辑与常见文件依赖关系适合需要快速获取真实地理样本的入门者或相关课题研究者据此练习空间查询、属性关联和专题制图流程。 从NASA拉美国地质数据这件事最近不少做遥感、GIS、地学建模的同行都在折腾。我自己的项目里也经常要用地形、地表覆盖、热异常这一类数据几次摸索下来对NASA那套下载流程算是从“一脸懵”走到了“闭眼能下”。如果你现在正卡在找数据、登录、格式转换或者下载了一半断掉的阶段这篇就按我实际操作的顺序把手上的门道和踩过的坑都写清楚。1. 先从NASA下载哪些“地质数据”1.1 认识NASA的数据分发体系很多人第一次打开NASA的数据平台会觉得乱实际上它有一套很清晰的结构。所有数据的统一入口是Earthdata Search真正存储和分发数据的是各类DAAC也就是分布式存档中心。比如地形高程、地表反射率、土地覆盖这类数据主要在LP DAAC大气参数在GES DISC雪冰数据在NSIDC海洋数据在PO.DAAC。了解这个结构的意义在于你不用从Earthdata Search里漫无目的地翻文件夹而是先想清楚自己要什么然后直接进入对应的数据产品页面再通过Earthdata Search按时间和范围筛选。我最早犯的错就是直接打开某个DAAC的FTP页面去翻目录结果文件列表巨长也搞不清哪个是哪个效率特别低。1.2 高频使用的数据产品盘点以我做地形分析和地表温度制图的实际经验美国地质相关的数据主要在下面几类我整理了一个常用表产品系列数据内容空间分辨率文件格式典型用途SRTM GL1全球数字高程30米GeoTIFF地形分析、坡度坡向、流域提取ASTER GDEM全球数字高程30米GeoTIFF地形对比、区域地貌研究Landsat 8/9多光谱地表反射30米GeoTIFF MTL土地利用分类、水体提取MODIS LST地表温度1公里HDF城市热岛、地表温度监测ASTER L1T可见光/热红外15米/90米HDF岩性解译、热异常识别ECOSTRESS蒸散发与地表温度70米HDF5农业干旱、精细热环境研究SRTM和ASTER GDEM这两类严格来说一个来自航天飞机雷达测高一个来自日本METI和美国NASA的联合产品但都挂在LP DAAC下都属于“打开次数最高”的地形数据。Landsat则是很多地质解译任务的默认底图。根据用途不同你可能一次会同时下好几种所以掌握一套通用下载方法很重要。1.3 为什么一定要自己下原始数据有段时间我图省事直接用现成的在线瓦片、云可视化图层或者别人处理好的成品栅格但做着做着就发现三个硬伤一是细节精度不可控在线瓦片做展示可以做定量分析不够二是很多成品数据已经做了拉伸、增强和重投影不能直接参与数值计算三是缺少原始元数据投影、单位、采集时间这些关键信息都没有。所以正经做研究或项目还是得自己下原始产品哪怕多花点功夫。2. 下载前必须准备的账号、格式与坐标系知识2.1 Earthdata登录账号的注册要点从NASA下载绝大多数数据都必须先有NASA Earthdata Login账号。注册时用常规邮箱就行创建用户名和密码后还需要在个人资料里完善姓名、单位、用途等信息。这里有个容易卡住的地方部分产品在首次下载时还要求你接受额外的数据使用协议。注册完之后我在实际使用中发现一个特别重要的细节不要只用一个浏览器保持登录状态然后直接去点下载链接。因为很多下载工具或者wget命令拿不到浏览器的会话状态会出现403或401错误。你需要单独配置一个带有token或者用户名密码的下载方式这一点我在后面实操部分会说具体怎么做。2.2 HDF、GeoTIFF与NetCDF三种格式的差异下载下来的文件后缀一般是.tif、.hdf、.h5或.nc它们不是单纯的一种文件类型打开方式也不同。GeoTIFF最常见可以用QGIS直接拖进去看也可以被大部分编程库直接读写。HDFHDF4和HDF5一种容器格式一个文件里往往有多层数据。比如MODIS地表温度产品里面既有白天的温度层也有夜晚的温度层还带质量标记层。用QGIS打开HDF时需要选择具体哪个子数据集。NetCDF类似HDF常用于气候数据和格点数据读取方式也相近。我的建议是如果对这类格式不熟就先在准备阶段装好HDFView或者用rasterio/xarray验证一下文件内容。别等到数据处理做到一半才去想办法读那样会很麻烦。2.3 坐标参考系为什么下载前就要想清楚不同数据产品的坐标参考系不一样。SRTM是经纬度坐标WGS84MODIS的LST很多是正弦投影而Landsat则是UTM投影。这意味着如果项目中要把多个数据叠在一起或统一换算面积就必须先做投影转换。打个比方你在一张白纸上画图不同的人用了不同的标尺和原点。你直接拿他们的图纸叠在一起是对不齐的只有先统一标尺和原点。做遥感数据处理完全一样。所以下载前最好先定好你最终要用的坐标系尽量选WGS84经纬度做中间格式或者用你区域对应的UTM投影做面积计算。3. 实操从Earthdata Search到本地文件3.1 搜索数据与添加筛选条件打开Earthdata Search后左侧边栏是筛选区。我通常的操作流程是这样的在搜索框输入产品名比如“ASTER L1T”或“MOD11A1”。在地图上绘制感兴趣区或者直接输入经纬度坐标范围。设置时间范围。注意这里有个时区习惯问题NASA默认使用UTC北京时间要往前推8小时否则你想要的某一天数据可能会被框错。对于光学影像类产品建议在附加条件里设置最大云量比如10%以下这样能省掉后续很多处理麻烦。等列表刷新出来后不要在列表页直接点下载。你应该把它们加入收藏夹再统一生成订单。3.2 从“收藏”到“京东式”下载把数据加入收藏后点击收藏标签然后“下载全部”此时系统会生成一个下载列表。这个列表页面会提供两个核心东西文件下载链接清单和自动生成的wget脚本。先把下载链接以文本文件保存然后在你自己的电脑或服务器上用wget按照清单批量下载。命令大概是这样的wget --user你的Earthdata用户名 --password你的密码 -i 下载清单.txt如果你不想在命令里明文写密码可以提前把用户名密码配置到~/.netrc文件里machine urs.earthdata.nasa.gov login 用户名 password 密码然后执行wget -i 下载清单.txt实测这个是稳定的。但要注意一点如果只配了.netrc而浏览器没登录有时还是会弹出认证要求所以稳妥起见下载前先在浏览器里完成一次Earthdata登录。3.3 批量下载脚本断点续传才是关键如果是大范围的研究区下载清单可能几百条甚至上千条。我在实际项目中经常要处理几十GB到几百GB的数据量单纯用wget不加参数非常容易断。强烈建议加这些参数wget -c -i 下载清单.txt --continue --tries0-c表示断点续传--tries0表示无限重试。配合nohup放到后台运行也不会因为SSH断开导致下载中断nohup wget -c -i 下载清单.txt --continue --tries0 download.log 21 如果发现某几个文件一直下载失败不要反复重试整个清单先把失败的链接单独挑出来写到一个新文件里再单独执行wget -c -i failed_list.txt这样能节省大量时间。这个“先跑整体、再补失败项”的思路是批量下载任何地球观测数据的通用做法。3.4 拿到数据后的第一眼检查数据刚到本地时别急着用先快速验证格式是否正确、范围是否对。我习惯用命令行工具gdalinfo查看GeoTIFF或者用Python的rasterio查看HDFimport rasterio with rasterio.open(ASTGTMV003_N40W106_dem.tif) as src: print(src.crs) print(src.bounds) print(src.read(1).min(), src.read(1).max())MODIS的HDF文件在读的时候需要指定子数据集名称直接打开一个HDF文件会返回多个数据集的路径列表。用xarray配合cfgrib或rasterio读取也可以但最简单的检查方式还是先看一眼文件体积是不是异常小。如果只有几百KB基本可以判断是部分损坏或元数据残留立刻标记出来重下。4. 数据拿到手之后预处理与质量控制4.1 云掩膜和噪声处理光学遥感数据尤其Landsat最大的问题是云遮挡。标准做法是使用数据自带的QA波段进行云掩膜。对Landsat 8/9的Collection 2来说QA_PIXEL波段里可以提取云、云影、水体等类别。我常用的方法是把这些QA位解码成一个二进制掩膜把有云和云影的位置设为NaN再进行后续计算。如果你跳过这步直接算NDVI或地表分类那些云覆盖区域的数值会让整个统计结果失真到离谱。4.2 重投影、重采样与裁剪由于不同数据源的坐标系不同我一般在预处理阶段把它们统一到同一坐标系。用GDAL的命令行方式最快gdalwarp -t_srs EPSG:4326 input.tif output_wgs84.tif如果想同时重采样到指定分辨率可以加-tr 0.0003 0.0003。具体分辨率值要根据你的应用场景来定做小范围的精细分析就用高分辨率做大区域统计就用低分辨率别一刀切。裁剪可以用研究区矢量边界操作gdalwarp -cutline study_area.shp -crop_to_cutline input.tif output_clip.tif4.3 数值缩放与单位转换这一条特别容易忽视。MODIS地表温度产品的原始DN值并不是实际温度需要乘以0.02的比例因子才能得到开尔文温度然后再减273.15得到摄氏度。Landsat反射率波段也是同理有几个波段需要除以10000。如果直接拿着原始DN值做分析得到的结果在数量级上完全不对整个项目就白做了。强烈建议处理前先把产品的用户手册或数据节点上的“Product Description”看一下确认数据的单位、比例因子和有效范围。这里花十分钟后面能省十个小时。5. 常见问题与排查技巧实录5.1 下载时报403或401这是遇到最多的一个问题。403或401说明认证没通过。最常见的原因就是wget没有带上Earthdata的登录信息。解决办法是配置.netrc文件或者在wget命令中显式加上用户名和密码。还有一点需要注意有些下载链接会要求先访问一次数据提供商页面此时需要先确保浏览器已经登录了Earthdata。5.2 文件下载下来了但打不开如果你发现文件扩展名正常但打不开先用file命令确认实际格式。我遇到过HDF文件下载下来实际是HTML网页的情况那是wget没有正确带认证时服务器返回了登录页面。这时删除原来的文件在认证配置正确的情况下重新下载。5.3 图像显示全黑或数值范围不正常打开图像后全黑通常有两种可能一是显示拉伸问题二是不带云掩膜情况下含大量无效值。先用统计信息看一下最小值和最大值如果最大值特别大、最小值特别小那大概率是包含了云顶、噪声或异常像元。正确的处理顺序是先做QA掩膜和无效值处理再做2%线性拉伸用于可视化。5.4 下载中断和续传问题下载一批文件时经常会有某个文件传到一半中断。如果wget没加-c它会重新下载整个文件体验很差。所以批量下载脚本务必默认带-c。还有一个小技巧每下载完一个文件后在脚本里对比本地和服务器端的文件大小不一致就重下。如果用的是简单wget命令可以用--spider模式检查远端文件大小写一个循环做校验。问题现象常见原因解决办法403/401未正确配置Earthdata认证配.netrc或显式用户名密码下载文件打不开实际内容是HTML错误页删除后重新下载检查认证全黑/数值异常未做QA掩膜、未处理无效值先掩膜再拉伸可视化下载中断没用断点续传wget加-c参数重试坐标对不上坐标系不一致统一用gdalwarp重投影数值量级离谱未乘比例因子查产品手册做单位换算5.5 工具打不开新版本数据这几年NASA很多产品做了Collection迭代比如Landsat从Collection 1切换到Collection 2MODIS也开始推新的版本。老的工具或库如果版本太旧会出现无法读取或数据位置偏移的问题。解决办法是升级GDALGDAL 3.0以上对现代遥感格式的支持会好很多。如果你用的是Python尽量把rasterio、numpy、xarray这些库升级到当前稳定版。结尾再聊两句个人体会最深的一件事这类数据下载流程虽然看起来繁琐但每一步都是有明确目的的。账号是为了追踪数据使用格式是为了存储多维信息坐标系是为了保证空间精度。如果你的目标不是做NASA专有格式的深度处理最快速的方式其实是先用GeoTIFF类产品跑通一条小流程比如先下载一小块SRTM搞定坐标系和裁剪再去处理MODIS这类HDF格式。这样能把难度拆散不会把自己卡在原地。最后再分享一个习惯每一次成功下载和预处理后我都把下载条件、筛选参数和处理命令记录在一个文本文件里放到数据文件夹下。这个“数据指纹”文件在三个月后复盘项目时价值极高强烈建议你也试试。本文还有配套的精品资源点击获取