[QGIS-it-user] recuperare uno shapefile poligonale corrotto

Alessio Degioannini a.degioannini a proterstudio.com
Ven 9 Apr 2021 03:35:18 PDT


Ciao Andrea,

tutto molto chiaro ed esauriente!

Procedo come mi hai spiegato.

Grazie e cordiali saluti.

Alessio

Il 09/04/2021 11:23, Andrea Giudiceandrea ha scritto:
> Alessio Degioannini wrote
>>> - il plugin core "Geometry Checker"
>> In pratica, più tenti di correggerli, più gli
>> errori aumentano: effettivamente il plugin non pare funzionare come
>> dovrebbe.
>
> Ciao Alessio,
> come ti accennavo il plugin "Geometry Checker" purtroppo attualmente
> presenta vari bug relativi alle funzionalità di soluzioni dei problemi
> geometrici/topologici soprattutto per quanto riguarda le sovrapposizioni e i
> gap, come puoi notare anche leggendo le varie segnalazioni di bug in
> proposito. In particolare, come ti dicevo, le sovrapposizioni non vengono
> corrette. https://github.com/qgis/QGIS/issues/29556
>
> Inoltre, per esempio, la tabella riassuntiva degli errori "corretti" e dei
> nuovi errori trovati è spesso totalmente errata.
> https://github.com/qgis/QGIS/issues/34664
>
> Non noto problemi invece per le funzionalità di controllo dei problemi
> geometrici/topologici.
>
> Ho verificato lo shapefile poligoni.shp che mi hai inviato con 756 feature.
> Tutti e tre i tool in QGIS non riportano alcun errore nelle geometrie. Ho
> effettuato la verifica anche con ArcMap 9.3.1 e anch'esso non riporta alcun
> errore geometrico.
>
> Non ho effettuato verifiche né tramite gli appositi tool dei geo database
> PostGIS/PostgreSQL e Spatialite/SQLite, né tramite quelli eventualmente
> esistenti in GRASS o SAGA.
>
> Comunque, per riparare errori delle geometrie, il tool di processing QGIS
> "Fix geometries" funziona abbastanza bene ed è progettato per usare lo
> stesso algoritmo di soluzione degli errori geometrici usato da PostGIS.
>
>
> Per quanto riguarda invece la presenza di gap o overlaps, effettivamente lo
> shapefile ne contiene svariati (circa un migliaio tra gaps e overlaps
> secondo Topology Checker, circa 500 secondo Geometry Checker con tolleranza
> impostata di default a 1E-8), ma, da quello che ho potuto verificare
> controllando il valore delle coordinate memorizzato nello shapefile, quasi
> tutti sono dovuti al fatto che vari vertici di poligoni adiacenti
> differiscono di pochissimo fra loro.
>
> Per farti un esempio, due punti corrispondenti di due poligoni adiacenti
> presentano lo stesso identico valore della coordinata Y mentre i valori
> della coordinata X sono:
> 1: 409478,23033759469...
> 2: 409478,23033759475,,,
> e quindi differiscono di circa 0,00000000006 metri = 0,06 nanometri, che è
> circa l'ordine di grandezza delle dimensioni degli atomi.
>
> Non so come sono state create queste piccolissime discrepanze, ma in
> generale tali livelli di precisione delle coordinate in ambito GIS è
> solitamente eccessivo e inutile.
>
> Solitamente è meglio fare in modo che le coordinate dei vertici delle
> geometrie siano memorizzate con una precisione accettabile, per esempio
> 0,001 metri o 0,005 metri, di fatto facendo in modo che ogni vertice possa
> ricadere solo nei nodi di una griglia di 0,001 x 0,001 metri o 0,005 x 0,005
> metri.
>
> Per fare questo puoi usare il tool di processing QGIS "Snap points to grid"
> impostando per esempio il valore di 0,005 per X e 0,005 per Y.
>
> Se effettui a questo punto i controlli di validità, vedrai che il layer
> risultante non avrà errori di geometria, come il layer di partenza, ma
> verranno riscontrati solo 72 gaps e 0 overlaps sia dal Topology Checker che
> dal Geometry Checker (lasciando a 0 il valore di soglia per l'area di gaps e
> overlaps).
>
> Dalla tabella dei risultati del controllo effettuato da Geometry Checker,
> ordinando l'elenco degli errori per la colonna Value vedrai che ci sono solo
> due gaps con superficie inferiore a 0,01 metri quadrati mentre gli altri 70
> hanno superfici superiori a 8 metri quadrati.
>
> Questo significa che solo i primi due gaps con superficie inferiore a 0,01
> metri quadrati potrebbero essere effettivi gaps da correggere manualmente,
> mentre gli altri 70 in realtà corrispondono a "buchi" interni ai poligoni.
>
> Infatti solitamente si fissa una valore di area di soglia piccola (a seconda
> dei propri dati) ma maggiore di 0 per l'individuazione dei gaps. Fissandola
> per esempio a 1 metro quadrato, Geometry Checker elencherà solo due gaps.
>
> Per correggere questi unici due gaps, basta editare il layer e rimuovere in
> entrambi i casi il vertice in più.
>
> Per imporre uno "snapping" fisso su griglia anche durante la digitazione o
> modifica di geometrie, puoi impostare per ogni layer la precisione scelta
> per la memorizzazione delle coordinate con l'opzione "Geometry precision"
> nella tab Digitizing delle proprietà del layer. Nella stessa finestra di
> impostazioni possono essere impostate altre verifiche geometriche e
> topologiche che vengono effettuate automaticamente prima del salvataggio del
> layer.
>
> Non riscontrato crash, né "propagazione degli errori" facendo delle prove di
> editazione del layer: forse sei stato fuorviato dalla errata tabella
> riassuntiva degli errori "corretti" e dei nuovi errori trovati del Geometry
> Checker.
>
> Spero di esserti stato utile e spero magari che qualche altro utente più
> esperto di PostGIS e Spatialite o GRASS e SAGA possa proporre altre
> soluzioni.
>
> Comunque penso che lo snapping alla griglia sia già una soluzione abbastanza
> veloce e sicura.
>
> A presto.
>
> Andrea
>
>
>
> --
> Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html
> _______________________________________________
> QGIS-it-user mailing list
> QGIS-it-user a lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user


Maggiori informazioni sulla lista QGIS-it-user