FOSS4G-IT 2024

Matteo Ghetta


Sessioni

12/12
14:30
15minuti
Sensor Things API QGIS core provider
Piergiorgio Cipriano, Luca Giovannini, Matteo Ghetta

Sensor Things API (in breve STA) è una specifica OGC per l'archiviazione e il recupero (di serie temporali) delle osservazioni dei sensori [1]. FROST-Server, sviluppato dal Fraunhofer IOSB, è una delle implementazioni più consolidate di STA, ben documentato e molto utilizzato [2]. L'implementazione include un endpoint REST per inserire, modificare e recuperare entità STA, utilizzando un linguaggio di query basato su URL e su parametri OASIS OData [3].
Un plugin sperimentale per QGIS [4], sviluppato nel 2022 da Deda Next srl [5] e implementato in Python nell'ambito del progetto europeo Air-Break [6], è attualmente disponibile per connettersi agli endpoint STA e scaricare dati dai sensori. Il plugin agisce anche come provider per recuperare i dati e per poi analizzarli in un secondo momento.
Grazie al finanziamento di BRGM (Service géologique national Francais) [7], Faunalia [8] e DedaNext hanno sviluppato un provider C++ STA direttamente nel core in QGIS. È stata aperta una dettaglia QEP (QGIS Enhancement Proposal) [9] per discutere con la comunità di QGIS e con tutte le persone interessate l'implementazione migliore.
Durante tutte le fasi di sviluppo le interazioni fra comunità, sviluppatori e finanziatori è stata portata avanti nel miglior modo possibile, garantendo così un provider nativo in QGIS che potrà essere espanso in futuro in base agli aggiornamenti del provider, funzionalità nuove e ottimizzazione dei dati.
La vecchia versione del plugin sviluppato da Deda Next, infatti, è stato ri-fattorizzato per poter sfruttare al meglio il provider nativo, più veloce e con test automatici che ne garantiscono la stabilità. Così facendo, è stato possibile concentrare la parte di sviluppo del plugin per quanto riguarda soprattutto l'analisi dei dati, la creazione di grafici dettagliati per analizzare serie temporali e per scaricare facilmente i risultati.

[1] www.ogc.org/standards/sensorthings
[2] github.com/FraunhoferIOSB/FROST-Server
[3] groups.oasis-open.org/communities/tc-community-home2
[4] github.com/AirBreak-UIA/SensorThingsAPI_QGIS-plugin
[5] www.dedanext.it
[6] www.uia-initiative.eu/en/uia-cities/ferrara
[7] www.brgm.fr
[8] www.faunalia.eu
[9] github.com/qgis/QGIS-Enhancement-Proposals/issues/257

GFOSS.it Contributions
Aula Nievo
12/12
15:15
15minuti
Servizio idrico integrato: storia di una migrazione a GIS libero
Matteo Ghetta

I benefici dell’utilizzo del software open source, hanno un grosso impatto anche nelle pubbliche amministrazioni. La migrazione del sistema informativo territoriale di ETRA S.p.a. da un sistema proprietario a un sistema open source ha coinvolto i maggiori software del settore attualmente utilizzati. Da un database Oracle (Spatial) i dati sono stati migrati in un database PosgtreSQL con estensione PostGIS. La migrazione non ha coinvolto solamente i dati, ma è stato fatto un audit dell’architettura esistente che è stata completamente riscritta e semplificata: il numero di tabelle si è notevolmente ridotto, sono state aggiunte delle foreign keys per ottimizzare la qualità dei dati inseriti ed impedire l’inserimento di dati scorretti e sono stati aggiunti trigger topologici per migliorare l’inserimento di dati spaziali. Il vecchio sistema si basava su era AutoCAD Map 3D, mentre come client per il nuovo sistema è stato scelto QGIS, grazie al quale sono stati creati diversi progetti con relazioni complesse, moduli di inserimento dati personalizzati e ottimizzazione degli stili. È stato predisposto anche un plugin che aggiunge delle funzionalità custom che QGIS non prevede nativamente. Infine è stata usata l’accoppiata LizMap e QGIS Server per la pubblicazione dei progetti sul web. Grazie all’imponente utilizzo di LizMap è stato possibile migliorare il codice inserendo funzionalità nuove e correggendo diversi bug esistenti. Molte delle novità dell’ultima versione di LizMap (3.8) sono state sviluppate all’interno di questo progetto: single WMS, WebDav e miglioramento dei moduli con relazioni 1:N, fra i tanti.
Per diverse funzionalità presenti nel vecchio sistema è stato necessario fare un complesso lavoro di reverse engeneering, in quanto le funzionalità non erano chiaramente descritte e il comportamento per l’utente finale doveva risultare simile e migliorato. Le funzionalità dell’attuale sistema sono ben commentate e descritte in modo da garantire un migliore funzionamento e stabilità nel tempo.

Aula Nievo