从NASA到法国航天局手把手教你下载和处理Modis、Landsat(TM)、AVHRR的NDVI数据在植被监测、农业估产和气候变化研究中NDVI归一化植被指数是最基础也最关键的遥感指标之一。不同于实验室数据卫星遥感数据获取往往让初学者望而生畏——不同平台账号体系复杂、数据产品命名规则晦涩、预处理流程繁琐。本文将用最直白的操作指南带您快速打通从数据获取到分析应用的全链路。1. 四大卫星数据源的特点与选择策略1.1 MODIS时间分辨率之王Terra和Aqua双星组网使MODIS数据达到1-2天的高频覆盖特别适合植被动态监测。重点关注MOD13Q1250米/16天和MYD13Q1对应Aqua卫星产品它们已包含经过大气校正的NDVI值# 查看HDF文件中的数据集名称 import h5py with h5py.File(MOD13Q1.A2021001.h25v05.061.2021005030244.hdf) as f: print(list(f.keys()))产品代码空间分辨率时间分辨率适用场景MOD13Q1250米16天区域尺度作物监测MOD13A1500米16天大陆尺度植被分析MOD13A21公里16天全球气候变化研究注意NASA Earthdata账号需要单独申请Earthdata Login并关联应用授权EULA认证1.2 Landsat30米精度的标杆Landsat 5/7/8/9的TM/ETM/OLI传感器提供30米分辨率数据Collection 2 Level-2产品已包含表面反射率数据# USGS EarthExplorer搜索语法 wrs_path123 AND wrs_row032 AND acquisitionDate2023-01-01 AND cloudCover201.3 AVHRR跨越40年的历史数据NOAA系列卫星的AVHRR数据虽然分辨率较低1.1公里但其1981年至今的连续观测对长时序研究至关重要。GIMMS NDVI3g v1数据集已做好辐射校正和几何校正import xarray as xr ds xr.open_dataset(ndvi3g_geo_v1_1981_0115.nc) print(ds[ndvi].attrs) # 查看数据属性1.4 SPOT欧洲视角的高清观测法国SPOT卫星的VEGETATION传感器提供1公里分辨率数据其中SPOT-VGT数据在中科院资源环境科学数据中心有镜像存档适合中国及周边区域研究。2. 数据下载实战指南2.1 NASA Earthdata全流程注册Earthdata Login账号需验证邮箱安装Earthdata Download Manager或配置Python下载脚本import requests from requests.auth import HTTPBasicAuth session requests.Session() session.auth (your_username, your_password) url https://e4ftl01.cr.usgs.gov/MOTA/MCD43A4.061/2023.01.01/MCD43A4.A2023001.h25v05.061.2023009035531.hdf r session.get(url, streamTrue) with open(MCD43A4.hdf, wb) as f: for chunk in r.iter_content(chunk_size1024): if chunk: f.write(chunk)使用NASA Worldview快速预览https://worldview.earthdata.nasa.gov2.2 USGS EarthExplorer技巧使用Additional Criteria筛选云量低于20%的数据批量下载时选择Download Options Bulk Download生成下载列表Landsat Collection 2 Level-2数据已包含SR表面反射率波段2.3 中科院镜像站使用要点SPOT/VGT数据可通过以下路径获取访问https://www.resdc.cn导航至数据服务 遥感数据 植被指数选择时间范围和数据格式GeoTIFF或HDF3. 预处理与NDVI计算3.1 MODIS数据快速处理使用MRTMODIS Reprojection Tool工具转换HDF为GeoTIFFresample -i MOD13Q1.hdf -o output.tif -p modis.prm示例参数文件modis.prm内容INPUT_FILENAME MOD13Q1.hdf SPECTRAL_SUBSET 1 1 1 0 0 0 0 0 0 0 0 0 OUTPUT_FILENAME NDVI.tif RESAMPLING_TYPE NEAREST_NEIGHBOR3.2 Landsat NDVI计算对于Collection 2 Level-2数据直接使用波段运算import rasterio with rasterio.open(LC08_L2SR_B05.tif) as nir, rasterio.open(LC08_L2SR_B04.tif) as red: ndvi (nir.read(1).astype(float) - red.read(1)) / (nir.read(1) red.read(1)) profile nir.profile profile.update(dtyperasterio.float32) with rasterio.open(NDVI.tif, w, **profile) as dst: dst.write(ndvi.astype(rasterio.float32), 1)3.3 多时相数据批处理使用GDAL构建虚拟栅格VRT进行时序分析# 构建NDVI时间序列VRT gdalbuildvrt NDVI_stack.vrt 2023*.NDVI.tif -separate4. 常见问题解决方案4.1 认证与下载错误Earthdata 403错误检查~/.netrc文件是否包含有效凭证machine urs.earthdata.nasa.gov login your_username password your_passwordUSGS下载中断使用curl续传curl -C - -O https://earthexplorer.usgs.gov/download/.../LANDSAT_OT_C2_L2.tar.gz4.2 数据缺失处理MODIS条带缺失使用相邻日期数据插补Landsat SLC-off故障采用gap-fill算法如Landsat 7的LEDAPS工具4.3 坐标系统统一使用QGIS批量重投影打开Processing Toolbox选择War