Skip to main content

pygeoapi plugins

Project description

pygeoapi-plugins

pygeoapi plugins developed by the Center for Geospatial Solutions

OGC API - Features

Additional OGC API - Feature providers are listed below, along with a matrix of supported query parameters.

Provider Property Filters/Display Result Type BBox Datetime Sort By Skip Geometry CQL Transactions CRS
CKAN ✅/✅ results/hits
PsuedoPostgreSQL ✅/✅ results/hits
SPARQL ❌/✅ results/hits
GeoPandas ✅/✅ results/hits

The provider names listed in the table are only accessible in internetofwater/pygeoapi, otherwise the full python path is required.

CKAN

The CKAN Provider enables OGC API - Feature support at the collection level for a specific resource within the datastore-search endpoints of CKAN instances. It allows you to integrate CKAN resources into your pygeoapi instance. The provider definition for the CKAN Provider includes configuration options specific to CKAN. To use the CKAN Provider, you need to specify pygeoapi_plugins.provider.ckan.CKANProvider as the provider's name.

providers:
  - type: feature
    name: pygeoapi_plugins.provider.ckan.CKANProvider
    data: https://catalog.newmexicowaterdata.org/api/3/action/datastore_search
    resource_id: 08369d21-520b-439e-97e3-5ecb50737887
    id_field: _id
    x_field: LONDD
    y_field: LATDD

In this example, the CKAN Provider is configured to work with the specified CKAN resource.

  • data: The URL endpoint for the datastore search API of the CKAN instance.
  • resource_id: The identifier of the specific CKAN resource you want to access within the datastore.
  • id_field: The field that serves as the unique identifier for features in the CKAN resource.
  • x_field: The field representing the X-coordinate (longitude) for the features in the CKAN resource.
  • y_field: The field representing the Y-coordinate (latitude) for the features in the CKAN resource.

PseudoPostgresSQL

The PseudoPostgresSQL Provider adds a simple capacity to the PostgresSQL Provider in pygeoapi core - faster counting. This is done by performing a pseudo-count on tables exceeding a definable limit. The limit is defined using the PSEUDO_COUNT_LIMIT environment variable. To use the PseudoPostgresSQL Provider, you need to specify pygeoapi_plugins.provider.postgresql.PseudoPostgreSQLProvider as the provider's name.

SPARQL

The SPARQL Provider is a wrapper for any pygeoapi feature provider that provides additional context, allowing integration of SPARQL-based data sources into a pygeoapi instance. By wrapping another feature provider, the SPARQL Provider inherits queryable capacities from the wrapped feature provider - adding SPARQL context to each resulting feature. The provider definition for the SPARQL Provider is similar to that of the wrapped provider, with the addition of specific SPARQL-related configuration options. To use the SPARQL Provider, you need to specify pygeoapi_plugins.provider.sparql.SPARQLProvider as the provider's name.

providers:
  - # Normal pygeoapi provider configuration
    type: feature
    data: /pygeoapi_plugins/tests/data/places.csv
    id_field: index
    geometry:
      x_field: lon
      y_field: lat
    #
    name: pygeoapi_plugins.provider.sparql.SPARQLProvider
    sparql_provider: CSV # Name of provider SPARQL is wrapping
    sparql_query:
      endpoint: https://dbpedia.org/sparql
      bind:
        name: uri
        variable: '?subject'
      prefixes:
        '': <http://dbpedia.org/resource/>
        dbpedia2: <http://dbpedia.org/property/>
        dbo: <http://dbpedia.org/ontology/>
      where:
        - subject: '?subject'
          predicate: dbo:populationTotal
          object: '?population'
        - subject: '?subject'
          predicate: dbo:country
          object: '?country'
        - subject: '?subject'
          predicate: '<http://dbpedia.org/property/leaderName>'
          object: '?leader'
      filter:
        - 'FILTER (isIRI(?leader) || isLiteral(?leader))'

