EODAG简介
EODAG(Earth Observation Data Access Gateway)是由CS GROUP - France公司开发的开源地球观测数据访问工具。它旨在解决地球观测数据获取过程中面临的挑战,为用户提供一个统一的接口来搜索、聚合和下载来自不同提供商的遥感图像数据。
EODAG的核心功能包括:
- 列出产品类型:列出支持的产品及其描述
- 搜索产品:根据提供的搜索条件(如产品类型、时间范围、地理范围等)搜索产品
- 下载产品:"原样"下载产品数据
EODAG采用模块化的插件架构,主要包含三类插件:
- 目录搜索插件:负责搜索数据(如OpenSearch、CSW等)、构建路径、获取快速预览、组合结果等
- 下载插件:允许通过不同协议(如FTP、HTTP等)下载数据并以统一的目录结构本地存储
- 认证插件:用于在外部服务上对用户进行身份验证(如JSON Token、Basic Auth、OAuth等)
自v2.0版本起,EODAG还可以作为STAC(SpatioTemporal Asset Catalog)客户端或服务器运行,进一步增强了其与其他地理空间数据工具的互操作性。
安装与使用
安装
EODAG可通过pip从PyPI安装:
python -m pip install eodag
也可以使用conda从conda-forge频道安装:
conda install -c conda-forge eodag
值得注意的是,从v3.0.0版本开始,EODAG默认只安装最小依赖集。如果需要更多功能,可以安装可选的额外依赖。
Python API使用
以下是使用EODAG Python API的简单示例:
from eodag import EODataAccessGateway
dag = EODataAccessGateway()
search_results = dag.search(
productType='S2_MSI_L1C',
geom={'lonmin': 1, 'latmin': 43.5, 'lonmax': 2, 'latmax': 44},
start='2021-01-01',
end='2021-01-15'
)
product_paths = dag.download_all(search_results)
这段代码会在默认提供商上搜索2021年1月1日至15日期间,指定地理范围内的Sentinel-2 L1C产品,并下载搜索结果中的所有产品。
STAC REST API
EODAG还可以作为STAC兼容的REST API运行。使用以下命令启动服务器:
eodag serve-rest
启动后,可以通过HTTP请求与API交互,例如:
- 列出可用产品类型:
curl "http://127.0.0.1:5000/collections?provider=peps" | jq ".collections[].id"
- 搜索产品:
curl "http://127.0.0.1:5000/search?collections=S2_MSI_L1C&bbox=0,43,1,44&datetime=2018-01-20/2018-01-25"
| jq ".numberMatched"
- 获取下载链接:
curl "http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items"
| jq ".features[0].assets.downloadLink.href"
EODAG还提供了Docker镜像,方便快速部署STAC API服务器:
docker run -p 5000:5000 --rm csspace/eodag-server:3.0.0b3
此外,EODAG还支持与STAC Browser集成,提供了直观的Web界面来浏览STAC API服务器上的数据。
![STAC Browser示例](https://yellow-cdn.veclightyear.com/6d205929/0fab9a1b-7473-43ac-9edd-6cb2472169dd.png)
### 命令行界面
EODAG提供了功能丰富的命令行界面(CLI),方便用户快速上手:
- 搜索产品:
eodag search --productType S2_MSI_L1C --box 1 43 2 44 --start 2021-03-01 --end 2021-03-31
- 下载搜索结果:
eodag download --search-results search_results.geojson
- 仅下载快速预览图:
eodag download --quicklooks --search-results search_results.geojson
- 列出可用产品类型和支持的提供商:
eodag list
CLI还提供了详细的帮助信息和日志级别控制,方便用户了解各个命令的用法和调试。
## 贡献与社区
EODAG是一个开源项目,欢迎社区贡献。无论是修复文档中的错别字、报告bug,还是提出新功能建议,都可以通过GitHub Issues或Pull Requests参与项目开发。
贡献指南提供了设置开发环境和如何为EODAG做出贡献的详细说明。项目采用Apache License v2.0许可证,确保了代码的开放性和可重用性。
## 总结
EODAG作为一个强大而灵活的地球观测数据访问工具,为用户提供了统一的接口来处理来自不同提供商的遥感数据。其插件架构、STAC兼容性以及多样化的使用方式(Python API、REST API、CLI)使其成为地球观测领域的重要工具。无论是数据科学家、遥感专家还是地理信息系统开发者,都能从EODAG中受益,更高效地获取和处理地球观测数据。
随着地球观测数据量的不断增长和数据提供商的多样化,EODAG这样的统一访问工具将在未来发挥越来越重要的作用,推动地球观测应用的发展和创新。