Archivio dei tag opensource

Il GeoPackage: una valida alternativa al formato shape!

In questo articolo vi spiegherò perchè con il GeoPackage potete liberarvi degli shapefile

Il GeoPackage è un formato dati open che fu pubblicato per la prima volta nel 2014. E’ un formato che segue gli standard OGC (Open Geospatial Consortium) ed ha tutta una serie di qualità che lo rendono migliore del vecchio ed oramai superato formato shape.

Prima di conoscere in maniera quanto più approfondita possibile il GeoPackage, andremo a vedere i motivi per cui il formato shape DEVE essere abbandonato. In rete c’è un articolo dal titolo abbastanza significativo “Switch from Shapefile” che vi invito a leggere. In questo articolo sono elencate tutte le problematiche legate all’utilizzo di uno shapefile; di seguito mi limiterò ad elencarne alcune tra quelle più comuni che ho personalmente incontrato:

  • Il nome di un field della tabella attributi non può contenere più di 10 caratteri. Personalmente trovo fastidiosissimo dover troncare i nomi delle colonne! Se devo chiamare un field

    La struttura di uno shapefile

    Superfici_in_evoluzione“, con il formato shp sono costretto a scrivere cose tipo “sup_in_evo“. Brutto da vedere, brutto da leggere, brutto da gestire per la costruzione di una legenda sia in TOC che in layout di stampa.

  • Non si può andare oltre i 255 caratteri per il tipo di dato testuale. Sono davvero tantissimi i casi in cui 255 caratteri sono davvero pochi. Per la costruzione di una carta geologica, ad esempio, quando si ha la necessità di descrivere il tipo di unità geologica, 255 caratteri stanno stretti. Una (non)soluzione al problema che a volte ho adottato in questi casi è creare una tabella esterna con i testi lunghi che ho poi associato allo shp. Questo comporta la necessità di aggiungere un altro file alla già lunga lista di file associata allo shp con l’aumento della possibilità di copia parziale dei file se si devono inviare ad altre persone i dati. Sarà indispensabile inviare anche il file progetto per non perdere l’unione tra tabella esterna ed interna(un altro file da aggiungere!).
  • Non è possibile impostare un set di codifica caratteri. Vi siete mai trovati ad usare dati in una lingua diversa? Non per forza cinese o arabo. Mal di pancia vengono già con l’utilizzo di testi scritti in francese! Caratteri illeggibili, un disastro!
  • Lo shapefile non è un formato dati topologico! Questo significa che le geometrie che vengono generate non sono topologiche e quindi è probabile che incapperete in errori, ad esempio, in geoprocessing. Vi riporto una mia esperienza recente.
    Avevo uno shp pieno di geometrie non valide. Lo importai in PostGIS e con la funzione ST_MakeValid lo resi topologico. Quando lo esportai in shp di nuovo non lo era. Per prova lo esportai da PostGIS in SpatiaLite e risultava corretto anche in SpatiaLite. Come ulteriore prova lo esportai da SpatiaLite in shp ed anche in questo caso mi ritrovai un vettore con geometrie invalide.

Per un professionista del settore GIS queste già dovrebbero essere argomentazioni sufficienti a dire addio allo shapefile; nell’articolo che vi ho linkato ce ne sono molte altre!

Veniamo al GeoPackage. E’ un formato di dati geografici molto duttile, può infatti contenere sia vettori che raster. In realtà questo formato è un data container basato su SQLite. Questo ci consente di avere tanti vantaggi, vediamone alcuni.

ALL IN ONE. Il Geopackage può contenere al suo interno le geometrie, la tabella attributi associata alle geometrie, la topologia delle geometrie, il sistema di riferimento del vettore ed i tematismi!! Il formato shp per fare quasi la stessa cosa ha bisogno di almeno 6 file.

Essendo basato su SQLite possiamo senza problemi scrivere per esteso il titolo dei nostri field. Se il field in questione è di tipo testo non abbiamo nessuna limitazione ai caratteri e quindi possiamo inserire senza difficoltà testi molto lunghi. Essendo un formato che ricalca in pieno gli standard OGC avremmo massima libertà di uso ed interoperabilità tra piattaforme software, inoltre può immagazzinare più di 2GB di dati cosa che uno shapefile non può fare.

Un po’ di mesi fa fu lanciato su Twitter un sondaggio sullo switch dal formato shp, ed il GeoPackage è stato scelto come miglior sostituto surclassando il formato GeoJson.

Un’altra cosa interessante del GeoPackage è il fatto che può contenere raster. Con QGIS è semplicissimo passare da un .tiff ad un .gpkg(l’estensione del GeoPackage), basta effettuare una conversione di formato.

