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

2021-04-09 Per discussione Alessio Degioannini

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,006 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
ri

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

2021-04-08 Per discussione Alessio Degioannini

Ciao Andrea e grazie per l'aiuto.

In allegato lo shape "problematico".

Effettivamente nella mia richiesta di aiuto non mi sono dilungato in 
dettagli, ma ho citato soltanto il fatto che sono riuscito a risolvere 
qualcosa, apparentemente, solo con v.clean, mentre non ho detto che 
dagli altri tool non ho ricavato un granché di utile.


Più precisamente:

- il plugin core "Geometry Checker", già installato di default ma da 
abilitare: si avvia dal menu Vector->Check Geometries... 


Ecco il resoconto della correzione di circa 1030 errori (in gran parte 
tipi di geometria e, meno, errori di sovrapposizione) rilevati dal 
controllo appena effettuato con il tool: 795 errori riparati e 1746 (!!) 
nuovi errori trovati... In pratica, più tenti di correggerli, più gli 
errori aumentano: effettivamente il plugin non pare funzionare come 
dovrebbe. ([1] 
 
-  verificato_poligoni2021ecc. )


- il plugin core "Topology Checker", già installato di default ma da 
abilitare: si avvia dal menu Vector->Topology Checker 
E', appunto, il tool che uso per la validazione topologica cui faccio 
riferimento nella mia richiesta.


- il tool di processing "Check Validity" 
...ovvero "Controlla validità" di processing, che fino a quando ho 
inviato la mia richiesta non aveva mai rilevato errori, restituendo solo 
poligoni validi.


Devo però dire che poco fa, dopo aver utilizzato Geometry Checker, ho 
sottoposto al controllo di validità il gpkg derivato ed ho ottenuto, per 
la prima volta, i tre layer temporanei che la procedura produce, 
popolati ([1] 
 
- risultato valido, risultato non valido, risultato errato).


Sono sempre più confuso...

Grazie ancora.

Alessio

[1] 
 
https://drive.google.com/drive/folders/1yIXKG2zEi3whAujz1YGun4g-g0nFxmlS?usp=sharing



Il 08/04/2021 11:05, Andrea Giudiceandrea ha scritto:

Ciao Alessio,
ho iniziato a fare qualche verifica. Magari poi si potrebbero 
estrapolare solo 3 o 4 dei poligoni con cui si riscontrano i problemi 
e condividerli con gli iscritti alla mailing list in modo che tu possa 
avere eventualmente più suggerimenti e soluzioni.


Nel frattempo, potresti chiarirmi quali tool stai usando? Non sono un 
esperto di validazione topologica/geometrica in QGIS, ma per quanto ne 
sappia ci sono almeno tre tool di QGIS (senza considerare quelli di 
GRASS e SAGA comunque disponibili in QGIS) di questo tipo:
- il plugin core "Geometry Checker", già installato di default ma da 
abilitare: si avvia dal menu Vector->Check Geometries...


- il tool di processing "Check Validity"

A quale di questi tool stai facendo riferimento?

Per quanto ne sappia, teoricamente solo il primo tool (il plugin 
"Geometry Checker") dovrebbe avere la funzionalità di risolvere i 
problemi di sovrapposizione di poligoni, mentre il secondo può solo 
verificarli e il terzo non può effettuare tale verifica.


Tuttavia tale plugin sembra avere svariati bug (almeno nelle versioni 
pià recenti di QGIS) e, fra le altre cose, sembra che la correzione 
delle sovrapposizioni (e dei gap) non funzioni correttamente. Ne ho 
infatti segnalati altri due di cui mi sono accorto proprio ieri mentre 
facevo qualche prova con il tuo file.
Puoi farti un'idea dei vari bug segnalati per questo plugin all'URL 
https://github.com/qgis/QGIS/issues?q=is%3Aissue+is%3Aopen+%22Geometry+Checker%22


A presto.

Andrea 


___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user


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

2021-04-07 Per discussione Alessio Degioannini

Ciao,

sono alle prese con uno shapefile corrotto di poligoni (circa 760 entità).

