Ciao a tutti. Oggi vi mostriamo come fare quando eseguite una tool di processing e QGIS vi restituisce il seguente messaggio di errore: L’errore “x” ha una geometria non valida. Correggi la geometria oppure cambia l’impostazione di Processing in “Ignora geometrie in ingresso non valide”. Execution failed (…)
Ci è capitato, recentemente, di fare un’operazione elementare di processing dopo aver installato QGIS su un computer per la prima volta. Si tratta del calcolo di centroidi di poligoni. QGIS ci ha restituito l’errore che vedi a schermo.
Per prima cosa, va detto che quando QGIS segnala un errore nella finestra di Processing, spesso basta leggere BENE questo messaggio, per capire qual è il problema e cosa fare. Spesso ci capita di parlare con persone che non leggono neanche il messaggio, chiudono la finestra e dicono semplicemente che QGIS non gli fa fare l’operazione.
Quindi, leggiamo il messaggio di errore e capiamo come possiamo portare a termine ciò che vogliamo fare con la nostra tool.
La prima parte del messaggio ci dice cosa non va:
L’elemento (15) di “Reg01012021_WGS84” ha una geometria non valida.
Quindi, intanto, capiamo che c’è un errore di tipo geometrico. Inoltre QGIS ci dice che questo errore è contenuto nella feature avente id 15. Ovviamente questo id non si riferisce alla colonna id creata da chi ha fatto il dato o da noi, ma ad un id interno.
Vediamo, nel nostro esempio, che è la Regione Puglia ad avere questo ID elemento.
A questo punto QGIS ci dice che per risolvere il problema dobbiamo
correggere la geometria oppure cambiare l’impostazione di Processing in “Ignora geometrie in ingresso non valide”.
In questo post non vedremo come correggere la geometria, ma vedremo come cambiare l’impostazione di Processing in “Ignora geometrie in ingresso non valide”.
2. Cambia l’impostazione di Processing in “Ignora geometrie in ingresso non valide”
Vediamo quindi come cambiare le impostazioni di processing.
Dopo aver aperto il pannello degli strumenti di processing, clicchiamo sul pulsante Opzioni.
Per aprire la finestra delle opzioni potevi anche andare nel menu Impostazioni e cliccare su Opzioni. Infine posizionarti sulla scheda Processing.
Adesso, nella finestra delle Opzioni devi cliccare sulla freccia nera a fianco della voce Generale. Guardiamo l’Opzione Filtra elementi non validi.
A fianco di essa troviamo scritto Ferma l’esecuzione dell’algoritmo quando una geometria non è valida. Questa è l’opzione di default di QGIS. Accade quindi che se QGIS, quando esegue una tool di processing, trova una geometria con degli errori, con questa opzione blocca il processo di calcolo.
È tutto corretto, infatti la modalità giusta di procedere consiste nel correggere l’errore e rieseguire la tool.
Ci sono dei casi in cui, tuttavia, vorresti poter forzare questo processo.
Per farlo fai doppio clic sulla frase Ferma l’esecuzione dell’algoritmo quando una geometria non è valida. Sulla destra comparirà una freccia nera per aprire un menu a tendina.
Da questo menu, oltre a quella già citata, è possibile selezionare le seguenti due opzioni:
- Non filtrare (performance migliori)
- Salta (ignora) elementi con geometrie non valide
Con l’opzione Non filtrare (performance migliori), QGIS salta completamente l’errore geometrico ed esegue il processo. Non ti segnala neanche che c’è un errore, infatti, se guardiamo al risultato dell’operazione, vediamo che i centroidi sono stati creati per tutte le Regioni, anche per la Puglia, e che nel messaggio di log non c’è alcuna segnalazione dell’errore geometrico, c’è scritto solo che l’algoritmo è stato terminato.
Selezioniamo adesso anche l’opzione Salta (ignora) elementi con geometrie non valide. Con questa opzione QGIS ti avvisa dell’errore dicendoti che ci sono geometrie non valide e ti indica quali sono, anche in modo più dettagliato rispetto all’opzione Ferma l’esecuzione dell’algoritmo quando una geometria non è valida. Questo perché con l’opzione Ferma l’esecuzione QGISsi fermaal primo errore che trova. Qui, invece, ne fa proprio l’elenco, il che può essere utile se decidi di eseguire la correzione delle feature errate. Inoltre, con l’opzione Salta (ignora) elementi con geometrie non valide QGIS esegue il geoprocesso su tutte le geometrie selezionate tranne che su quelle errate. In questo modo potrai anche visualizzare quali sono le geometrie errate.
Immaginiamo adesso che molti si stiano facendo questa domanda: quale opzione è la più corretta?
Dipende. Dipende da quale processo stai usando, dipende dal dato che stai analizzando e dipende anche dal grado di errore sei disposto ad accettare rispetto a ciò che stai facendo.
Noi, nel nostro QGIS, abbiamo impostato come permanente l’opzione Salta (ignora) elementi con geometrie non valide, per mantenere il controllo. Salvo tuttavia a switchare, nel momento in cui lo reputiamo accettabile per ciò che stiamo facendo, all’opzione Non filtrare (performance migliori).
Tips & tricks
Facciamo una tabella riassuntiva di cosa fanno le tre opzioni? Eccola qua:
Opzione | Cosa fa |
Non filtrare (performance migliori) | – QGIS ignora la presenza di errori – Non ti restituisce messaggi di errore nella finestra di log – QGIS esegue il processo ignorando l’errore |
Salta (ignora) elementi con geometrie non valide | – QGIS ti restituisce il messaggio di errore nella finestra di log, elencandoti le feature errate – QGIS esegue il processo solo per le geometrie corrette |
Ferma l’esecuzione dell’algoritmo quando una geometria non è valida | – Appena l’algoritmo trova un errore si ferma e non calcola l’output. – Ti segnala il primo errore che trova – Ti restituisce il messaggio Geometria (…) non valida. Correggi la geometria oppure cambia l’impostazione di Processing in “Ignora geometrie in ingresso non valide” |
Bene, questo post è finito. Se ti è piaciuto condividilo! Hai dubbi o suggerimenti? Lascia pure un commento.
Puoi vedere anche il nostro video su YouTube “Geometria non valida. Correggi la geometria oppure cambia l’impostazione di Processing” e iscriverti al nostro canale.
Ciaooo