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

8 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.

    Piace a 1 persona

  2. Quando avevo segnalato il problema un anno e mezzo fa mi avevano risposto così:

    “i confini amministrativi a fini statistici sono validati ad una scala variabile, generalmente 1:10.000 e si è stabilita una “tolerance” di 1 metro per la loro produzione; i punti al di sotto di questa tolleranza, pertanto, non sono stati da noi trattati in maniera specifica. Aggiungo, peraltro, che si tratta di confini validi a scopi statistici.”

    Mi piace

    1. Ciao,
      scrissi la prima e-mail il 23-marzo -2018, dopo una settimana di silenzio scrissi un’altra mail il 28-marzo: mi risposero subito ma non posso pubblicare il contenuto perché sarebbe troppo umiliante, nella stessa risposta mi chiesero di contattarli telefonicamente per spiegare meglio cosa intendessi per geometrie non valide. Nonostante tutto, anche dopo la telefonata, gli shapefile sono sempre gli stessi e con gli stessi errori.

      ecco il mio tweet:

      Mi piace

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...