LandsatXplore 项目教程
1. 项目介绍
LandsatXplore 是一个 Python 包,提供了与 EarthExplorer 门户的接口,用于通过命令行界面或 Python API 搜索和下载 Landsat 场景。该项目支持以下数据集:
- Landsat 5 TM Collection 2 Level 1
- Landsat 5 TM Collection 2 Level 2
- Landsat 7 ETM+ Collection 2 Level 1
- Landsat 7 ETM+ Collection 2 Level 2
- Landsat 8 Collection 2 Level 1
- Landsat 8 Collection 2 Level 2
- Landsat 9 Collection 2 Level 1
- Landsat 9 Collection 2 Level 2
2. 项目快速启动
安装
使用 pip 安装 LandsatXplore:
pip install landsatxplore
搜索 Landsat 场景
以下是一个搜索 Landsat 5 TM 场景的示例,搜索包含位置 (12, 53, -1, 53) 且在 1995 年获取的场景:
landsatxplore search --dataset landsat_tm_c2_l1 --location 12,53 -1,53 \
--start 1995-01-01 --end 1995-12-31
下载 Landsat 场景
以下是一个下载三个 Landsat 场景的示例:
landsatxplore download LT51960471995178MPS00 LC80390222013076EDC00 LC82150682015350LGN01
3. 应用案例和最佳实践
应用案例
案例 1:搜索特定区域的 Landsat 7 ETM 场景
假设我们需要搜索布鲁塞尔地区云量小于 5% 的 Landsat 7 ETM 场景,并将结果保存到 CSV 文件中:
landsatxplore search --dataset landsat_tm_c2_l2 \
--location 50,83 4,38 --clouds 5 > results.csv
案例 2:使用 Python API 搜索场景
以下是一个使用 Python API 搜索 Landsat TM 场景的示例:
from landsatxplore.api import API
# 初始化 API 实例并获取访问密钥
api = API(username, password)
# 搜索 Landsat TM 场景
scenes = api.search(
dataset='landsat_tm_c2_l1',
latitude=50.85,
longitude=-4.35,
start_date='1995-01-01',
end_date='1995-10-01',
max_cloud_cover=10
)
print(f"{len(scenes)} scenes found")
# 处理结果
for scene in scenes:
print(scene['acquisition_date'].strftime('%Y-%m-%d'))
# 注销
api.logout()
最佳实践
- 使用环境变量存储凭证:为了避免在代码中硬编码用户名和密码,建议使用环境变量存储这些凭证。
- 批量下载:对于大量场景的下载,建议使用脚本自动化下载过程,以提高效率。
4. 典型生态项目
LandsatXplore 可以与其他遥感数据处理工具结合使用,例如:
- GDAL:用于处理和转换地理空间数据格式。
- Rasterio:用于读取和写入栅格数据。
- Sentinel Hub:用于访问和处理 Sentinel 卫星数据。
这些工具可以与 LandsatXplore 结合使用,构建更复杂的遥感数据处理流程。