All Projects → CS-SI → eodag

CS-SI / eodag

Licence: Apache-2.0 license
Earth Observation Data Access Gateway

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to eodag

ee extra
A ninja python package that unifies the Google Earth Engine ecosystem.
Stars: ✭ 42 (-77.05%)
Mutual labels:  gis, landsat, sentinel, remote-sensing, satellite-imagery, modis
awesome-spectral-indices
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.
Stars: ✭ 357 (+95.08%)
Mutual labels:  gis, landsat, sentinel, remote-sensing, satellite-imagery, modis
spectral
Awesome Spectral Indices for the Google Earth Engine JavaScript API (Code Editor).
Stars: ✭ 68 (-62.84%)
Mutual labels:  gis, landsat, sentinel, remote-sensing, modis
pylandsat
Search, download, and preprocess Landsat imagery 🛰️
Stars: ✭ 49 (-73.22%)
Mutual labels:  gis, landsat, remote-sensing, earth-observation
Felicette
Satellite imagery for dummies.
Stars: ✭ 1,710 (+834.43%)
Mutual labels:  geospatial, gis, satellite-imagery, earth-observation
land-cover-to-land-use-classification
Satellite image processing pipeline to classify land-cover and land-use
Stars: ✭ 64 (-65.03%)
Mutual labels:  gis, landsat, remote-sensing, satellite-imagery
xarray-sentinel
Xarray backend to Copernicus Sentinel-1 satellite data products
Stars: ✭ 189 (+3.28%)
Mutual labels:  remote-sensing, copernicus, satellite-imagery, earth-observation
pylandtemp
Algorithms for computing global land surface temperature and emissivity from NASA's Landsat satellite images with Python.
Stars: ✭ 110 (-39.89%)
Mutual labels:  geospatial, landsat, remote-sensing, earth-observation
Geospatial Machine Learning
A curated list of resources focused on Machine Learning in Geospatial Data Science.
Stars: ✭ 289 (+57.92%)
Mutual labels:  geospatial, gis, remote-sensing, satellite-imagery
deck.gl-raster
deck.gl layers and WebGL modules for client-side satellite imagery analysis
Stars: ✭ 60 (-67.21%)
Mutual labels:  landsat, remote-sensing, satellite-imagery, earth-observation
wildfire-forecasting
Forecasting wildfire danger using deep learning.
Stars: ✭ 39 (-78.69%)
Mutual labels:  gis, remote-sensing, earth-observation
sentinel-util
A CLI for downloading, processing, and making a mosaic from Sentinel-1, -2 and -3 data
Stars: ✭ 22 (-87.98%)
Mutual labels:  gis, remote-sensing, satellite-imagery
sits
Satellite image time series in R
Stars: ✭ 342 (+86.89%)
Mutual labels:  geospatial, remote-sensing, satellite-imagery
aruco-geobits
geobits: ArUco Ground Control Point Targets and Detection for Aerial Imagery (UAV/MAV).
Stars: ✭ 32 (-82.51%)
Mutual labels:  geospatial, gis, remote-sensing
aitlas
AiTLAS implements state-of-the-art AI methods for exploratory and predictive analysis of satellite images.
Stars: ✭ 134 (-26.78%)
Mutual labels:  sentinel, remote-sensing, earth-observation
iris
Semi-automatic tool for manual segmentation of multi-spectral and geo-spatial imagery.
Stars: ✭ 87 (-52.46%)
Mutual labels:  remote-sensing, satellite-imagery, earth-observation
rsgislib
Remote Sensing and GIS Software Library; python module tools for processing spatial data.
Stars: ✭ 103 (-43.72%)
Mutual labels:  gis, remote-sensing, earth-observation
eemont
A python package that extends Google Earth Engine.
Stars: ✭ 290 (+58.47%)
Mutual labels:  gis, remote-sensing, satellite-imagery
Python Geospatial
A collection of Python packages for geospatial analysis with binder-ready notebook examples
Stars: ✭ 187 (+2.19%)
Mutual labels:  geospatial, gis, remote-sensing
earthengine-apps
A collection of Earth Engine Apps created using geemap, voila, and heroku
Stars: ✭ 20 (-89.07%)
Mutual labels:  geospatial, gis, remote-sensing
https://eodag.readthedocs.io/en/latest/_static/eodag_bycs.png

https://img.shields.io/conda/vn/conda-forge/eodag https://readthedocs.org/projects/eodag/badge/?version=latest&style=flat


Checkout the new Jupyterlab extension: eodag-labextension! This will bring a fiendly 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.

Read the documentation for more insights.

EODAG overview

Installation

EODAG is available on PyPI:

python -m pip install eodag

And with conda from the conda-forge channel:

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

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 for more details.

STAC REST API

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

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

  Start eodag HTTP server

Options:
  -f, --config PATH   File path to the user configuration file with its
                      credentials
  -d, --daemon TEXT   run in daemon mode
  -w, --world         run flask using IPv4 0.0.0.0 (all network interfaces),
                      otherwise bind to 127.0.0.1 (localhost). This maybe
                      necessary in systems that only run Flask  [default:
                      False]
  -p, --port INTEGER  The port on which to listen  [default: 5000]
  --debug             Run in debug mode (for development purpose)  [default:
                      False]
  --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"
"S3_EFR"
"S3_ERR"
"S3_LAN"
"S3_OLCI_L2LFR"
"S3_OLCI_L2LRR"
"S3_SLSTR_L1RBT"
"S3_SLSTR_L2LST"

# 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 ".context.matched"
6

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

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

You can also browse over your STAC API server using STAC Browser. Simply run:

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:

STAC browser example

For more information, see STAC REST API usage.

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

License

EODAG is licensed under Apache License v2.0. See LICENSE file for details.

Authors

EODAG has been created by CS GROUP - France.

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 !

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].