QGIS: fare il join di prossimità

Nella versione di QGIS 3.8 Zanzibar sono state introdotte ben 58 nuove feature e tra queste spicca un algoritmo molto potente Join attributes by nearest sviluppato da Nyall Dawson (North Road).

Cosa fa questo algoritmo

L’algoritmo permette di unire gli attributi dei k elementi prossimi più vicini; cioè permette, a partire da due layer vettoriali, di unire gli attributi dei due layer anche se non si toccano ma che si trovano nelle vicinanze. [qui maggiori dettagli]

Esempio pratico

Supponiamo di avere due layer vettoriali, uno lineare (le strade si Palermo) e uno puntuale (gli incidenti stradali, sempre di Palermo) e di voler associare ad ogni punto l’arco della rete stradale più vicina. I due layer, in generale, non si toccato e quindi occorre usare un algoritmo che tenga conto della vicinanza, in modo da associare gli incidenti al tratto di strada più vicino.

Screenshot QGIS
Screenshot QGIS

Dal menu menu Processing → Strumenti → Join attributes by nearest oppure ctrl + k e digitare a Join attributes by nearest e poi invio:

Algoritmo Join attributes by nearest
  1. layer di ingresso : i punti che rappresentano gli incidenti;
  2. vettore in ingresso 2: che rappresenta le strade;
  3. selezionare gli attributi da unire (dal layer delle strade);
  4. aggiungere un prefisso che si vedrà nella tabella attributi;
  5. numero massimo di elementi più vicini;
  6. distanza massima entro cui cercare [opzionale];
  7. percorso del nuovo file;
  8. Esegui.

questo è l’output:

tabella attributi nuovo layer
  • in blue: la tabella originale, layer di ingresso;
  • in verde: attributi del secondo layer unito;
  • in giallo: attributi calcolati dall’algoritmo:
    • n: indica il numero di archi più vicini;
    • distance: indica la distanza tra le feature;
    • feature_x: coordinata x del punto più vicino della feature layer di ingresso;
    • feature_y: coordinata y del punto più vicino della feature layer di ingresso;
    • nearest_x: coordinata x del punto (closest_point) più vicino al secondo layer;
    • nearest_y: coordinata x del punto (closest_point) più vicino al secondo layer;

gli attributi feature_x, feature_y, nearest_x e nearest_y possono essere utilizzati per creare e visualizzare il segmento di minima distanza tra gli oggetti dei due layer, per esempio tramite una tematizzazione e la seguente espressione:

make_line(
make_point( "feature_x" , "feature_y"  ) ,
make_point( "nearest_x" , "nearest_y" )
)
Screenshot QGIS

NOTE FINALI: Questo algoritmo utilizza calcoli puramente cartesiani per la distanza e non considera le proprietà geodetiche o ellissoidali nel determinare la prossimità delle caratteristiche.

Riferimenti


Se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!

Se il post vi è stato utile contribuite a mantenerlo aggiornato PayPal

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.