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?