USGS官网批量下载Landsat 8/9 多光谱数据(方法2)
PART 01
】,进入“Profile Overview”,如下所示: 



注意:点击【Create Application Token】后,会有一串随机字母+数字,要记录下来,只要关闭页面后就永远不会再显示,这样你只能删掉这个token重新创建。
1.2申请API的数据访问权限
申请了账户token后,只能在(M2M)应用程序编程接口系统中登录,无法访问landsat系列数据集,还需要申请这个数据集权限,申请后大概需要10个小时左右能通过。(请注意,教育邮箱是在垃圾邮件里找到这个通过说明)。

申请步骤如下:
在账号页面点击【Access Request】,然后点击【Request Access】。

在弹出的页面中下拉选择(M2M)应用程序编程接口API,由于已经申请过一次,无法再次申请,没有相关的页面截图。之后填写使用用途和数据集等内容,本人填写的数据集是Landsat,产品范围是Landsat Collection 2 Level-2 和 Landsat Collection 2 Level-1,其他的用途随便填写即可,具体可以参考如下所示的https://earthexplorer.usgs.gov/中的数据集名称。等收到同意邮件即可,不需要后续操作。

PART 02
该脚本一共包含有四个py文件,

其中:
-
download_scenes.py:为下载程序的主函数。
-
downloader.py:作为下载核心模块,实现文件下载任务,包括多线程或异步下载,支持断点续传、进度显示和下载重试,可能处理本地存储路径、文件命名和格式问题。
-
api.py:为实现M2M的封装与远程 API交互模块,提供统一的请求方法(GET、POST 等),管理认证、会话和错误处理,返回结构化的数据供其他模块使用。
-
filters.py:提供场景数据过滤工具。
2.1 主要参数说明
|
参数 |
类型 |
描述 |
示例 |
|
datasetName |
字符串 |
USGS 数据集名称。要查询可用的数据集,请参考前文。 |
“landsat_ot_c2_l1” |
|
startDate |
ISO 8601 格式日期 |
数据采集开始日期,默认值为 “2000-01-01”。 |
“2020-08-01” |
|
endDate |
ISO 8601 格式日期 |
数据采集结束日期,默认值为当前时间。 |
“2020-08-31” |
|
maxResults |
整数 |
返回的最大场景数量,默认值为 100。 |
10000 |
|
boundingBox |
长度为 4 的元组 |
空间边界框,格式为 (min_lon, max_lon, min_lat, max_lat),使用 EPSG:4326 坐标系。 |
(-126.471753, -112.426439, 32.135664, 42.399335) |
|
geoJsonType |
字符串 |
GeoJson 支持的几何类型。 |
“Polygon” |
|
geoJsonCoords |
列表的列表 |
GeoJson 的坐标,格式为 [lon, lat],使用 EPSG:4326 坐标系。 |
[[[-126.471753,32.135664], [-126.471753,42.399335], [-112.426439,42.399335], [-112.426439,32.135664], [-126.471753,32.135664]]] |
|
geoJsonPath |
字符串 |
GeoJson 文件路径。 |
“geojson/california.geojson” |
|
minCC |
整数 |
用于限制最小云量(适用于支持的 dataset)。默认值为 0。 |
10 |
|
maxCC |
整数 |
用于限制最大云量(适用于支持的 dataset)。默认值为 100。 |
90 |
|
includeUnknownCC |
布尔值 |
是否包含云量未知的场景,默认值为 True。 |
False |
|
metadataInfo |
字典 |
包含用于元数据过滤的信息字典。 |
“and”: [(‘WRS Path’, ‘value’, ‘123’),# 示例:增加 Path 筛选(‘WRS Row’, ‘value’, ‘039’),# 示例:增加 Row 筛选(‘Collection Category’, ‘value’, ‘T1’) ] |
参考:https://github.com/Fergui/m2m-api 进行优化。
2.2 必要的说明
(1)运行前在downloader.py文件中修改数据保存路径

如:
ACQ_PATH = ‘E:/LandsatDataDownLoad/Landsat_OLI/2024/02’(想要保存的路径)
sleep_seconds:脚本在某些操作前或循环中等待的时间,秒
total_max_retries:最大重试次数
download_sleep_seconds:每次下载之间的等待时间,秒
max_threads:最大并发线程数
(2)第一次运行时需要输入用户名与token,每次输入后回车即可,如下所示:

运行之后,如下所示成功请求到数据,并开始下载。

下载成功之后的数据内容如下所示:

2.3 注意事项
-
尽量多申请账号,更换token后再去批量下载(目前还没测试每个账号的下载极限)
-
目前测试了edu邮箱、gmail邮箱注册账号,其他邮箱未测试。
-
申请API的数据访问权限只能申请一次,千万别随意取消,等待收到邮件即可,大概10个小时可通过,在垃圾邮件里面找。
-
下载数据时不需要梯子!!!,且压缩包大小不等
-
若发现下载错误而强行停止下载时,需要手动到官网的数量列表中删除上一个查询的数据,如下所示:地址:https://earthexplorer.usgs.gov/settings?page=scenelist,直接点击删除按钮然后再重新进行新的任务。不然的话会将旧的任务再下载一遍。

上述代码分享如下:
通过网盘分享的文件:20260507
链接: https://pan.baidu.com/s/1m2dDKmehkm45NjUjkKb3xg
提取码: vg8y
夜雨聆风