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

Guida rapida pygeoapi

pygeoapi è uno strumento per pubblicare in modo veloce e semplice servizi OGC Open API sul web. È costruito sulle potenti librerie open source fornite dalla comunità (geo)python.

In questa guida rapida ti guideremo nella configurazione ed uso del software in qualche caso specifico. ungo la strada ci impegneremo con alcuni software correlati, perché pygeoapi è un prodotto che è tipicamente combinato con altre componenti per soddisfare un caso aziendale.

Conoscenza preliminare

pygeoapi è un’applicazione web scritta in Python per il dominio spaziale, quindi è necessario essere a conoscenza dei concetti delle applicazioni web e degli aspetti geospaziali come i formati grid e vettoriali, gli standard OGC e i sistemi di proiezione. La conoscenza di Python è raccomandata, anche se è possibile farne a meno eseguendo l’applicazione da OSGeoLive.

Configura e avvia il servizio

  1. Dal menu di avvio, selezionare Structure ‣ osgeolive ‣ appmenupath ‣ pygeoapi. L’applicazione aprirà una pagina web all’indirizzo http://localhost:5000

  2. Spostatevi nella cartella /usr/local/share/pygeoapi e qui trovate un file pygeoapi-config.yml. Questo file contiene la configurazione del servizio.

  3. Aprire il file con sudo nano pygeoapi-config.yml.

  4. Aggiorna alcuni parametri nel file, come Titolo e Autore. E salva il file.

  5. Riavvia il servizio, per esempio chiudendo il terminale e avviando di nuovo il servizio

    ../../_images/pygeoapi_screenshot.png

Configura un nuovo servizio

Ora distribuisci un dataset vettoriale in pygeoapi ed esponi gli elementi come OGC API - Features. OGC API - Features è uno standard di OGC per esporre gli elementi vettoriali come webservice. OGC API - Features è l’alternativa OpenAPI a WFS.

pygeoapi supporta una vasta gamma di backend da usare come sorgente vettoriale, ad esempio geopackage, PostGIS, Elasticsearch, WFS, ecc. Tramite il provider GDAL OGR si può aggiungere un insieme quasi illimitato di altre fonti vettoriali.

I set di dati interessanti da esporre come OGC API-Features consistono in dati del mondo reale che hanno attributi multipli e collegamenti ad altre risorse. OSGeoLive contiene un certo numero di set di dati che puoi usare. Un esempio è /var/www/html/openlayers/examples/data/geojson/countries.geojson. Puoi configurarlo in pygeoapi usando il provider GeoJSON.

  1. Scarica il file GeoJSON e mettilo nella cartella test/data.

  2. Aggiorna pygeoapi-config.yml per aggiungere paesi come nuova collezione a pygeoapi (inserire lo snippet sotto tra le altre collezioni. Attenzione alla nidificazione, la nidificazione è importante nella sintassi YAML).

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. Riavvia pygeoapi

Verifica che la collezione sia disponibile tramite il tuo browser all’indirizzo http://localhost:5000/collections/countries

Usa un browser web per interrogare l’API

Ora che hai il servizio disponibile puoi interrogarlo usando vari strumenti client. Ogni elemento della collezione è disponibile in formati comuni, come HTML, GeoJSON e GML. Per iniziare puoi usare un browser web per navigare attraverso il servizio. Dal sito http://localhost:5000/collections/countries, si può scendere fino ai singoli elementi. Il servizio rileverà automaticamente (accetta l’intestazione) che stai usando un browser web e restituirà la rappresentazione HTML degli elementi. Nota nell’angolo in alto a destra i link espliciti per sovrascrivere l’intestazione di accettazione e richiedere rappresentazioni specifiche dell’elemento (?f=json).

Ogni Open API ha una pagina di documentazione interattiva su http://localhost:5000/openapi. In questa pagina web interattiva puoi leggere i vari metodi del servizio, ma anche interagire direttamente con essi tramite moduli web.

../../_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.

Usare OGC API - Features nel Desktop GIS

In questa guida rapida usa QGIS per interrogare il servizio, ma un flusso di lavoro simile è possibile in altri strumenti GIS, per esempio ArcGIS, FME, OpenLayers.

A partire da QGIS 3.14 è possibile aggiungere un layer OGC API - Features come layer vettoriale. Dal menu Layer / Aggiungi layer seleziona Aggiungi layer WFS....

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

Nella finestra che si apre crea una nuova connessione, inserisci l’url del servizio http://localhost:5000.

Fai clic su Ok, e poi connetti per caricare le collezioni disponibili nel servizio.

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

Seleziona la collezione Paesi e clicca su “Aggiungi” per aggiungere il layer nella mappa QGIS.