eodag


Nameeodag JSON
Version 2.12.1 PyPI version JSON
download
home_pagehttps://github.com/CS-SI/eodag
SummaryEarth Observation Data Access Gateway
upload_time2024-03-05 09:40:50
maintainer
docs_urlNone
authorCS GROUP - France (CSSI)
requires_python>=3.6
licenseApache 2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://eodag.readthedocs.io/en/latest/_static/eodag_bycs.png
    :target: https://github.com/CS-SI/eodag

|

.. image:: https://badge.fury.io/py/eodag.svg
    :target: https://badge.fury.io/py/eodag

.. image:: https://img.shields.io/conda/vn/conda-forge/eodag
    :target: https://anaconda.org/conda-forge/eodag

.. image:: https://readthedocs.org/projects/eodag/badge/?version=latest&style=flat
    :target: https://eodag.readthedocs.io/en/latest/

.. image:: https://github.com/CS-SI/eodag/actions/workflows/test.yml/badge.svg
    :target: https://github.com/CS-SI/eodag/actions

.. image:: https://img.shields.io/github/issues/CS-SI/eodag.svg
    :target: https://github.com/CS-SI/eodag/issues

.. 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

|

.. image:: https://img.shields.io/pypi/l/eodag.svg
    :target: https://pypi.org/project/eodag/

.. image:: https://img.shields.io/pypi/pyversions/eodag.svg
    :target: https://pypi.org/project/eodag/

|

..

    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 product types: list of supported products and their description

