API Plugins
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 has three download methods that it must implement:
query
: search for productsdownload
: download a singleEOProduct
download_all
: download multiple products from aSearchResult
The download methods must:
download data in the
outputs_prefix
folder defined in the plugin’s configuration or passed through kwargsextract products from their archive (if relevant) if
extract
is set to True (True by default)save a product in an archive/directory (in
outputs_prefix
) whose name must be the product’stitle
propertyupdate 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
outputs_prefix/.downloaded
whose name is built on the MD5 hash of the product’sremote_location
attribute (hashlib.md5(remote_location.encode("utf-8")).hexdigest()
) and whose content is the product’sremote_location
attribute itself.not try to download a product whose
location
attribute already points to an existing file/directorynot 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)
- download(product, auth=None, progress_callback=None, wait=2, timeout=20, **kwargs)[source]#
Base download method. Not available, it must be defined for each plugin.
- Parameters
product (
EOProduct
) – The EO product to downloadauth (
PluginConfig
) – (optional) The configuration of a plugin of type Authenticationprogress_callback (
ProgressCallback
) – (optional) A progress callbackwait (int) – (optional) If download fails, wait time in minutes between two download tries
timeout (int) – (optional) If download fails, maximum time in minutes before stop retrying to download
kwargs (Union[str, bool, dict]) – outputs_prefix (str), extract (bool), delete_archive (bool) and dl_url_params (dict) can be provided as additional kwargs and will override any other values defined in a configuration file or with environment variables.
- Returns
The absolute path to the downloaded product in the local filesystem (e.g. ‘/tmp/product.zip’ on Linux or ‘C:\Users\username\AppData\Local\Temp\product.zip’ on Windows)
- Return type
- download_all(products, auth=None, downloaded_callback=None, progress_callback=None, wait=2, timeout=20, **kwargs)[source]#
Base download_all method.
- Parameters
products (
SearchResult
) – Products to downloadauth (
PluginConfig
) – (optional) The configuration of a plugin of type Authenticationdownloaded_callback (Callable[[
EOProduct
], None] or None) – (optional) A method or a callable object which takes as parameter theproduct
. You can use the base classDownloadedCallback
and override its__call__
method. Will be called each time a product finishes downloadingprogress_callback (
ProgressCallback
) – (optional) A progress callbackwait (int) – (optional) If download fails, wait time in minutes between two download tries
timeout (int) – (optional) If download fails, maximum time in minutes before stop retrying to download
kwargs (Union[str, bool, dict]) – outputs_prefix (str), extract (bool), delete_archive (bool) and dl_url_params (dict) can be provided as additional kwargs and will override any other values defined in a configuration file or with environment variables.
- Returns
List of absolute paths to the downloaded products in the local filesystem (e.g.
['/tmp/product.zip']
on Linux or['C:\Users\username\AppData\Local\Temp\product.zip']
on Windows)- Return type
- query(*args, count=True, **kwargs)[source]#
Implementation of how the products must be searched goes here.
This method must return a tuple with (1) a list of EOProduct instances (see eodag.api.product module) which will be processed by a Download plugin (2) and the total number of products matching the search criteria. If
count
is False, the second element returned must beNone
.
This table lists all the api plugins currently available:
|
A plugin that enables to query and download data on the USGS catalogues |
|
A plugin that enables to build download-request and download data on ECMWF MARS. |
|
A plugin that enables to build download-request and download data on CDS API. |