Visti i tanti pro perchè non passate al formato .gpkg?

Una mappa per ogni esigenza grazie all’Opengeodata

In questa settimana ho messo on line la Mappa dei professionisti italiani dei GIS, grazie anche all’aiuto di Salvatore Fiandaca e di PjHooker, tutta basata sull’Opengeodata.

L’interesse da parte dei professionisti “gissari” verso questo piccolo progetto è stato alto, in meno di 24 ore sono passato da 28 adesioni a quasi 60 in tutta Italia – domani sera pubblicherò un nuovo aggiornamento con le 75 adesioni ricevute fin’ora – ci sono state anche delle critiche, poche, qualche buon consiglio ed indicazioni e tanto ma tanto entusiasmo ed interesse.

Questo post nasce da una riflessione che facevo ieri mentre con Salvatore cercavamo di risolvere un problema relativo alla geolocalizzazione degli intervistati.

Fino ad allora chi compilava il form inseriva la città di residenza, io importavo il form in un progetto QGIS fatto ad hoc e connesso a PostGIS, da PostGIS facevo il join che mi ha suggerito Salvatore ed ottenevo la posizione degli intervistati sui centroidi dei comuni di residenza. Il problema nasceva quando più persone hanno la residenza nello stesso comune; il risultato del join infatti è la sovrapposizione di più punti che rendono impossibile la corretta consultazione della mappa. In questi casi mi mettevo a spostare a mano i punti, avendo realizzato un buffer dei centroidi a 250 metri, posizionavo manualmente i punti sul confine del buffer. Questa operazione può essere accettabile se i punti sulla mappa sono pochi ma diventa un lavoraccio quando iniziano ad aumentare.

OpengeodataCercando in rete ho scoperto che è possibile collegare i form – solo ora mi accorgo di aver scritto un generico form in precedenza ma quello che ho usato io è un Google Form salvato su Google Drive – a Google My Maps. Così ho passato parte della giornata di ieri a fare una serie di test insieme con Salvatore ed ahinoi sono stati infruttuosi. L’idea era quella di esportare il kml da My Maps e caricarlo in QGIS in modo da tirare fuori il geojson da mettere online. Purtroppo Google, ad ora, consente di esportare i kml creati dai form solo come immagini; su Google Earth ti compare il marker del singolo intervistato ma il kml caricato in QGIS risulta essere solo una tabella senza attributi geografici. Almeno abbiamo capito che in alcuni casi Google prende e non restituisce.

La soluzione al problema ce l’ha data Geocode grazie ad una intuizione di Salvatore. Il nuovo form, già online, oltre alla città di residenza ora chiede anche l’indirizzo esatto e la regione. Grazie a Geocode ed all’Opengeodata ottengo uno shp che convertito in geojson mi consente di posizionare in maniera esatta gli intervistati sulla mappa in maniera automatica.

I contro, uno: se l’intervistato inserisce un indirizzo non corretto oppure omette un dato non compare sulla mappa. Sebbene chi risponde al form ha l’obbligo di compilare i campi con l’asterisco ogni tanto mi capita di vedere persone che aggirano l’obbligo inserendo caratteri a vuoto. I pro: ho ridotto sensibilmente i tempi di lavorazione dei dati e di pubblicazione, ho usato software Open Source non spendendo un euro, ho usato informazioni basate sugli Opengeodata ed in particolare su OpenStreetMap!

L’importanza dell’Opengeodata forse a molti ancora sfugge ma ci sono una infinità di servizi che possono essere sviluppati grazie a loro ed a prezzi abbordabilissimi sia per chi li fornisce che per chi li sfrutta. Un esempio, tutto made in Italy, è il videogioco basato sulla realtà aumentata Father.io, che ha superato del 651% l’obiettivo che si era posto su Indiegogo; il singolo player si sposta su una mappa ed indovinate quale mappa? Ovviamente la mappa di OpenStreetMap quindi basata su Opengeodata!

Purtroppo in Italia si è ancora affezionati al concetto, errato, che un prodotto generato o basato su software Open Source non è altrettanto buono quanto uno a pagamento. Ma si sta cambiando direzione per fortuna e forse non tutti se ne sono accorti!  Analizzando i dati di Google Trends, inserendo come chiavi di ricerca QGIS ed ArcGIS si nota come dall’inizio della crisi economica il programma ESRI abbia iniziato a perdere posizioni in Italia a favore di QGIS, con un sorpasso netto di quest’ultimo a cavallo tra il 2013 ed il 2014.

Un esempio pratico è il Geoportale della Regione Basilicata tutto basato su tecnologia Open Source ed indovinate quale è la regione italiana con il maggior numero di ricerche con chiave QGIS? Date un occhio alla mappa!