CSWSearch

CSWSearch#

class eodag.plugins.search.csw.CSWSearch(provider, config)[source]#

A plugin for implementing search based on OGC CSW

Parameters:
  • provider (str) – provider name

  • config (PluginConfig) –

    Search plugin configuration:

    • api_endpoint (str) (mandatory): The endpoint of the provider’s search interface

    • version (str): OGC Catalogue Service version; default: 2.0.2

    • search_definition (dict[str, Any]) (mandatory):

      • collection_tags (list[dict[str, Any]): dict of collection tags

      • resource_location_filter (str): regex string

      • date_tags (dict[str, Any]): tags for start and end

    • metadata_mapping (dict[str, Any]): The search plugins of this kind can detect when a metadata mapping is “query-able”, and get the semantics of how to format the query string parameter that enables to make a query on the corresponding metadata. To make a metadata query-able, just configure it in the metadata mapping to be a list of 2 items, the first one being the specification of the query string search formatting. The later is a string following the specification of Python string formatting, with a special behaviour added to it. For example, an entry in the metadata mapping of this kind:

      end_datetime:
          - 'f=acquisition.endViewingDate:lte:{end_datetime#timestamp}'
          - '$.properties.acquisition.endViewingDate'
      

      means that the search url will have a query string parameter named f with a value of acquisition.endViewingDate:lte:1543922280.0 if the search was done with the value of end_datetime being 2018-12-04T12:18:00. What happened is that {end_datetime#timestamp} was replaced with the timestamp of the value of end_datetime. This example shows all there is to know about the semantics of the query string formatting introduced by this plugin: any eodag search parameter can be referenced in the query string with an additional optional conversion function that is separated from it by a # (see format_metadata() for further details on the available converters). Note that for the values in the free_text_search_operations configuration parameter follow the same rule. If the metadata_mapping is not a list but only a string, this means that the parameters is not queryable but it is included in the result obtained from the provider. The string indicates how the provider result should be mapped to the eodag parameter.

__init__(provider, config)[source]#
Parameters:

Methods

__init__(provider, config)

build_sort_by(sort_by_arg)

Build the sorting part of the query string or body by transforming the sort_by argument into a provider-specific string or dictionary

clear()

Clear search context

discover_collections(**kwargs)

Fetch collections list from provider using discover_collections conf

discover_queryables(**kwargs)

Fetch queryables list from provider using discover_queryables conf

get_assets_from_mapping(provider_item)

Create assets based on the assets_mapping in the provider's config and an item returned by the provider

get_collection_cfg_dates([start_default, ...])

Get start and end dates from the collection configuration.

get_collection_cfg_value(key[, default])

Get the value of a configuration option specific to the current collection.

get_collection_def_params(collection[, ...])

Get the provider collection definition parameters and specific settings

get_metadata_mapping([collection])

Get the plugin metadata mapping configuration (collection specific if exists)

get_sort_by_arg(kwargs)

Extract the sort_by argument from the kwargs or the provider default sort configuration

list_queryables(filters, ...[, collection, ...])

Get queryables

map_collection(collection, **kwargs)

Get the provider collection from eodag collection

query([prep])

Perform a search on a OGC/CSW-like interface

queryables_from_metadata_mapping([...])

Extract queryable parameters from collection metadata mapping.

validate(search_params, auth)

Validate a search request.

Attributes

plugins

auth

next_page_url

next_page_query_obj

total_items_nb

need_count