L’importanza della topologia in QGIS e in tutti gli altri software Open Source.
In una famosa ML del gruppo QGIS è sorta una discussione sul problema che apparentemente affliggeva QGIS quando gli si chiede di trasformare una polilinea chiusa in poligono.
testo della discussione:
“scopo del gioco è trasformare una polyline chiusa in un poligono dxf o shape linestring come input (input.shp):
- [qgis dev] vector–>geometry tools–>lines to polygons (out_qgis_lines2polygon);
- [saga2.2.3] shapes–>polygons–>convert lines to polygons (out_saga2.2.3_lines2polygon);
- [grass 7.0.3] v.type (out_grass7.0.3_v.type);
- [arcview 3.1] xtools extension –> make polygons from line (out_arcview_xtools); come potete notare i primi tre danno lo stesso risultato; solo arcview dà il poligono corretto 😦 “
dopo aver letto il testo della discussione, scaricato i file:



faccio alcune prove e ottengo gli stessi risultati!!!
Dopo qualche minuto mi chiedo:
- ma la geometria avrà degli errori?
-
controllo validità geometria finestra di dialogo controllo di validità il controllore di validità geometrica di QGIS non trova errori!!!
- allora controllo la TOPOLOGIA:
-
imposto le regole di topologia dopo aver impostato una regola di topologia ‘non deve avere nodi sospesi‘ e avviato la verifica, ottengo ben 40 errori!!!
- correggo gli errori con v.clean (da processing – GRASS):
finestra di dialogo v.clean -
errori corretti dal successivo controllo ottengo nessun errore;
-
tabella attributi shapefile -
dissolvo tutti le feature - finestra di dialogo dissolvenza
-
da linea a poligono - finestra di dialogo
-
ecco il poligono Finalmente ottengo il poligono!!!
Concludendo:
Non era QGIS incapace di svolgere una trasformazione da linea a poligono ma la cattiva genesi della polilinea (probabilmente proveniente da sw CAD) associata alla mancata verifica della topologia. La polilinea aveva errori topologici (vertici sospesi) e quindi non era chiusa, ecco perchè i vari geo-algoritmi open source davano lo stesso risultato cioè realizzavano tanti poligoni quanti erano i tratti della polilinea. Quindi, anche se a prima vista un layer vettoriale sembra topologicamente corretto, occorre sempre fare delle verifiche: prima sulla geometria poi sulla topologia.
Video demo:
File.
GRANDISSIMO. Solo una domanda, dalla cui risposta immagino si potrà dedurre la differenza di approccio fra sw OS e sw proprietari: ma ARCGIS/Arcview come mai risolve tutto senza mostrare che ci sono problemi strutturali nel file di origine? O di fatto eseguono tutto il tuo procedimento in automatico ma non lo lasciano vedere o utilizzano qualche stratagemma ….. ma a questo punto mi viene il dubbio che il prodotto finale non sia così preciso……e possa contenere degli errori topologici.
Ciao
"Mi piace""Mi piace"
Ciao, Arcview utilizza un tool realizzato appositamente e per quanto possa capire ,il risultato ottenuto, è un insieme di procedimenti simili a quelli da me eseguiti, ma osservando l’output di arcview non corregge gli errori topologici ma si limita a chiudere la polilinea. Ricordiamo che arcview è un sw proprietario e non sapremo mai come risolvono i problemi e realizzano i loro geo-algoritmi.
"Mi piace""Mi piace"
Ciao,
era proprio quello che intendevo quando ho scritto “si potrà dedurre la differenza di approccio fra sw OS e sw proprietari”, nel senso che nei sw OS ti costringono a ragionare ma i risultati sono ottimali…..nei sw proprietari fanno loro il lavoro sporco ma non sai mai la qualità dell’output perché non gestisci nulla ma ti senti figo lo stesso.
Lode lode lode
"Mi piace"Piace a 1 persona
Grazie Totò. C’è sempre da imparare.
"Mi piace"Piace a 1 persona