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.
Contenuti
Configura e avvia il servizio¶
Dal menu di avvio, selezionare http://localhost:5000
. L’applicazione aprirà una pagina web all’indirizzoSpostatevi nella cartella
/usr/local/share/pygeoapi
e qui trovate un filepygeoapi-config.yml
. Questo file contiene la configurazione del servizio.Aprire il file con
sudo nano pygeoapi-config.yml
.Aggiorna alcuni parametri nel file, come Titolo e Autore. E salva il file.
Riavvia il servizio, per esempio chiudendo il terminale e avviando di nuovo il servizio
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.
Scarica il file GeoJSON e mettilo nella cartella test/data.
Aggiorna
pygeoapi-config.yml
per aggiungerepaesi
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
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.
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...
.
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.
Seleziona la collezione Paesi
e clicca su “Aggiungi” per aggiungere il layer nella mappa QGIS.