Eodag
Earth Observation Data Access Gateway
Install / Use
/learn @CS-SI/EodagREADME
.. image:: https://eodag.readthedocs.io/en/latest/_static/eodag_bycs.png :target: https://github.com/CS-SI/eodag
|
.. |pypi-badge| image:: https://badge.fury.io/py/eodag.svg :target: https://badge.fury.io/py/eodag
.. |conda-badge| image:: https://img.shields.io/conda/vn/conda-forge/eodag :target: https://anaconda.org/conda-forge/eodag
.. |rtd-badge| image:: https://readthedocs.org/projects/eodag/badge/?version=latest&style=flat :target: https://eodag.readthedocs.io/en/latest/
.. |gha-badge| image:: https://github.com/CS-SI/eodag/actions/workflows/test.yml/badge.svg :target: https://github.com/CS-SI/eodag/actions
.. |ghi-badge| image:: https://img.shields.io/github/issues/CS-SI/eodag.svg :target: https://github.com/CS-SI/eodag/issues
.. |binder-badge| image:: https://mybinder.org/badge_logo.svg :target: https://mybinder.org/v2/git/https%3A%2F%2Fgithub.com%2FCS-SI%2Feodag.git/master?filepath=docs%2Fnotebooks%2Fintro_notebooks.ipynb
|pypi-badge| |conda-badge| |rtd-badge| |gha-badge| |ghi-badge| |binder-badge|
.. |license-badge| image:: https://img.shields.io/pypi/l/eodag.svg :target: https://pypi.org/project/eodag/
.. |versions-badge| image:: https://img.shields.io/pypi/pyversions/eodag.svg :target: https://pypi.org/project/eodag/
.. |zenodo-badge| image:: https://zenodo.org/badge/203819248.svg :target: https://doi.org/10.5281/zenodo.18552649
|license-badge| |versions-badge| |zenodo-badge|
|
..
Checkout **EODAG Jupyterlab extension**: `eodag-labextension <https://github.com/CS-SI/eodag-labextension>`_!
This will bring a friendly UI to your notebook and help you search and browse for EO products using ``eodag``.
EODAG (Earth Observation Data Access Gateway) is a command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a unified API for data access regardless of the data provider. The EODAG SDK is structured around three functions:
-
List collections: list of supported products and their description
-
Search products (by collection or uid): searches products according to the search criteria provided
-
Download products: download product “as is"
EODAG is developed in Python. It is structured according to a modular plugin architecture, easily extensible and able to integrate new data providers. Three types of plugins compose the tool:
-
Catalog search plugins, responsible for searching data (STAC, OpenSearch, OData, ...), building paths, retrieving quicklook, combining results
-
Download plugins, allowing to download and retrieve data locally (via HTTP, S3, ...), always with the same directory organization
-
Authentication plugins, which are used to authenticate the user on the external services used (JSON Token, Basic Auth, OIDC, ...).
Read the documentation <https://eodag.readthedocs.io/en/latest/>_ for more insights.
.. image:: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/eodag_overview.png :alt: EODAG overview :class: no-scaled-link
Installation
EODAG is available on PyPI <https://pypi.org/project/eodag/>_:
.. code-block:: bash
python -m pip install eodag
And with conda from the conda-forge channel <https://anaconda.org/conda-forge/eodag>_:
.. code-block:: bash
conda install -c conda-forge eodag
..
[!IMPORTANT]
Breaking change <https://eodag.readthedocs.io/en/latest/breaking_changes.html>_ in v3.0.0:
Please note that EODAG
comes with a minimal set of dependencies. If you want more features, please install using one of the
available extras <https://eodag.readthedocs.io/en/latest/getting_started_guide/install.html#optional-dependencies>_.
Usage
For downloading you will need to fill your credentials for the desired providers in your
eodag user configuration file <https://eodag.readthedocs.io/en/latest/getting_started_guide/configure.html>_.
The file will automatically be created with empty values on the first run.
Python API
Example usage for interacting with the api in your Python code:
.. code-block:: python
from eodag import EODataAccessGateway
dag = EODataAccessGateway()
search_results = dag.search(
collection='S2_MSI_L1C',
geom={'lonmin': 1, 'latmin': 43.5, 'lonmax': 2, 'latmax': 44}, # accepts WKT polygons, shapely.geometry, ...
start='2021-01-01',
end='2021-01-15'
)
product_paths = dag.download_all(search_results)
This will search for Sentinel 2 level-1C products on the default provider and return the found products first page and
an estimated total number of products matching the search criteria. And then it will download these products. Please
check the Python API User Guide <https://eodag.readthedocs.io/en/latest/api_user_guide.html>_ for more details.
..
[!IMPORTANT]
Breaking change <https://eodag.readthedocs.io/en/latest/breaking_changes.html>_ in v3.0.0:
search() <https://eodag.readthedocs.io/en/latest/api_reference/core.html#eodag.api.core.EODataAccessGateway.search>_ method now returns
only a single SearchResult instead of a 2 values tuple.
Command line interface
Start playing with the CLI:
-
To search for some products::
eodag search --collection S2_MSI_L1C --box 1 43 2 44 --start 2021-03-01 --end 2021-03-31
The request above searches for
S2_MSI_L1Ccollections in a given bounding box, in March 2021. It saves the results in a GeoJSON file (search_results.geojsonby default).Results are paginated, you may want to get all pages at once with
--all, or search products having 20% of maximum coud cover with--cloudCover 20. For more information on available options::eodag search --help
-
To download the result of the previous call to search::
eodag download --search-results search_results.geojson
-
To download only the result quicklooks of the previous call to search::
eodag download --quicklooks --search-results search_results.geojson
-
To list all available collections and supported providers::
eodag list
-
To list available collections on a specified supported provider::
eodag list -p creodias
-
To see all the available options and commands::
eodag --help
-
To print log messages, add
-vto eodag master command. e.g.eodag -v list. The morevgiven (up to 3), the more verbose the tool is. For a full verbose output, do for example:eodag -vvv list
Contribute
Have you spotted a typo in our documentation? Have you observed a bug while running EODAG? Do you have a suggestion for a new feature?
Don't hesitate and open an issue or submit a pull request, contributions are most welcome!
For guidance on setting up a development environment and how to make a
contribution to eodag, see the contributing guidelines_.
.. _contributing guidelines: https://github.com/CS-SI/eodag/blob/develop/CONTRIBUTING.rst
License
EODAG is licensed under Apache License v2.0. See LICENSE file for details.
Authors
EODAG has been created by CS GROUP - France <https://www.csgroup.eu/>_.
Credits
EODAG is built on top of amazingly useful open source projects. See NOTICE file for details about those projects and their licenses. Thank you to all the authors of these projects!
Related Skills
node-connect
337.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.1kCommit, push, and open a PR
