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@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user