Premetto che uso QGis 3.16.5 sotto Windows 10 Pro 64-bit, Build 19042, 
ma il problema si presenta anche con le recenti releases 3.16.4, 3.10.x. 
e sotto Ubuntu (Qgis 3.18.1)


 * Edito il layer per un po' (aggiungo poligoni, elimino, modifico,
   taglio...), avendo preventivamente attivate le funzioni di snap al
   vertice, modifica topologica, evita sovrapposizione, aggancio
   all'intersezione, auto-aggancio.

 * Successivamente esporto (in formato shapefile o geopackage, ma non
   trovo differenze nei risultati: tra l'uno e l'altro formato ormai
   sono arrivato ad avere una trentina di versioni...).

 * Ogni volta che apro la nuova versione e ne faccio la validazione
   topologica ottengo solo un tipo di errore, quello di sovrapposizione
   (in media 170-180 errori).

 * Ho provato a correggere manualmente alcuni errori, ho salvato ed ho
   esportato, ho rifatto la validazione topologica e gli errori che
   avevo corretto a volte sono scomparsi, a volte no e, comunque, dove
   prima non risultavano errori invece ora ce ne sono, altri che prima
   comparivano ora sono scomparsi... Oltretutto, quando tento di
   correggere qualche errore, a volte magicamente compaiono nodi doppi
   che prima non risultavano. In pratica gli errori si propagano.

 * Alla fine Qgis va in crash (vd. allegato). Se lavoro sotto Ubuntu,
   Qgis dopo un po', semplicemente, si chiude senza la solita finestra
   di crash.

 * Ho provato ad utilizzare v.clean direttamente con Grass (non sotto
   Qgis): sembra che il risultato sia finalmente buono (il layer
   importato in Qgis supera indenne tutta la validazione topologica),
   ma dopo un po' sono daccapo.

 * Ho convertito i poligoni in layer multilinea e la validazione
   topologica mi ha dato centinaia di pseudonodi, oltre naturalmente a
   qualche nodo doppio.

 * Il controllo della validità, fatto sia per il layer di poligoni che
   per quello di linee, non dà errori in alcuno dei tre metodi di
   controllo.

Qualcuno saprebbe suggerirmi una procedura per provare a recuperare il 
file?


Grazie per l'attenzione e cordiali saluti.

Alessio


Crash ID: 9b235b5395dc01946b5502171c46c714aaf55ce5


Stack Trace


QgsGeometry::closestVertex qgsgeometry.cpp:388
QgsPointLocator_VisitorNearestVertex::visitData qgspointlocator.cpp:117
Index::~Index :
Index::~Index :
QgsPointLocator::nearestVertex qgspointlocator.cpp:1176
_updateBestMatch qgssnappingutils.cpp:214
QgsSnappingUtils::snapToMap qgssnappingutils.cpp:347
QgsMapMouseEvent::snapPoint qgsmapmouseevent.cpp:52
QgsMapToolAdvancedDigitizing::canvasMoveEvent 
qgsmaptooladvanceddigitizing.cpp:111
QgsMapCanvas::mouseMoveEvent qgsmapcanvas.cpp:1994
QWidget::event :
QFrame::event :
QGraphicsView::viewportEvent :
QCoreApplicationPrivate::sendThroughObjectEventFilters :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:458
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QSizePolicy::QSizePolicy :
QSizePolicy::QSizePolicy :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:458
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
UserCallWinProcCheckWow :
DispatchMessageWorker :
QEventDispatcherWin32::processEvents :
qt_plugin_query_metadata :
QEventLoop::exec :
QCoreApplication::exec :
main main.cpp:1637
BaseThreadInitThunk :
RtlUserThreadStart :




QGIS Info
QGIS Version: 3.16.4-Hannover
QGIS code revision: 654e76b3cb
Compiled against Qt: 5.11.2
Running against Qt: 5.11.2
Compiled against GDAL: 3.1.4
Running against GDAL: 3.1.4



System Info
CPU Type: x86_64
Kernel Type: winnt
Kernel Version: 10.0.19042

___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user


Re: [QGIS-it-user] Problemi con conversione multipart/singlepart e editing topologico

2020-04-01 Per discussione Alessio Degioannini

Ok, grazie per l'info.

Ora proverò con la versione 3.10.

Cordialità.

Alessio

Il 01/04/2020 19:06, Andrea Giudiceandrea ha scritto:

Alessio Degioannini ha scritto:

il messaggio di errore del validatore, che è impostato su "il layer non
deve avere geometrie multipart", è:

"elemento multiparte" per ciascuno dei 423 poligoni del tema.

Ciao Alessio,
ho effettuato la verifica con il Topology Checker usando QGIS 3.10.1,
impostando lo stesso criterio "must not have multi-part geometries" e la
validazione non riporta alcun errore: nessun poligono viene identificato
come multipart.

Si tratta di un bug nel plug-in Topology Checker in QGIS 3.4.

Effettivamente, controllando nel repository di QGIS su GitHub, ci sono
alcuni bug report a riguardo [1] che sono comunque stati risolti nella
versione 3.10.0 [2]

A presto.

Andrea


[1] https://github.com/qgis/QGIS/issues/28361 -
https://github.com/qgis/QGIS/issues/26145
[2] https://github.com/qgis/QGIS/pull/32105 -
https://github.com/qgis/QGIS/commit/5101386b37fb4d180d32d31663404e3bcc647cec


___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user


Re: [QGIS-it-user] Problemi con conversione multipart/singlepart e editing topologico

2020-04-01 Per discussione Alessio Degioannini

Ciao,

ho seguito il consiglio ed ho importato il layer in GRASS: 
effettivamente ci sono errori (poligoni piccoli) che non sono stati 
rilevati con altri sw e/o plugin.


