API Plugins

Contents

API Plugins#

Api plugins must inherit the following class and implement query() and download():

class eodag.plugins.apis.base.Api(provider, config)[source]#

Plugins API Base plugin

An Api plugin inherits the methods from Search and Download plugins.

There are three methods that it must implement:

  • query: search for products

  • download: download a single EOProduct

  • download_all: download multiple products from a SearchResult

The download methods must:

  • download data in the output_dir folder defined in the plugin’s configuration or passed through kwargs

  • extract products from their archive (if relevant) if extract is set to True (True by default)

  • save a product in an archive/directory (in output_dir) whose name must be the product’s title property

  • update the product’s location attribute once its data is downloaded (and eventually after it’s extracted) to the product’s location given as a file URI (e.g. ‘file:///tmp/product_folder’ on Linux or ‘file:///C:/Users/username/AppData/Local/Temp’ on Windows)

  • save a record file in the directory output_dir/.downloaded whose name is built on the MD5 hash of the product’s product_type and properties['id'] attributes (hashlib.md5((product.product_type+"-"+product.properties['id']).encode("utf-8")).hexdigest()) and whose content is the product’s remote_location attribute itself.

  • not try to download a product whose location attribute already points to an existing file/directory

  • not try to download a product if its record file exists as long as the expected product’s file/directory. If the record file only is found, it must be deleted (it certainly indicates that the download didn’t complete)

Parameters:
  • provider (str) – An EODAG provider name

  • config (dict[str, Any]) – An EODAG plugin configuration

This table lists all the api plugins currently available:

usgs.UsgsApi(provider, config)

A plugin that enables to query and download data on the USGS catalogues

ecmwf.EcmwfApi(provider, config)

A plugin that enables to build download-request and download data on ECMWF MARS.