* Search products (by product type 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 (OpenSearch, CSW, ...), building paths, retrieving quicklook,
  combining results

* Download plugins, allowing to download and retrieve data locally (via FTP, HTTP, ..), always with the same directory
  organization

* Authentication plugins, which are used to authenticate the user on the external services used (JSON Token, Basic Auth, OAUTH, ...).

Since v2.0 EODAG can be run as `STAC client or server <https://eodag.readthedocs.io/en/latest/stac.html>`_.

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

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, total_count = dag.search(
        productType='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.

STAC REST API
-------------

An eodag instance can be exposed through a STAC compliant REST api from the command line:

.. code-block:: bash

    $ eodag serve-rest --help
    Usage: eodag serve-rest [OPTIONS]

      Start eodag HTTP server

      Set EODAG_CORS_ALLOWED_ORIGINS environment variable to configure Cross-
      Origin Resource Sharing allowed origins as comma-separated URLs (e.g.
      'http://somewhere,htttp://somewhere.else').

    Options:
      -f, --config PATH   File path to the user configuration file with its
                          credentials, default is ~/.config/eodag/eodag.yml
      -l, --locs PATH     File path to the location shapefiles configuration file
      -d, --daemon        run in daemon mode
      -w, --world         run uvicorn using IPv4 0.0.0.0 (all network interfaces),
                          otherwise bind to 127.0.0.1 (localhost).
      -p, --port INTEGER  The port on which to listen  [default: 5000]
      --debug             Run in debug mode (for development purpose)
      --help              Show this message and exit.

    # run server
    $ eodag serve-rest

    # list available product types for ``peps`` provider:
    $ curl "http://127.0.0.1:5000/collections?provider=peps" | jq ".collections[].id"
    "S1_SAR_GRD"
    "S1_SAR_OCN"
    "S1_SAR_SLC"
    "S2_MSI_L1C"
    "S2_MSI_L2A"

    # search for items
    $ 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"
    6

    # browse for items
    $ curl "http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items" \
    | jq ".numberMatched"
    9

    # get download link
    $ 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"
    "http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items/S2A_MSIL1C_20210125T105331_N0209_R051_T31UCR_20210125T130733/download"

    # download
    $ wget "http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items/S2A_MSIL1C_20210125T105331_N0209_R051_T31UCR_20210125T130733/download"


``eodag-server`` is available on `https://hub.docker.com/r/csspace/eodag-server <https://hub.docker.com/r/csspace/eodag-server>`_:

.. code-block:: bash

    docker run -p 5000:5000 --rm csspace/eodag-server:2.12.1

You can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.
Simply run:

.. code-block:: bash

    git clone https://github.com/CS-SI/eodag.git
    cd eodag
    docker-compose up
    # or for a more verbose logging:
    EODAG_LOGGING=3 docker-compose up

And browse http://127.0.0.1:5001:

.. image:: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/stac_browser_example_600.png
   :target: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/stac_browser_example.png
   :alt: STAC browser example
   :width: 600px


For more information, see `STAC REST API usage <https://eodag.readthedocs.io/en/latest/stac_rest.html>`_.

Command line interface
----------------------

Start playing with the CLI:

- To search for some products::

     eodag search --productType S2_MSI_L1C --box 1 43 2 44 --start 2021-03-01 --end 2021-03-31

  The request above searches for ``S2_MSI_L1C`` product types in a given bounding box, in March 2021. It saves the results in a GeoJSON file (``search_results.geojson`` by 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 product types and supported providers::

     eodag list

- To list available product types on a specified supported provider::

     eodag list -p creodias

- To see all the available options and commands::

     eodag --help

- To print log messages, add ``-v`` to eodag master command. e.g. ``eodag -v list``. The more ``v`` given (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!

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/CS-SI/eodag",
    "name": "eodag",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "CS GROUP - France (CSSI)",
    "author_email": "eodag@csgroup.space",
    "download_url": "https://files.pythonhosted.org/packages/0f/44/d1787499d7330613fe21286b15b38dfa3a8596dd29ff689cb717f73322eb/eodag-2.12.1.tar.gz",
    "platform": null,
    "description": ".. image:: https://eodag.readthedocs.io/en/latest/_static/eodag_bycs.png\n    :target: https://github.com/CS-SI/eodag\n\n|\n\n.. image:: https://badge.fury.io/py/eodag.svg\n    :target: https://badge.fury.io/py/eodag\n\n.. image:: https://img.shields.io/conda/vn/conda-forge/eodag\n    :target: https://anaconda.org/conda-forge/eodag\n\n.. image:: https://readthedocs.org/projects/eodag/badge/?version=latest&style=flat\n    :target: https://eodag.readthedocs.io/en/latest/\n\n.. image:: https://github.com/CS-SI/eodag/actions/workflows/test.yml/badge.svg\n    :target: https://github.com/CS-SI/eodag/actions\n\n.. image:: https://img.shields.io/github/issues/CS-SI/eodag.svg\n    :target: https://github.com/CS-SI/eodag/issues\n\n.. image:: https://mybinder.org/badge_logo.svg\n    :target: https://mybinder.org/v2/git/https%3A%2F%2Fgithub.com%2FCS-SI%2Feodag.git/master?filepath=docs%2Fnotebooks%2Fintro_notebooks.ipynb\n\n|\n\n.. image:: https://img.shields.io/pypi/l/eodag.svg\n    :target: https://pypi.org/project/eodag/\n\n.. image:: https://img.shields.io/pypi/pyversions/eodag.svg\n    :target: https://pypi.org/project/eodag/\n\n|\n\n..\n\n    Checkout **EODAG Jupyterlab extension**: `eodag-labextension <https://github.com/CS-SI/eodag-labextension>`_!\n    This will bring a friendly UI to your notebook and help you search and browse for EO products using ``eodag``.\n\nEODAG (Earth Observation Data Access Gateway) is a command line tool and a plugin-oriented Python framework for searching,\naggregating results and downloading remote sensed images while offering a unified API for data access regardless of the\ndata provider. The EODAG SDK is structured around three functions:\n\n* List product types: list of supported products and their description\n\n* Search products (by product type or uid) : searches products according to the search criteria provided\n\n* Download products : download product \u201cas is\"\n\nEODAG is developed in Python. It is structured according to a modular plugin architecture, easily extensible and able to\nintegrate new data providers. Three types of plugins compose the tool:\n\n* Catalog search plugins, responsible for searching data (OpenSearch, CSW, ...), building paths, retrieving quicklook,\n  combining results\n\n* Download plugins, allowing to download and retrieve data locally (via FTP, HTTP, ..), always with the same directory\n  organization\n\n* Authentication plugins, which are used to authenticate the user on the external services used (JSON Token, Basic Auth, OAUTH, ...).\n\nSince v2.0 EODAG can be run as `STAC client or server <https://eodag.readthedocs.io/en/latest/stac.html>`_.\n\nRead `the documentation <https://eodag.readthedocs.io/en/latest/>`_ for more insights.\n\n.. image:: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/eodag_overview.png\n   :alt: EODAG overview\n   :class: no-scaled-link\n\nInstallation\n============\n\nEODAG is available on `PyPI <https://pypi.org/project/eodag/>`_:\n\n.. code-block:: bash\n\n   python -m pip install eodag\n\nAnd with ``conda`` from the `conda-forge channel <https://anaconda.org/conda-forge/eodag>`_:\n\n.. code-block:: bash\n\n   conda install -c conda-forge eodag\n\nUsage\n=====\n\nFor downloading you will need to fill your credentials for the desired providers in your\n`eodag user configuration file <https://eodag.readthedocs.io/en/latest/getting_started_guide/configure.html>`_.\nThe file will automatically be created with empty values on the first run.\n\nPython API\n----------\n\nExample usage for interacting with the api in your Python code:\n\n.. code-block:: python\n\n    from eodag import EODataAccessGateway\n\n    dag = EODataAccessGateway()\n\n    search_results, total_count = dag.search(\n        productType='S2_MSI_L1C',\n        geom={'lonmin': 1, 'latmin': 43.5, 'lonmax': 2, 'latmax': 44}, # accepts WKT polygons, shapely.geometry, ...\n        start='2021-01-01',\n        end='2021-01-15'\n    )\n\n    product_paths = dag.download_all(search_results)\n\n\nThis will search for Sentinel 2 level-1C products on the default provider and return the found products first page and\nan estimated total number of products matching the search criteria. And then it will download these products. Please\ncheck the `Python API User Guide <https://eodag.readthedocs.io/en/latest/api_user_guide.html>`_ for more details.\n\nSTAC REST API\n-------------\n\nAn eodag instance can be exposed through a STAC compliant REST api from the command line:\n\n.. code-block:: bash\n\n    $ eodag serve-rest --help\n    Usage: eodag serve-rest [OPTIONS]\n\n      Start eodag HTTP server\n\n      Set EODAG_CORS_ALLOWED_ORIGINS environment variable to configure Cross-\n      Origin Resource Sharing allowed origins as comma-separated URLs (e.g.\n      'http://somewhere,htttp://somewhere.else').\n\n    Options:\n      -f, --config PATH   File path to the user configuration file with its\n                          credentials, default is ~/.config/eodag/eodag.yml\n      -l, --locs PATH     File path to the location shapefiles configuration file\n      -d, --daemon        run in daemon mode\n      -w, --world         run uvicorn using IPv4 0.0.0.0 (all network interfaces),\n                          otherwise bind to 127.0.0.1 (localhost).\n      -p, --port INTEGER  The port on which to listen  [default: 5000]\n      --debug             Run in debug mode (for development purpose)\n      --help              Show this message and exit.\n\n    # run server\n    $ eodag serve-rest\n\n    # list available product types for ``peps`` provider:\n    $ curl \"http://127.0.0.1:5000/collections?provider=peps\" | jq \".collections[].id\"\n    \"S1_SAR_GRD\"\n    \"S1_SAR_OCN\"\n    \"S1_SAR_SLC\"\n    \"S2_MSI_L1C\"\n    \"S2_MSI_L2A\"\n\n    # search for items\n    $ curl \"http://127.0.0.1:5000/search?collections=S2_MSI_L1C&bbox=0,43,1,44&datetime=2018-01-20/2018-01-25\" \\\n    | jq \".numberMatched\"\n    6\n\n    # browse for items\n    $ curl \"http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items\" \\\n    | jq \".numberMatched\"\n    9\n\n    # get download link\n    $ curl \"http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items\" \\\n    | jq \".features[0].assets.downloadLink.href\"\n    \"http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items/S2A_MSIL1C_20210125T105331_N0209_R051_T31UCR_20210125T130733/download\"\n\n    # download\n    $ wget \"http://127.0.0.1:5000/catalogs/S2_MSI_L1C/country/FRA/year/2021/month/01/day/25/cloud_cover/10/items/S2A_MSIL1C_20210125T105331_N0209_R051_T31UCR_20210125T130733/download\"\n\n\n``eodag-server`` is available on `https://hub.docker.com/r/csspace/eodag-server <https://hub.docker.com/r/csspace/eodag-server>`_:\n\n.. code-block:: bash\n\n    docker run -p 5000:5000 --rm csspace/eodag-server:2.12.1\n\nYou can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.\nSimply run:\n\n.. code-block:: bash\n\n    git clone https://github.com/CS-SI/eodag.git\n    cd eodag\n    docker-compose up\n    # or for a more verbose logging:\n    EODAG_LOGGING=3 docker-compose up\n\nAnd browse http://127.0.0.1:5001:\n\n.. image:: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/stac_browser_example_600.png\n   :target: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/stac_browser_example.png\n   :alt: STAC browser example\n   :width: 600px\n\n\nFor more information, see `STAC REST API usage <https://eodag.readthedocs.io/en/latest/stac_rest.html>`_.\n\nCommand line interface\n----------------------\n\nStart playing with the CLI:\n\n- To search for some products::\n\n     eodag search --productType S2_MSI_L1C --box 1 43 2 44 --start 2021-03-01 --end 2021-03-31\n\n  The request above searches for ``S2_MSI_L1C`` product types in a given bounding box, in March 2021. It saves the results in a GeoJSON file (``search_results.geojson`` by default).\n\n  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::\n\n     eodag search --help\n\n- To download the result of the previous call to search::\n\n     eodag download --search-results search_results.geojson\n\n- To download only the result quicklooks of the previous call to search::\n\n     eodag download --quicklooks --search-results search_results.geojson\n\n- To list all available product types and supported providers::\n\n     eodag list\n\n- To list available product types on a specified supported provider::\n\n     eodag list -p creodias\n\n- To see all the available options and commands::\n\n     eodag --help\n\n- To print log messages, add ``-v`` to eodag master command. e.g. ``eodag -v list``. The more ``v`` given (up to 3), the more verbose the tool is. For a full verbose output, do for example: ``eodag -vvv list``\n\nContribute\n==========\n\nHave you spotted a typo in our documentation? Have you observed a bug while running EODAG?\nDo you have a suggestion for a new feature?\n\nDon't hesitate and open an issue or submit a pull request, contributions are most welcome!\n\nFor guidance on setting up a development environment and how to make a\ncontribution to eodag, see the `contributing guidelines`_.\n\n.. _contributing guidelines: https://github.com/CS-SI/eodag/blob/develop/CONTRIBUTING.rst\n\n\nLicense\n=======\n\nEODAG is licensed under Apache License v2.0.\nSee LICENSE file for details.\n\n\nAuthors\n=======\n\nEODAG has been created by `CS GROUP - France <https://www.csgroup.eu/>`_.\n\n\nCredits\n=======\n\nEODAG is built on top of amazingly useful open source projects. See NOTICE file for details about those projects and\ntheir licenses.\nThank you to all the authors of these projects!\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Earth Observation Data Access Gateway",
    "version": "2.12.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/CS-SI/eodag/issues/",
        "Documentation": "https://eodag.readthedocs.io",
        "Homepage": "https://github.com/CS-SI/eodag",
        "Source Code": "https://github.com/CS-SI/eodag"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "700564aae39549590c27e41d7f6dfff7975815656bf672c22f161d34d7d11586",
                "md5": "9829b0ea6cb1afdfaad44ef8c5844ba6",
                "sha256": "ad613763ac8cb1504d0e60b28a5c32d498c1aeb8bf9e4a7403a0e4a2c7bc5f63"
            },
            "downloads": -1,
            "filename": "eodag-2.12.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9829b0ea6cb1afdfaad44ef8c5844ba6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 623172,
            "upload_time": "2024-03-05T09:40:47",
            "upload_time_iso_8601": "2024-03-05T09:40:47.000635Z",
            "url": "https://files.pythonhosted.org/packages/70/05/64aae39549590c27e41d7f6dfff7975815656bf672c22f161d34d7d11586/eodag-2.12.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f44d1787499d7330613fe21286b15b38dfa3a8596dd29ff689cb717f73322eb",
                "md5": "04adedfe81947d951349ed7ea74279f3",
                "sha256": "507a2b3335c6882f90f3b61ab1b71b6c677018520e2c5895b16d43e7130a5916"
            },
            "downloads": -1,
            "filename": "eodag-2.12.1.tar.gz",
            "has_sig": false,
            "md5_digest": "04adedfe81947d951349ed7ea74279f3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 8472289,
            "upload_time": "2024-03-05T09:40:50",
            "upload_time_iso_8601": "2024-03-05T09:40:50.565553Z",
            "url": "https://files.pythonhosted.org/packages/0f/44/d1787499d7330613fe21286b15b38dfa3a8596dd29ff689cb717f73322eb/eodag-2.12.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-05 09:40:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CS-SI",
    "github_project": "eodag",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "eodag"
}
        
Elapsed time: 0.19074s