Publishing metadata to OGC API - Records

OGC API - Records provides geospatial data access functionality to vector data.

To add vector data to pygeoapi, you can use the dataset example in Configuration as a baseline and modify accordingly.

Providers

pygeoapi core record providers are listed below, along with a matrix of supported query parameters.

Provider

properties (filters)

resulttype

q

bbox

datetime

sortby

properties (display)

transactions

ElasticsearchCatalogue

results/hits

TinyDBCatalogue

results/hits

CSWFacade

results/hits

Below are specific connection examples based on supported providers.

Connection examples

ElasticsearchCatalogue

Note

Requires Python packages elasticsearch and elasticsearch-dsl

Note

Elasticsearch 8 or greater is supported.

To publish an Elasticsearch index, the following are required in your index:

providers:
    - type: record
      name: ElasticsearchCatalogue
      data: http://localhost:9200/some_metadata_index
      id_field: identifier
      time_field: datetimefield

TinyDBCatalogue

Note

Requires Python package tinydb

To publish a TinyDB index, the following are required in your index:

providers:
    - type: record
      editable: true|false  # optional, default is false
      name: TinyDBCatalogue
      data: /path/to/file.db
      id_field: identifier
      time_field: datetimefield

CSWFacade

Note

Requires Python package OWSLib

To publish a CSW using pygeoapi, the CSW base URL (data) is required. Note that the CSW Record core model is supported as a baseline.

providers:
    - type: record
      name: CSWFacade
      data: https://demo.pycsw.org/cite/csw
      id_field: identifier
      time_field: datetime
      title_field: title

Metadata search examples

Note

provider id_field values support slashes (i.e. my/cool/identifier). The client request would then be responsible for encoding the identifier accordingly (i.e. http://localhost:5000/collections/my-metadata/items/my%2Fcool%2Fidentifier)