Skip to content

1. 使用 Aria2 批量下载 Sentinel 1 数据

ASF Vertex搜索S1 Burst

Burst-Based InSAR for Sentinel-1 On Demand

Credit: Vigo_GIS 51CTO

以下是关于使用 Metalink 批量下载 Sentinel 数据的步骤摘要:

核心工具

  • Aria2:一款轻量级、多协议、支持命令行的下载工具。

准备工作

  1. 获取软件:从 GitHub 下载并解压 Aria2。
  2. 筛选数据:在 ASF (Alaska Satellite Facility) 平台选择所需数据并加入购物车。
  3. 导出文件:在购物车中下载 Metalink (metadata) 格式的文件。
  4. 文件放置:将下载好的 .metalink 文件放入 Aria2 所在的文件夹内。

执行下载

在命令行(CMD)中切换至 Aria2 目录,根据数据来源执行相应命令:

  • 针对 ASF 数据:
bash
aria2c --http-user=用户名 --http-passwd=密码 --check-certificate=false --continue=true --max-concurrent-downloads=3 -M 文件名.metalink
  • 针对 Open Access Hub:
bash
aria2c --http-user=用户名 --http-passwd=密码 --check-certificate=false --continue=true --max-concurrent-downloads=2 -M 文件名.metalink

参数说明

  • --http-user/passwd:输入对应的平台账号和密码。
  • --max-concurrent-downloads:设置最大同时下载任务数。
  • -M:指定读取的 Metalink 配置文件。

Reference: ASF SAR Data Search Manual

总结来说,使用 aria2 批量下载 Sentinel-1 (S1) 数据的核心逻辑是:利用 ASF DAAC 的 Search API 生成一个包含文件信息的 Metalink 文件,然后通过 aria2 解析并下载。

以下是操作步骤的详细总结:

1. 核心下载命令结构

基本的下载命令需要包含身份验证信息(Earthdata 账号)和 API 查询链接:

bash
aria2c --http-auth-challenge=true \
       --http-user='你的用户名' \
       --http-passwd='你的密码' \
       "https://api.daac.asf.alaska.edu/services/search/param?[查询参数]&output=metalink"
  • --http-auth-challenge=true: 必须开启,以支持 Earthdata 的身份验证跳转。
  • output=metalink: 这是关键参数。API 不会直接返回数据文件,而是返回一个包含所有下载链接的 Metalink 格式文件,aria2 会自动识别并开启多线程下载。

2. 三种常见的批量查询方式

场景查询参数示例
已知数据列表granule_list=数据名1,数据名2...
按平台和时间platform=Sentinel-1A&start=2023-01-01T00:00:00
按地理区域intersectsWith=point(-122.42 37.77)polygon(...)

3. 进阶:使用配置文件(更安全、简洁)

为了避免在终端历史记录中留下明文密码,建议使用配置文件 aria2.conf

  1. 创建配置文件
bash
echo "http-user=你的用户名" > aria2.conf
echo "http-passwd=你的密码" >> aria2.conf
chmod 600 aria2.conf  # 限制权限,保护密码
  1. 使用配置下载
bash
aria2c --conf-path=aria2.conf --http-auth-challenge=true "API_URL_HERE&output=metalink"

4. 实用小贴士

  • 多线程加速:可以在命令中加入 -s 5 -x 5(表示每个文件 5 个连接)来提高下载速度。
  • Windows 用户注意:如果遇到证书报错,可以添加 --check-certificate=false,且参数中的双引号要正确闭合。
  • 断点续传:aria2 默认支持断点续传,如果下载中断,再次运行相同命令即可。

Credit @Wayne19980