../../_images/logo_pygeoapi.png ../../_images/OSGeo_project.png

pygeoapi Quickstart

pygeoapi ist ein Werkzeug mit dem OGC Open API Services im Web schnell und einfach veröffentlicht werden können. Es baut auf leistungsstarke Open-Source-Bibliotheken der (geo)python-Community auf.

In diesem Quickstart begleiten wir Sie beim Aufbau der Software und veranschaulichen den Einsatz an einzelnen Beispielen. Zwischendurch werden wir weitere Software vorstellen, denn pygeoapi ist ein Produkt, das typischerweise mit anderen Komponenten kombiniert wird.

Vorabinformation

pygeoapi ist eine Python Web-Anwendung für räumliche Daten. Sie sollten sich also mit dem Konzept von Webanwendungen und räumlichen Aspekten wie Grids, Vektorformaten, OGC Standards und Projektionssystemen auseinandersetzen. Python-Kenntnisse werden empfohlen, obwohl es auch ohne diese geht, wenn Sie die Anwendung von OSGeoLive verwenden.

Konfiguration und Start des Dienstes

  1. Wählen Sie aus dem Startmenü, Structure ‣ osgeolive ‣ appmenupath ‣ pygeoapi. Die Anwendung wird eine Webseite öffnen http://localhost:5000

  2. Gehen Sie in das Verzeichnis /usr/local/share/pygeoapi und suchen Sie nach der Datei pygeoapi-config.yml. Die Datei enthält die Konfiguration des Dienstes.

  3. Öffnen Sie die Datei über sudo nano pygeoapi-config.yml.

  4. Aktualisieren Sie einige Parameter in der Datei wie Titel und Autor. Speichern Sie die Datei.

  5. Starten Sie den Dienst neu. Dies kann erfolgen, in dem Sie den Terminal schließen, dann erneut öffnen und den Dienst wieder starten

    ../../_images/pygeoapi_screenshot.png

Konfiguration neuer Dienste

Sie werden nun einen Vektordatensatz in pygeoapi veröffentlichen und dessen Objekte über einen OGC API - Features bereitstellen. OGC API - Features ist ein Standard des OGCs, um Vektor-Objekte als als Webservice bereitzustellen. OGC API - Features ist die OpenAPI Alternative zu WFS.

pygeoapi unterstützt zahlreiche Vektorformate, z.B. Geopackage, PostGIS, Elasticsearch, WFS, etc. Über den GDAL OGR Provider kann nahezu jede Vektordatenquelle hinzugefügt werden.

Interesting datasets to expose as OGC API - Features consist of real world data having multiple attributes and links to other resources. OSGeoLive contains a number of datasets we can use. An example is /var/www/html/openlayers/examples/data/geojson/countries.geojson. You can configure it in pygeoapi using the GeoJSON provider.

  1. Laden Sie die GeoJSON-Datei herunter und speichern Sie diese im Verzeichnis tests/data.

  2. Update pygeoapi-config.yml to add countries as a new collection to pygeoapi (insert snippet below between the other collections. Mind the nesting, nesting is important in YAML syntax).

countries:
   type: collection
   title: Countries
   description: Countries of the world
   keywords:
      - industry
   links:
      - type: text/html
        rel: canonical
        title: information
        href: https://openlayers.org
        hreflang: en-US
   extents:
      spatial:
         bbox: [-180,-90,180,90]
   providers:
      - type: feature
        name: GeoJSON
        data: /var/www/html/openlayers/examples/data/geojson/countries.geojson
        id_field: name
  1. Neustart von pygeoapi

Versichern Sie sich, dass die Collection über den Browser erreichbar ist http://localhost:5000/collections/countries

Über den Web-Browser die API abfragen

Now that we have the service available we can query it using various client tooling. Each of the features of the collection is available in common formats, such as HTML, GeoJSON and GML. To start we can use a web browser to browse through the service. From http://localhost:5000/collections/countries, drill down to individual features. The service will automatically detect (accept header) that you are using a web browser and will return the HTML representation of features. Notice in the top right corner explicit links to override the accept header and request specific representations of the feature (?f=json).

Jede Open API hat eine interaktive Dokumentationsseite unter http://localhost:5000/openapi. Auf dieser interaktiven Seiten erhalten Sie Informationen über die unterschiedlichen Methoden des Dienstes, gleichzeitig können Sie über das Webformular mit dem Dienst interagieren.

../../_images/openapidoc.png

OGC API’s have been developed with the W3C Spatial Data on the Web Best Practices in mind. An important aspect of these best practices is search engine optimization. Pygeoapi adds some crawl optimizations on top of the requirements of the Open API standards; collection metadata can be crawled by search engines in a structured way, with the goal to make the collections discoverable in tools like Google Dataset Search. To evaluate the structured data capabilities you can use the Structured Data Testing tools of Yandex or Google. Copy the html source of the countries collection page (or the url of a collection page of an online pygeoapi instance) into a structured data testing tool and evaluate what structured data the tool is able to extract from it. The search engine will use that information in its datasets index.

Using OGC API - Features in Desktop GIS

In diesem Quickstart nutzen wir QGIS zur Abfrage des Dienstes. Eine ähnliche Nutzung ist aber auch mit anderen GIS-Werkzeugen wie ArcGIS, FME oder OpenLayers möglich.

Starting from QGIS 3.14 you can add an OGC API - Features layer as vector layer. From the Layer / Add Layer menu select Add WFS Layer....

../../_images/qgis-wfs.png

Es öffnet sich ein Dialog. Erzeugen Sie eine neue Verbindung. Geben Sie dabei die Adresse zu Dienst an http://localhost:5000.

Klicken Sie Ok und anschließend connect, um die verfügbaren Collections des Dienstes zu laden.

../../_images/qgis-layers.png

Wählen Sie die Collection``countries`` und klicken Sie ‘Add’, um den Layer in QGIS zu Karte hinzuzufügen.