MODIS 数据下载:中国区域行列号对照表及批量下载脚本
中国区域常用 MODIS 行列号对照表和批量下载脚本。
1. 文档定位#
本文面向需要批量下载 MODIS 植被指数数据的遥感、生态监测、GIS 和数据处理人员,重点说明如何从 NASA LAADS DAAC 下载 MOD13A1 数据,并给出中国区域常用 MODIS 行列号对照表和批量下载脚本。
本文以如下目录为目标示例:
texthttps://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/
该路径含义如下:
| 路径片段 | 含义 |
|---|---|
archive/allData |
LAADS DAAC 归档数据目录 |
61 |
MODIS Collection 6.1 |
MOD13A1 |
Terra MODIS 16 天植被指数产品 |
2025 |
年份 |
177 |
年积日,即 Day of Year,2025 年第 177 天 |
*.hdf |
MODIS HDF-EOS2 数据文件 |
本文以 MOD13A1 为例,但方法也可扩展到其他按 MODIS tile 行列号组织的产品,例如 MOD09A1、MOD11A2、MOD13Q1、MYD13A1 等。使用其他产品时,只需要替换产品名、年份、年积日和行列号列表。
2. 数据源说明#
2.1 MOD13A1 是什么#
MOD13A1 是 Terra MODIS 植被指数产品,常用于 NDVI、EVI、植被覆盖变化、生态质量评价、草地长势监测、农作物长势分析等场景。
根据 NASA Earthdata 对 MOD13A1 Version 6.1 的说明,该产品具有以下特征:
| 项目 | 内容 |
|---|---|
| 产品名 | MOD13A1 |
| 平台 | Terra |
| 传感器 | MODIS |
| Collection | Version 6.1 / Collection 6.1 |
| 空间分辨率 | 500 m |
| 时间分辨率 | 16 天 |
| 数据格式 | HDF-EOS2 |
| 空间参考 | MODIS Sinusoidal Tiling System |
| 主要变量 | NDVI、EVI、质量控制层、红光、近红外、蓝光、中红外等 |
官方资料地址:
texthttps://www.earthdata.nasa.gov/data/catalog/lpcloud-mod13a1-061
3. LAADS DAAC 下载入口#
3.1 LAADS Archive 目录结构#
LAADS DAAC 的 MODIS 数据可以通过归档目录访问。以本文示例为例:
texthttps://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/
打开后可以看到类似文件:
textMOD13A1.A2025177.h27v04.061.xxxxxxxxxxxxx.hdf MOD13A1.A2025177.h27v05.061.xxxxxxxxxxxxx.hdf MOD13A1.A2025177.h28v05.061.xxxxxxxxxxxxx.hdf ...
文件名结构如下:
textMOD13A1.A2025177.h27v05.061.202519514xxxx.hdf
含义为:
| 片段 | 含义 |
|---|---|
MOD13A1 |
产品名 |
A2025177 |
观测日期,2025 年第 177 天 |
h27v05 |
MODIS 水平行列号,h 为 horizontal,v 为 vertical |
061 |
Collection 6.1 |
202519514xxxx |
生产时间戳 |
.hdf |
HDF-EOS2 文件 |
4. 从登录开始:注册与登录 Earthdata#
4.1 注册 Earthdata 账号#
访问 Earthdata 登录/注册页面:
texthttps://urs.earthdata.nasa.gov/
如果没有账号,先注册 NASA Earthdata 账号。
注册时需要填写:
- 用户名;
- 密码;
- 邮箱;
- 机构或用途信息;
- 国家/地区;
- 数据使用目的。
注册完成后,登录账号。
4.2 浏览器方式进入 LAADS Archive#
登录后,在浏览器中访问:
texthttps://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/
如果浏览器已经登录 Earthdata,通常可以直接点击单个 .hdf 文件下载。
浏览器下载适合少量文件测试,不适合下载中国区域多个 tile 或多年多期数据。
5. 生成 Earthdata Download Token#
5.1 为什么需要 Token#
脚本下载不能只依赖浏览器登录状态。LAADS DAAC 官方说明:脚本下载需要使用 Earthdata Download Token,也就是 EDL Token。Token 通过 HTTP 请求头传递:
textAuthorization: Bearer YOUR_TOKEN
5.2 生成 Token 的步骤#
登录 Earthdata 后,进入 Earthdata Profiles:
texthttps://urs.earthdata.nasa.gov/profile
然后执行:
- 登录 Earthdata Profiles;
- 页面右上方选择
Generate Token; - 如果已有 token,点击
Show Token; - 如果没有 token,点击
Generate Token,再点击Show Token; - 复制 token,保存到本地安全位置;
- Token 有有效期,过期后需要重新生成。
5.3 在终端中设置 Token#
推荐将 token 临时写入环境变量:
检查是否设置成功:
bashecho "$LAADS_TOKEN"
注意:不要把 token 写入公开代码仓库,不要提交到 Git。
6. 验证 LAADS 下载是否可用#
6.1 用 curl 验证目录访问#
先测试 layer 目录类似的网页是否可以访问:
bashcurl -I -L \ -b ~/.urs_cookies \ -H "Authorization: Bearer ${LAADS_TOKEN}" \ "https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/"
如果返回 200 OK,说明目录访问正常。
6.2 用 curl 下载单个文件#
先从网页中复制一个真实文件名,例如:
textMOD13A1.A2025177.h27v05.061.2025195140000.hdf
注意:上面最后一段生产时间戳只是示例,实际文件名必须以网页中显示的真实文件名为准。
下载命令格式:
bashcurl -L \ -b ~/.urs_cookies \ -H "Authorization: Bearer ${LAADS_TOKEN}" \ -C - \ -o "MOD13A1_test.hdf" \ "https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/真实文件名.hdf"
参数说明:
| 参数 | 说明 |
|---|---|
-L |
跟随重定向 |
-b ~/.urs_cookies |
使用 cookie 文件,LAADS 官方 curl 示例要求传递 cookie |
-H "Authorization: Bearer ..." |
使用 EDL Token 授权 |
-C - |
支持续传 |
-o |
指定输出文件名 |
7. MODIS 行列号基础知识#
7.1 h/v 是什么#
MODIS 大部分陆地产品使用 Sinusoidal Tile Grid。Tile 编号采用:
texthXXvYY
其中:
| 字段 | 含义 |
|---|---|
h |
horizontal,水平编号 |
v |
vertical,垂直编号 |
官方 MODIS Land 说明中,Sinusoidal Tile Grid 的编号从左上角开始,左上角为 (h00, v00),向右 h 增加,向下 v 增加,右下角为 (h35, v17)。
7.2 MODIS Sinusoidal 网格特点#
| 项目 | 内容 |
|---|---|
| 水平方向编号 | h00 到 h35 |
| 垂直方向编号 | v00 到 v17 |
| 总体网格 | 36 × 18 |
| 单个 tile | 赤道附近约 10° × 10° |
| 投影 | MODIS Sinusoidal |
| 常见产品 | MOD13A1、MOD13Q1、MOD09A1、MOD11A2 等 |
需要注意:MODIS Sinusoidal tile 不是简单的经纬度 10° 网格。高纬度地区经纬度范围会发生变形,因此不能简单用经纬度整十度直接判断行列号。
8. 中国区域 MODIS 行列号对照表#
8.1 表格适用范围#
下面表格用于覆盖中国大陆、海南、台湾及邻近陆地区域的常用 MODIS Sinusoidal tile。该表是基于 MODIS Sinusoidal 官方网格规则,并以中国陆地区域常用经纬度外包范围进行保守覆盖整理:
text经度范围:约 73°E 至 135°E 纬度范围:约 18°N 至 54°N
该范围适合全国尺度 MODIS 数据批量下载。若只研究某个省、市、流域、保护区或工程区,应使用研究区矢量边界进一步精确筛选,避免下载过多 tile。
8.2 中国区域保守覆盖 tile 表#
| v 行号 | h 列号范围 | tile 列表 |
|---|---|---|
| v03 | h22 - h26 | h22v03, h23v03, h24v03, h25v03, h26v03 |
| v04 | h22 - h28 | h22v04, h23v04, h24v04, h25v04, h26v04, h27v04, h28v04 |
| v05 | h23 - h29 | h23v05, h24v05, h25v05, h26v05, h27v05, h28v05, h29v05 |
| v06 | h24 - h30 | h24v06, h25v06, h26v06, h27v06, h28v06, h29v06, h30v06 |
| v07 | h24 - h30 | h24v07, h25v07, h26v07, h27v07, h28v07, h29v07, h30v07 |