In this example, the SPARQL Provider wraps the GeoJSON Provider. The SPARQL Provider only uses variables prefixed with sparql_ in the configuration.

  • data: The path to the data file used by the wrapped provider (GeoJSON Provider in this case).
  • id_field: The field that serves as the unique identifier for features in the data.
  • sparql_provider: The name of the provider that will handle the SPARQL query results (GeoJSON Provider in this case).
  • sparql_query: The SPARQL object holding the content of the SPARQL query.
    • endpoint: The SPARQL variable representing the graph IRI in the query.
    • bind:
      • name: Field in the wrapped properties block to query the graph with
      • variable: The SPARQL variable used for querying (e.g., ?subject). prefixes:
    • prefixes: Optional dictionary defining the prefixes used in the SPARQL query.
    • where: A list of mappings that define the WHERE clause of the SPARQL query. Each mapping includes:
      • subject: The subject of the triple pattern.
      • predicate: The predicate of the triple pattern.
      • object: The object of the triple pattern.
    • filter: A list of SPARQL filter expressions to apply to the results.

GeoPandas

The GeoPandas Provider enables OGC API - Feature support using GeoPandas as the backend. This integration can read in data files in any of the geospatial formats supported by GeoPandas.

id_field is the only field that is required to be labelled.

providers:
  - type: feature
    name: pygeoapi_plugins.provider.geopandas_.GeoPandasProvider
    # Example data
    data: 'https://www.hydroshare.org/resource/3295a17b4cc24d34bd6a5c5aaf753c50/data/contents/hu02.gpkg'
    id_field: id

You can also use plain CSV and read in points by providing an x_field and y_field in the config the same way you would with the default pygeoapi CSV provider.

OGC API - Processes

Additional OGC API - Process are listed below

Intersector

The intersection process uses OGC API - Features Part 3: Filtering to return CQL intersections of features. An example configuration in a pygeoapi configuration is below.

intersector:
  type: process
  processor:
    name: pygeoapi_plugins.process.intersect.IntersectionProcessor

This plugin is used in https:/reference.geoconnex.us/.

Sitemap Generator

The Sitemap Generator process makes use of the XML formatter and OGC API - Features to generate a sitemap of the pygeoapi instance. This can be used with the python package sitemap-generator to generate a sitemap index. An example configuration in a pygeoapi configuration is below.

sitemap-generator:
  type: process
  processor:
    name: pygeoapi_plugins.process.sitemap.SitemapProcessor

OGC API - Environmental Data Retrieval

Sensorthings API

The EDR provider is implemented as the default for retrieving environmental data in a compliant manner with the OGC API - EDR specification. This ensures that spatial and temporal queries can be efficiently performed on the sensor data. Additionally, the OGC API - Features (OAF) provider is used to fill in the /items component of the API, allowing access to the Things (sensor devices) from the SensorThings API.

Both providers are configured together to offer a unified interface for sensor data access, while maintaining compliance with OGC standards. The EDR provider is responsible for the core environmental data retrieval, while the OAF provider exposes the sensor entities.

Note: For more information on configuring the OAF provider, refer to the SensorThings API documentation.

providers:
  # EDR Provider for environmental data retrieval
  - type: edr
    name: pygeoapi_plugins.provider.sensorthings_edr.SensorThingsEDRProvider
    data: https://labs.waterdata.usgs.gov/sta/v1.1/

  # OAF Provider for exposing sensor entities (Things)
  - type: feature
    name: pygeoapi.provider.sensorthings.SensorThingsProvider
    data: https://labs.waterdata.usgs.gov/sta/v1.1/
    entity: Things
    title_field: name

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygeoapi_plugins-0.2.0.tar.gz (37.2 kB view details)

Uploaded Source

Built Distribution

pygeoapi_plugins-0.2.0-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

File details

Details for the file pygeoapi_plugins-0.2.0.tar.gz.

File metadata

  • Download URL: pygeoapi_plugins-0.2.0.tar.gz
  • Upload date:
  • Size: 37.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for pygeoapi_plugins-0.2.0.tar.gz
Algorithm Hash digest
SHA256 71da514e775994c9c037da16ccb6d48b2e7e60baeb5b2786bb57f7ff9fa3a239
MD5 c09c60429b85a78b0a2f8349425f55a0
BLAKE2b-256 30a920df75128d359789b0e89f3afe07eb4802e993c78b830608a333fd4e8022

See more details on using hashes here.

File details

Details for the file pygeoapi_plugins-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pygeoapi_plugins-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5e4fab2a57100a303a610d7d34c507a0aa2547f91ac25d7510ee3e66441f855
MD5 1d3564a7459c12e16340e5fb743e4c92
BLAKE2b-256 f4b80ff2b1fa08a8bc3449ce8f27558d10e61fcd3801aa8d28a38fb29f2eb511

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page