Grazie a Sergio Gollino (e a GRASS.)

Alessio

Il 01/04/2020 11:46, Sergio Gollino ha scritto:
Quello che ti consiglio è di importare tutto in GRASS col plugin di 
qgis. Grass essendo un gis topologico (cosa che gli shape non sono) 
corregge il file in fase di importazione. Dopo di che ri-esporta il 
file in che formato vuoi. Avrai uno shape singlepart e corretto.

___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user


Re: [QGIS-it-user] Problemi con conversione multipart/singlepart e editing topologico

2020-04-01 Per discussione Alessio Degioannini

Ciao e grazie a voi per la cortese sollecitudine,


qual è esattamente la dicitura (forse "Multipart object with only one
feature")?
Sei sicuro che nei vari test da te fatti la dicitura riscontrata sia
multiparts e non multipolygon?


il messaggio di errore del validatore, che è impostato su "il layer non 
deve avere geometrie multipart", è:


"elemento multiparte" per ciascuno dei 423 poligoni del tema.

Qundi non penso ci siano dubbi.

Nel corso dei vari tentativi fatti, il layer è stato controllato e 
verificato con tutti i plugin utili allo scopo a me noti (controlla 
validità, controlla geometrie, v.build.check, v.clean). Successivamente 
è stato importato in TnShark 4.3.0 (sw vecchio e spartano ma sempre 
valido e "robusto") dove è stato fatto il check degli errori (nessuno 
trovato) ed è stata ricreata la topologia. Lo shape così ottenuto è 
stato controllato anche in arcgis, che non ha riscontrato errori. Così è 
stato aperto in qgis ed è ricominciato il giro dell'oca già descritto: 
però non se ne esce.


Ora io non saprei dire quanto sono subdole ed introvabili le magagne del 
layer però, dopo tutti i controlli e le verifiche eseguite, il dubbio 
che qualche resposabilità la abbia Qgis mi viene...


Grazie ancora.

Alessio


Il 01/04/2020 11:34, Andrea Giudiceandrea ha scritto:

Alessio Degioannini wrote

   * quando importo uno shape poligonale singleparts, i poligoni, secondo
 il  Validatore topologico risultano invece multiparts

Ciao Angelo,
qual è esattamente la dicitura (forse "Multipart object with only one
feature")?
Sei sicuro che nei vari test da te fatti la dicitura riscontrata sia
multiparts e non multipolygon?

Considera che tutti gli shapefile poligonali sono multipolygon (così come
quelli lineari sono multiline, mentre invece quelli puntuali possono essere
o point o multipoint), cioè possono contenere sia feature costituite da una
sola parte, sia feature costituite da più parti.

Nel tuo caso il vettore shapefile poligonale dovrebbe essere identificato
come Polygon (MultiPolygon).


Alessio Degioannini wrote

   * preso atto della cosa, se edito i poligoni in questione (tagli,
 unioni, eliminazioni, modifiche tabellari), dopo qualche normale
 salvataggio del layer, Qgis diventa sempre più lento a salvare
 impiegando fino a 15/20' e, infine, va in crash.

Se tu potessi condividere il file, si potrebbero fare delle prove per capire
qual è il problema.

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

___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user


[QGIS-it-user] Problemi con conversione multipart/singlepart e editing topologico

2020-04-01 Per discussione Alessio Degioannini

Buongiorno,

vorrei segnalare alcuni problemi:

 * quando importo uno shape poligonale singleparts, i poligoni, secondo
   il  Validatore topologico risultano invece multiparts; ciò si
   verifica sia con qgis 2.18.25 che con 3.4.15 (sotto windows 10)
 * se uso il plugin Split Feature, per ora solo con 3.4.15, dopo aver
   selezionato tutti i poligoni, mi dice che non vi sono oggetti
   multipart selezionati
 * se uso il plugin Da parti multiple a parti singole, lo shape
   ottenuto risulta anch'esso multiparts, sempre secondo il Validatore
 * preso atto della cosa, se edito i poligoni in questione (tagli,
   unioni, eliminazioni, modifiche tabellari), dopo qualche normale
   salvataggio del layer, Qgis diventa sempre più lento a salvare
   impiegando fino a 15/20' e, infine, va in crash.

Specfico che si tratta di layer topologicamente corretti e "puliti" 
originati in arcgis.


Chi mi può aiutare?

Grazie e cordiali saluti.

--
*********
Alessio Degioannini - dottore forestale
PROTER - Studio Associato Agronomico e Forestale
Sede legale: Via Regina Margherita, 58/C - 12075 Garessio (CN - IT)
Sedi operative:
- Piazza Vittorio Veneto, 19 - 10124 TORINO (IT)
- Via Vittorio Emanuele II, 102 - 12075 Garessio (CN - IT)
Mob.: +39 329 211 2781
E-mail:a.degioann...@proterstudio.com
P.E.C.:a.degioann...@epap.conafpec.it
*

___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user