8.3 推荐下载清单#
如果要做全国尺度数据处理,可以先使用以下 tile 清单:
texth22v03 h23v03 h24v03 h25v03 h26v03 h22v04 h23v04 h24v04 h25v04 h26v04 h27v04 h28v04 h23v05 h24v05 h25v05 h26v05 h27v05 h28v05 h29v05 h24v06 h25v06 h26v06 h27v06 h28v06 h29v06 h30v06 h24v07 h25v07 h26v07 h27v07 h28v07 h29v07 h30v07
整理成 Python 列表:
pythonCHINA_TILES = [ "h22v03", "h23v03", "h24v03", "h25v03", "h26v03", "h22v04", "h23v04", "h24v04", "h25v04", "h26v04", "h27v04", "h28v04", "h23v05", "h24v05", "h25v05", "h26v05", "h27v05", "h28v05", "h29v05", "h24v06", "h25v06", "h26v06", "h27v06", "h28v06", "h29v06", "h30v06", "h24v07", "h25v07", "h26v07", "h27v07", "h28v07", "h29v07", "h30v07", ]
8.4 重要提醒#
这个清单是全国尺度保守覆盖清单,不是每个 tile 都完全位于中国境内。全国批处理时这样做比较安全;如果是局部项目,建议根据研究区边界自动计算所需 tile。
9. 本文示例路径:2025 年第 177 天#
本文示例 LAADS 地址为:
texthttps://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/
其中:
text2025/177
表示:
text2025 年第 177 天
2025 年不是闰年,因此第 177 天对应:
text2025-06-26
MOD13A1 是 16 天合成产品。实际使用中,建议按 LAADS 目录中存在的年积日进行下载,而不是人为假设每个日期都有目录。
10. 方法一:使用 wget 下载整个目录#
LAADS 页面会给出类似的 wget 命令:
bashwget -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=3 \ "https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/" \ --header "Authorization: Bearer INSERT_EDL_TOKEN_HERE" \ -P .
替换为环境变量写法:
bashwget -e robots=off -m -np -R .html,.tmp -nH --cut-dirs=3 \ "https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/" \ --header "Authorization: Bearer ${LAADS_TOKEN}" \ -P ./downloads
这种方式会尝试下载当前目录下大量文件,不适合只下载中国区域 tile。全国区域建议使用后面的 Python 脚本按 tile 精确筛选。
11. 方法二:按中国 tile 批量下载#
11.1 创建下载目录#
建议建立如下目录:
bashmkdir -p ~/modis_download/MOD13A1/2025/177 cd ~/modis_download
11.2 保存批量下载脚本#
新建脚本:
bashnano download_mod13a1_china.py
写入以下内容:
python#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 批量下载 LAADS DAAC MOD13A1 中国区域 MODIS tile 数据。 使用方法: 1. 先在终端设置 EDL Token: export LAADS_TOKEN="你的_EDL_TOKEN" 2. 执行: python3 download_mod13a1_china.py --year 2025 --doy 177 --out ~/modis_download 说明: - 产品默认为 MOD13A1; - Collection 默认为 61; - 脚本会先读取 LAADS 目录页; - 再根据 CHINA_TILES 筛选真实存在的 hdf 文件; - 文件已存在时会跳过; - 支持断点续传逻辑:如果存在 .part 文件,会继续写入。 """ from pathlib import Path from urllib.parse import urljoin CHINA_TILES = [ "h22v03", "h23v03", "h24v03", "h25v03", "h26v03", "h22v04", "h23v04", "h24v04", "h25v04", "h26v04", "h27v04", "h28v04", "h23v05", "h24v05", "h25v05", "h26v05", "h27v05", "h28v05", "h29v05", "h24v06", "h25v06", "h26v06", "h27v06", "h28v06", "h29v06", "h30v06", "h24v07", "h25v07", "h26v07", "h27v07", "h28v07", "h29v07", "h30v07", ] def build_base_url(collection: str, product: str, year: int, doy: int) -> str: return ( f"https://ladsweb.modaps.eosdis.nasa.gov/" f"archive/allData/{collection}/{product}/{year}/{doy:03d}/" ) def get_session(token: str) -> requests.Session: session = requests.Session() session.headers.update({ "Authorization": f"Bearer {token}", "User-Agent": "modis-laads-downloader/1.0" }) return session def list_hdf_files(session: requests.Session, base_url: str) -> list[str]: print(f"[INFO] Reading directory: {base_url}") resp = session.get(base_url, allow_redirects=True, timeout=60) if resp.status_code != 200: raise RuntimeError( f"读取目录失败:HTTP {resp.status_code}\n" f"URL: {base_url}\n" f"返回内容前 500 字符:\n{resp.text[:500]}" ) # LAADS 目录页中会出现完整 HDF 文件名 files = sorted(set(re.findall(r'(MOD13A1\.A\d{7}\.h\d{2}v\d{2}\.061\.\d+\.hdf)', resp.text))) return files def filter_files_by_tiles(files: list[str], tiles: list[str]) -> list[str]: tile_set = set(tiles) selected = [] for name in files: m = re.search(r'\.(h\d{2}v\d{2})\.', name) if m and m.group(1) in tile_set: selected.append(name) return selected def download_file(session: requests.Session, url: str, out_path: Path) -> None: out_path.parent.mkdir(parents=True, exist_ok=True) if out_path.exists() and out_path.stat().st_size > 0: print(f"[SKIP] 已存在:{out_path.name}") return part_path = out_path.with_suffix(out_path.suffix + ".part") headers = {} downloaded = 0 if part_path.exists(): downloaded = part_path.stat().st_size if downloaded > 0: headers["Range"] = f"bytes={downloaded}-" print(f"[INFO] 断点续传:{out_path.name},已下载 {downloaded} bytes") print(f"[DOWN] {url}") with session.get(url, stream=True, headers=headers, allow_redirects=True, timeout=120) as r: if r.status_code not in (200, 206): raise RuntimeError(f"下载失败:HTTP {r.status_code} {url}") mode = "ab" if r.status_code == 206 and downloaded > 0 else "wb" with open(part_path, mode) as f: for chunk in r.iter_content(chunk_size=1024 * 1024): if chunk: f.write(chunk) part_path.rename(out_path) print(f"[OK] {out_path}") def main(): parser = argparse.ArgumentParser() parser.add_argument("--collection", default="61", help="LAADS archive set / collection, default: 61") parser.add_argument("--product", default="MOD13A1", help="MODIS product, default: MOD13A1") parser.add_argument("--year", type=int, required=True, help="Year, e.g. 2025") parser.add_argument("--doy", type=int, required=True, help="Day of year, e.g. 177") parser.add_argument("--out", default="./downloads", help="Output root directory") parser.add_argument("--tiles", nargs="*", default=CHINA_TILES, help="MODIS tiles, e.g. h27v05 h28v05") args = parser.parse_args() token = os.environ.get("LAADS_TOKEN") if not token: print("[ERROR] 请先设置 LAADS_TOKEN,例如:", file=sys.stderr) print('export LAADS_TOKEN="你的_EDL_TOKEN"', file=sys.stderr) sys.exit(1) base_url = build_base_url(args.collection, args.product, args.year, args.doy) session = get_session(token) files = list_hdf_files(session, base_url) if not files: print("[WARN] 目录中未解析到 HDF 文件,请检查产品、年份、DOY 或登录权限。") sys.exit(2) selected = filter_files_by_tiles(files, args.tiles) print(f"[INFO] 目录 HDF 文件数:{len(files)}") print(f"[INFO] 中国区域匹配文件数:{len(selected)}") if not selected: print("[WARN] 没有匹配到指定 tile。请检查 tile 列表或 LAADS 目录。") sys.exit(3) out_dir = Path(args.out).expanduser() / args.product / str(args.year) / f"{args.doy:03d}" out_dir.mkdir(parents=True, exist_ok=True) for name in selected: url = urljoin(base_url, name) out_path = out_dir / name download_file(session, url, out_path) print("[DONE] 下载完成。") print(f"[OUT] {out_dir}") if __name__ == "__main__": main()
11.3 安装 Python 依赖#
该脚本只依赖 requests:
bashpython3 -m pip install requests
11.4 执行下载#
设置 Token:
执行:
bashpython3 download_mod13a1_china.py \ --year 2025 \ --doy 177 \ --out ~/modis_download
输出目录为:
text~/modis_download/MOD13A1/2025/177/
11.5 只下载指定 tile#
例如只下载华北、东北附近常用的几个 tile:
bashpython3 download_mod13a1_china.py \ --year 2025 \ --doy 177 \ --tiles h26v04 h26v05 h27v04 h27v05 h28v05 \ --out ~/modis_download
12. 方法三:生成下载清单后用 aria2c 下载#
如果希望先生成 URL 清单,再用 aria2c 多线程下载,可以使用以下脚本。
12.1 生成 URL 清单脚本#
保存为:
bashnano make_mod13a1_china_urls.py
内容如下:
python#!/usr/bin/env python3 # -*- coding: utf-8 -*- from pathlib import Path from urllib.parse import urljoin CHINA_TILES = [ "h22v03", "h23v03", "h24v03", "h25v03", "h26v03", "h22v04", "h23v04", "h24v04", "h25v04", "h26v04", "h27v04", "h28v04", "h23v05", "h24v05", "h25v05", "h26v05", "h27v05", "h28v05", "h29v05", "h24v06", "h25v06", "h26v06", "h27v06", "h28v06", "h29v06", "h30v06", "h24v07", "h25v07", "h26v07", "h27v07", "h28v07", "h29v07", "h30v07", ] def main(): parser = argparse.ArgumentParser() parser.add_argument("--year", type=int, required=True) parser.add_argument("--doy", type=int, required=True) parser.add_argument("--product", default="MOD13A1") parser.add_argument("--collection", default="61") parser.add_argument("--out", default="mod13a1_china_urls.txt") args = parser.parse_args() token = os.environ.get("LAADS_TOKEN") if not token: print('请先执行:export LAADS_TOKEN="你的_EDL_TOKEN"', file=sys.stderr) sys.exit(1) base_url = ( f"https://ladsweb.modaps.eosdis.nasa.gov/" f"archive/allData/{args.collection}/{args.product}/{args.year}/{args.doy:03d}/" ) headers = {"Authorization": f"Bearer {token}"} r = requests.get(base_url, headers=headers, allow_redirects=True, timeout=60) r.raise_for_status() files = sorted(set(re.findall(r'(MOD13A1\.A\d{7}\.h\d{2}v\d{2}\.061\.\d+\.hdf)', r.text))) selected = [] for name in files: m = re.search(r'\.(h\d{2}v\d{2})\.', name) if m and m.group(1) in set(CHINA_TILES): selected.append(urljoin(base_url, name)) out_path = Path(args.out) out_path.write_text("\n".join(selected) + "\n", encoding="utf-8") print(f"目录文件数:{len(files)}") print(f"匹配中国 tile 数:{len(selected)}") print(f"URL 清单:{out_path}") if __name__ == "__main__": main()
执行:
bashpython3 make_mod13a1_china_urls.py \ --year 2025 \ --doy 177 \ --out mod13a1_2025_177_china_urls.txt
12.2 使用 aria2c 下载#
安装:
bashbrew install aria2
下载:
bashmkdir -p ~/modis_download/MOD13A1/2025/177 aria2c \ -i mod13a1_2025_177_china_urls.txt \ -d ~/modis_download/MOD13A1/2025/177 \ -x 4 \ -s 4 \ --header="Authorization: Bearer ${LAADS_TOKEN}"
说明:
| 参数 | 说明 |
|---|---|
-i |
输入 URL 清单 |
-d |
下载目录 |
-x 4 |
单服务器最大连接数 |
-s 4 |
单文件分片数 |
--header |
添加 Bearer Token |
如果遇到授权、重定向或 cookie 问题,优先使用第 11 节的 Python 脚本,因为 Python 脚本更容易控制请求头、重定向和错误输出。
13. 下载后检查#
13.1 检查文件数量#
bashfind ~/modis_download/MOD13A1/2025/177 -name "*.hdf" | wc -l
全国保守 tile 清单共有 33 个 tile。对于某个具体日期,实际可下载数量通常应接近这个数量,但最终以 LAADS 目录真实存在文件为准。
13.2 查看文件名#
bashls ~/modis_download/MOD13A1/2025/177 | head
应能看到类似:
textMOD13A1.A2025177.h24v05.061.2025195xxxxxx.hdf MOD13A1.A2025177.h25v05.061.2025195xxxxxx.hdf MOD13A1.A2025177.h26v05.061.2025195xxxxxx.hdf
13.3 检查 HDF 子数据集#
使用 GDAL:
bashgdalinfo ~/modis_download/MOD13A1/2025/177/MOD13A1.A2025177.h27v05.061.*.hdf
可以看到多个 SUBDATASET,常见包括:
- NDVI;
- EVI;
- VI Quality;
- red reflectance;
- NIR reflectance;
- blue reflectance;
- MIR reflectance;
- view zenith;
- sun zenith;
- relative azimuth;
- composite day of year;
- pixel reliability。
14. 从 HDF 提取 NDVI 的示例#
14.1 查看 NDVI 子数据集名称#
bashgdalinfo MOD13A1.A2025177.h27v05.061.xxxxxxxxxxxxx.hdf | grep SUBDATASET
找到类似:
textHDF4_EOS:EOS_GRID:"MOD13A1.A2025177.h27v05.061.xxxxxxxxxxxxx.hdf":MODIS_Grid_16DAY_500m_VI:500m 16 days NDVI
14.2 转为 GeoTIFF#
bashgdal_translate \ 'HDF4_EOS:EOS_GRID:"MOD13A1.A2025177.h27v05.061.xxxxxxxxxxxxx.hdf":MODIS_Grid_16DAY_500m_VI:500m 16 days NDVI' \ MOD13A1_A2025177_h27v05_NDVI.tif
14.3 注意比例因子#
MOD13A1 的 NDVI/EVI 通常需要乘以比例因子:
text0.0001
也就是说,原始值 8000 对应 NDVI:
text0.8
实际处理时应结合 QA 层进行质量控制。
15. 多日期批量下载思路#
MOD13A1 是 16 天合成产品。若需要下载全年数据,可以准备 DOY 列表。
常见 16 天序列类似:
text001 017 033 049 065 081 097 113 129 145 161 177 193 209 225 241 257 273 289 305 321 337 353
可以写一个 shell 循环:
bashfor doy in 001 017 033 049 065 081 097 113 129 145 161 177 193 209 225 241 257 273 289 305 321 337 353 do python3 download_mod13a1_china.py \ --year 2025 \ --doy "$doy" \ --out ~/modis_download done
注意:不同年份、产品更新状态和 LAADS 归档情况可能有差异,具体以 LAADS 实际目录存在为准。
16. 常见问题#
16.1 浏览器可以下载,脚本不行#
原因通常是脚本没有正确使用 EDL Token。
检查:
bashecho "$LAADS_TOKEN"
确认脚本请求头中包含:
textAuthorization: Bearer YOUR_TOKEN
16.2 Token 过期#
EDL Token 有有效期。过期后重新登录 Earthdata Profiles 生成即可。
16.3 下载到的是 HTML,不是 HDF#
这种情况通常是没有通过认证,实际下载到了登录页或错误页。
检查文件类型:
bashfile MOD13A1.A2025177.h27v05.061.xxxxxxxxxxxxx.hdf
如果显示 HTML,应删除该文件,重新检查 Token 和下载命令。
16.4 某些 tile 找不到#
可能原因:
- 当前日期目录下没有该 tile;
- 产品尚未处理完成;
- tile 列表过宽或过窄;
- 文件名生产时间戳变化,不能手写完整文件名;
- 网络请求被重定向到登录页。
推荐做法:不要手写完整文件名,而是先解析 LAADS 目录页,再按 hXXvYY 匹配真实文件名。
16.5 是否必须下载全部 33 个 tile#
不一定。
全国尺度建议使用 33 个 tile 的保守清单。省级、市级、流域级、工程区级项目,应按研究区边界精确筛选。
例如只做锡林郭勒盟或内蒙古中东部,通常不需要下载全国所有 tile。
17. 资料来源与验证依据#
本文涉及的关键事实来自以下官方资料或官方页面:
- MOD13A1 Version 6.1 产品说明:
texthttps://www.earthdata.nasa.gov/data/catalog/lpcloud-mod13a1-061
- LAADS DAAC EDL Token 下载说明:
texthttps://ladsweb.modaps.eosdis.nasa.gov/learn/download-files-using-edl-tokens/
- LAADS Archive 示例目录:
texthttps://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/
- MODIS Land Sinusoidal Tile Grid 官方说明:
texthttps://modis-land.gsfc.nasa.gov/MODLAND_grid.html
- MODLAND Tile Calculator:
texthttps://landweb.modaps.eosdis.nasa.gov/tilecalc
18. 总结#
对于中国区域 MOD13A1 批量下载,推荐采用以下标准流程:
text注册并登录 Earthdata ↓ 生成 EDL Token ↓ 打开 LAADS Archive 确认产品、年份、DOY 目录存在 ↓ 使用中国区域 MODIS tile 清单 ↓ 脚本解析 LAADS 目录页中的真实文件名 ↓ 按 hXXvYY 筛选并批量下载 ↓ 使用 GDAL 检查 HDF 子数据集 ↓ 提取 NDVI/EVI 并结合 QA 层做后续处理
全国尺度保守下载清单为:
texth22v03 h23v03 h24v03 h25v03 h26v03 h22v04 h23v04 h24v04 h25v04 h26v04 h27v04 h28v04 h23v05 h24v05 h25v05 h26v05 h27v05 h28v05 h29v05 h24v06 h25v06 h26v06 h27v06 h28v06 h29v06 h30v06 h24v07 h25v07 h26v07 h27v07 h28v07 h29v07 h30v07
本文示例下载入口为:
texthttps://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/MOD13A1/2025/177/
最终推荐使用 Python 脚本批量下载,而不是手工拼接完整文件名。因为 LAADS 文件名最后的生产时间戳会变化,脚本先解析目录、再按 tile 匹配,稳定性更高。