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

pygeoapi Snabbstart

pygeoapi är ett verktyg för att snabbt och enkelt publicera OGC Open API-tjänster på webben. Det bygger på de kraftfulla open source-biblioteken från (geo)python-communityn.

I den här snabbstarten guidar vi dig genom att konfigurera programvaran och använda den för några specifika fall. Längs vägen kommer vi att engagera oss i en del relaterad programvara, eftersom pygeoapi är en produkt som vanligtvis kombineras med andra komponenter för att uppfylla ett affärsfall.

Förkunskaper

pygeoapi är en Python-webbapplikation för den spatiala domänen, så du måste vara medveten om begreppen webbapplikationer och geospatiala aspekter som grid- och vektorformat, OGC-standarder och projektionssystem. Python-kunskap rekommenderas, även om du kan klara dig utan genom att köra applikationen från OSGeoLive.

Konfigurera och starta tjänsten

  1. Välj Structure ‣ osgeolive ‣ appmenupath ‣ pygeoapi från Start-menyn. Programmet kommer att öppna en webbsida på http://localhost:5000

  2. navigera till användarmappen /usr/local/share/pygeoapi och leta reda på filen pygeoapi-config.yml. Den här filen innehåller konfigurationen av tjänsten.

  3. Öppna filen sudo nano pygeoapi-config.yml.

  4. Uppdatera några parametrar i filen, t.ex. titel och författare. Och spara filen.

  5. Starta om tjänsten, t.ex. genom att stänga terminalen och starta tjänsten igen

    ../_images/pygeoapi_screenshot.png

Konfigurera ny tjänst

Du kommer nu att distribuera en vektordatauppsättning i pygeoapi och exponera dess funktioner som OGC API - Features. OGC API - Features är en standard för OGC för att exponera vektorfunktioner som en webbtjänst. OGC API - Features är OpenAPI-alternativet till WFS.

pygeoapi stöder ett brett utbud av backends att använda som vektorkälla, t.ex. geopackage, PostGIS, Elasticsearch, WFS, etc. Via GDAL OGR-leverantören kan en nästan obegränsad uppsättning andra vektorkällor läggas till.

Intressanta datamängder att exponera som OGC API - Funktioner består av verkliga data med flera attribut och länkar till andra resurser. OSGeoLive innehåller ett antal dataset som vi kan använda. Ett exempel är /var/www/html/openlayers/examples/data/geojson/countries.geojson. Du kan konfigurera den i pygeoapi med hjälp av GeoJSON-providern.

  1. Ladda ner GeoJSON-filen och placera den i mappen tests/data.

  2. Uppdatera pygeoapi-config.yml för att lägga till countries som en ny samling till pygeoapi (infoga snippet nedan mellan de andra samlingarna. Tänk på nestningen, nestning är viktigt i 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. Starta om pygeoapi

Kontrollera att samlingen är tillgänglig via din webbläsare på http://localhost:5000/collections/countries

Använda en webbläsare för att ställa frågor till API:et

Nu när vi har tjänsten tillgänglig kan vi ställa frågor om den med hjälp av olika klientverktyg. Alla funktioner i samlingen finns tillgängliga i vanliga format, t.ex. HTML, GeoJSON och GML. Till att börja med kan vi använda en webbläsare för att bläddra igenom tjänsten. Från http://localhost:5000/collections/countries kan du gå ner till enskilda funktioner. Tjänsten kommer automatiskt att upptäcka (acceptera header) att du använder en webbläsare och returnera HTML-representationen av funktioner. I det övre högra hörnet finns tydliga länkar för att åsidosätta accept header och begära specifika representationer av funktionen (?f=json).

Varje Open API har en interaktiv dokumentationssida på http://localhost:5000/openapi. På denna interaktiva webbsida kan du läsa om de olika metoderna i tjänsten, men också direkt interagera med dem via webbformulär.

OGC API:er har utvecklats med ”W3C Spatial Data on the Web Best Practices <https://www.w3.org/TR/sdw-bp>`_” i åtanke. En viktig aspekt av dessa bästa metoder är sökmotoroptimering. Pygeoapi lägger till några genomsökningsoptimeringar utöver kraven i Open API-standarderna; samlingens metadata kan genomsökas av sökmotorer på ett strukturerat sätt, med målet att göra samlingarna upptäckbara i verktyg som Google Dataset Search. För att utvärdera funktionerna för strukturerade data kan du använda verktygen för testning av strukturerade data från Yandex eller Google. Kopiera html-källan till ländernas samlingssida (eller webbadressen till en samlingssida för en onlinepygeoapi-instans) till ett testverktyg för strukturerad data och utvärdera vilka strukturerade data verktyget kan extrahera från den. Sökmotorn kommer att använda den informationen i sitt datasetindex.

Använda OGC API - Funktioner i Desktop GIS

I den här snabbstarten använder vi QGIS för att ställa frågor till tjänsten, men liknande arbetsflöden är möjliga i andra GIS-verktyg, t.ex. ArcGIS, FME, OpenLayers.

Från och med QGIS 3.14 kan du lägga till ett OGC API - Features-lager som vektorlager. Från menyn Layer / Add Layer välj Add WFS Layer....

I det fönster som öppnas skapar du en ny anslutning och anger webbadressen till tjänsten http://localhost:5000.

Klicka på Ok och sedan på connect för att ladda de tillgängliga samlingarna i tjänsten.

Välj samlingen countries och klicka på ”Add” för att lägga till skiktet i QGIS-kartan.