Gli shapefile ISTAT del 2018 non sono validi, ecco come correggerli con spatialite.

L’ISTAT mette a disposizione i confini amministrativi ai fini statistici per le unità comuni, province e regioni d’Italia, in due versioni: generalizzate e non, cioè poco dettagliate e dettagliate entrambe in formato ESRI shapefile con EPSG 32632 – UTF-8.

Questi strati sono un riferimento ufficiale in quanto li elabora e li distribuisce l’Istituto nazionale di statistica, ente di ricerca pubblico, è il principale produttore di statistica ufficiale a supporto dei cittadini e dei decisori pubblici;

NON ci crederete ma tutti gli strati messi a disposizione hanno delle geometrie non valide secondo i requisiti richiesti dagli standard OGC.

Per scoprire quali geometrie non rispettano i criteri dell’OGC utilizzeremo un famoso DBMS (SQLite) con estensione spaziale Spatialite che è conforme alle specifiche dell’Open GIS Consortium (OGC).

Scarico ed importo gli shapefile presenti nella cartella versione non generalizzata in un database creato con spatialite_gui (che è la versione con interfaccia grafica di spatialite):

Immagine 29
vettori presenti nella versione non generalizzata

verifica sul vettore Comuni:

Immagine 30
Comuni: geometrie non valide, 10 su 7960

risultano 10 comuni con geometria non valida;

lo statement SQL usato è il seguente:

SELECT *
FROM Com01012018_WGS84
WHERE ST_IsValid(geom) <> 1;

per gli altri vettori basterà ripetere lo stesso codice avendo cura di sostituire il nome della tabella in FROM.

Vediamo che tipo di invalidità è presente mediante i messaggi GEOS:

Immagine 34
GEOS messages

lo statement SQL usato è il seguente:

SELECT pro_com, comune, GEOS_GetLastWarningMsg(),
ST_AsText(GEOS_GetCriticalPointFromMsg())
FROM Com01012018_WGS84
WHERE ST_IsValid(geom) <> 1;

siamo finalmente in grado di rivelare la causa dell’invalidità: c’è un autointersecarsi, inoltre siamo in grado di identificare esattamente dove si trova l’autointersezione, con la seguente view evidenziamo i punti invalidi:

CREATE VIEW point_invalid AS
SELECT pro_com, comune, GEOS_GetLastWarningMsg(),GEOS_GetCriticalPointFromMsg() as geom
FROM Com01012018_WGS84_test
WHERE ST_IsValid(geom) <> 1;

registriamo la geometria della view:

INSERT INTO views_geometry_columns
(view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only)
VALUES (‘point_invalid’, ‘geom’, ‘pro_com’, ‘com01012018_wgs84’, ‘geom’,1)

ecco l’anteprima dei punti:

Immagine 6
anteprima punti non validi da spatialite_gui

ecco elenco dei Comuni e le coordinate dei punti:

Queste geometrie non valide non permettono di fare delle semplici elaborazioni come, per esempio, l’estrazione dei centroidi:

Immagine 5
estrazione centroidi in QGIS

per correggere le geometrie (dei Comuni) basta eseguire una query di aggiornamento come questa:

UPDATE Com01012018_WGS84
SET geom = MakeValid(geom)
WHERE ST_IsValid(geom) <> 1;

per gli altri vettori basterà ripetere lo stesso codice avendo cura di sostituire il nome della tabella dopo UPDATE;

oppure, per correggerle in una unica soluzione copiare ed incollare il seguente codice:


NOTE Finali: Utilizzo gli shapefile dell’ISTAT da anni (dal 2011) e tutti hanno sempre avuto gli stessi errori, negli stessi punti. Ho scritto una mail a : Informazioni territoriali e sistema informativo geografico email micro.zone@istat.it
stay tuned


 

 

Infinite grazie a Alessandro Furieri, papà di spatialite e instancabile divulgatore.

Grazie ad Andrea Borruso per l’idea e l’incoraggiamento a scrivere questo post.

 


fonte:

https://www.gaia-gis.it/fossil/libspatialite/wiki?name=invalid-geometries

  • spiegazione dell’invalidità by Alessandro Furieri:

http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/SARDEGNA-Shapefile-ed-errori-tp7597799p7597802.html

 

Buon lavoro!!!

 

Annunci

6 pensieri su “Gli shapefile ISTAT del 2018 non sono validi, ecco come correggerli con spatialite.

  1. Ottimo lavoro da parte di tutti. Dalle mie elaborazioni comunque posso inoltre confermare che i confini amministrativi, contenuti negli strati informativi pubblicati da ISTAT, non sono coerenti con le realta’ locali, quindi necessita prestare attenzione in sede di geo-processamento e analisi.

    Liked by 1 persona

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

w

Connessione a %s...