18.6. CRS. Riproiezione

Nota

In questa lezione parleremo di come Processing tratta i CRS. Vedremo anche algoritmo molto utile: riproiezione.

I CRS sono una grande fonte di confusione per gli utenti di QGIS Processing, per cui ecco alcune regole generali su come sono maneggiati dai geoalgoritmi quando si crea un nuovo vettore.

  • Se ci sono vettori in ingresso, sarà utilizzato il CRS del primo vettore. Si presuppone che tale CRS sia quello di tutti i vettori in ingresso, siccome dovrebbe essere lo stesso per tutti. Se utilizzi vettori con CRS che non corrispondono, QGIS te lo notificherà. Nota che il CRS dei vettori in ingresso è mostrato insieme al suo nome nella finestra di dialogo dei parametri.

../../../_images/crs_layer.png
  • Se non ci sono vettori in ingresso, sarà utilizzato il CRS del progetto, a meno che l’algoritmo contenga uno specifico campo per il CRS (come è successo nell’ultima lezione con l’algoritmo del reticolo)

Apri il progetto corrispondente a questa lezione: noterai due vettori denominati 23030 e 4326. Entrambi contengono gli stessi punti, ma in CRS differenti (EPSG:23030 e EPSG:4326). Essi appaiono nella stessa posizione perché QGIS sta riproiettando al volo nel CRS del progetto (EPSG:4326), ma in realtà non rappresentano lo stesso vettore.

Apri l’algoritmo Esporta/Aggiungi colonne geometriche.

../../../_images/add_geom.png

Questo algoritmo aggiunge nuove colonne alla tabella degli attributi di un vettore. Il contenuto delle colonne dipende dal tipo di geometria del vettore. Nel caso di punti, aggiunge nuove colonne con le coordinate X e Y di ogni punto.

Nella lista dei vettori disponibili che troverai nel campo del vettore in ingresso, vedrai ognuno di essi con il CRS corrispondente. Ciò significa che, sebbene appaiano nella stessa posizione sulla mappa, saranno trattati diversamente. Selezione il vettore 4326.

L’altro parametro dell’algoritmo permette di definire come l’algoritmo utilizza le coordinate per calcolare il nuovo valore che sarà aggiunto al vettore risultante. La maggior parte degli algoritmi non ha un’opzione simile, e usa direttamente le coordinate. Seleziona l’opzione CRS del vettore per usare le coordinate così come sono. Questo è il modo con cui funzionano quasi tutti gli algoritmi.

Dovresti ottenere un nuovo vettore con gli stessi identici punti degli altri due vettori. Se fai click con il tasto destro sul nome del vettore e apri le sue proprietà, vedrai che ha lo stesso CRS del vettore in ingresso, che è EPSG:4326. Quando il vettore è caricato all’interno di QGIS, non ti sarà chiesto di inserire il CRS del vettore poiché QGIS già lo conosce.

Se apri la tabella degli attributi del nuovo vettore, vedrai che conterrà due nuovi campi con le coordinate X e Y di ogni punto.

../../../_images/attribs2.png

Questi valori di coordinata sono fornite nel CRS del vettore, poiché è quello che abbiamo scelto. Comunque, anche se avessi scelto un’altra opzione, il CRS in uscita sarebbe stato lo stesso poiché il CRS in ingresso è utilizzato per stabilire quello del vettore in uscita. La scelta di un altra opzione avrebbe generato valori diversi, ma non la modifica del punto risultato o un diverso CRS del vettore in uscita rispetto a quello in ingresso.

Ora esegui la stessa operazione utilizzando l’altro vettore. Dovresti trovare il vettore risultante rappresentato esattamente nella stessa posizione degli altri, e avrà l’EPSG:23030 come CRS, poiché era questo quello del vettore in ingresso.

Se vai alla sua tabella degli attributi, vedrai valori diversi rispetto a quelli nel primo vettore che abbiamo creato.

../../../_images/attribs.png

Ciò perché i dati originali sono diversi (usano un CRS diverso), e le coordinate sono ricavate da essi.

Cosa dovresti imparare da questo? L’idea principale dietro questi esempi è che i geoalgoritmi usano il vettore così come si trova nella sua fonte originale dei dati, e ignorano completamente le riproiezioni che QGIS potrebbe fare prima di rappresentarli. In altre parole, non fidarti di quello che vedi nella mappa, ma tieni sempre in mente che saranno utilizzati i dati originali. Ciò non è così importante in questo caso poiché stiamo utilizzando un solo vettore per volta, ma in un algoritmo che ne utilizza di diversi (come un algoritmo di ritaglio), i vettori che sembrano combaciare o sovrapporsi possono essere molto lontani tra loro poiché possono avere CRS differenti.

Gli algoritmi non eseguono la riproiezione (tranne l’algoritmo di riproiezione che vedremo dopo), per cui devi essere tu ad assicurarti che i vettori abbiano lo stesso CRS.

Un modulo interessante che ha a che fare con i CRS è quello di riproiezione. Esso rappresenta un caso particolare poiché ha un vettore in ingresso (quello da riproiettare), ma non utilizza il suo CRS per quello in uscita.

Apri l’algoritmo Riproietta vettore.

../../../_images/reprojection.png

Seleziona in ingresso un qualunque vettore, e seleziona EPSG:23029 come CRS di destinazione. Eseguendo l’algoritmo otterrai un nuovo vettore, identico a quello in ingresso, ma con un CRS diverso. Apparirà nella stessa regione della mappa, come gli altri, poiché QGIS lo riproietterà al volo, ma le sue coordinate di partenza sono diverse. Puoi notare ciò eseguendo l’algoritmo Esporta/Aggiungi colonne geometriche usando questo nuovo vettore in ingresso, e verificando che le coordinate aggiunte siano diverse rispetto a quelle nella tabella degli attributi di entrambi i vettori che abbiamo elaborato prima.