Attributi da vettore più vicino con filtro

Buongiorno a tutti,
Sto provando ad unire a un layer (numeri civici) alcuni attributi da altro layer (archi stradali).
Ho provato ad utilizzare lo strumento di processing [unisci attributi dal vettore più vicino] indicando nell’ordine i due layer di cui sopra.
Ora nella maggior parte dei casi l’unione funziona bene; Ma se il numero civico è in angolo tra due archi stradali può essere che risulti geometricamente più vicino a un arco stradale a cui non è associato da un punto di vista toponomastico.
Premesso che entrambi i layer hanno un attributo che identifica il codice dell’Arco stradale, c’è una possibilità di ricercare tra i vettori più vicini (archi stradali) solo quelli filtrati dal codice Arco corretto per il numero civico?
Grazie anticipatamente per l’aiuto

se ho capito bene negli strumenti di processing disponibili c’è quello che fa al caso tuo.

Si chiama “Unisci attributi secondo il valore del campo”

Prende un vettore in ingresso e ne crea uno nuovo che è una versione estesa del vettore in ingresso, con degli attributi addizionali nella tabella degli attributi.

Tali attributi aggiuntivi e i loro valori sono ricavati da un secondo vettore. Per ciascun vettore è selezionato un attributo che determina il criterio di unione.

Innanzitutto grazie per l’attenzione.
Se ho ben capito il processo che ha suggerito non è sufficiente come del resto quello che avevo provato io
Devo precisare quanto precedentemente scritto perché in realtà il civico ha tra gli attributi il [codice via] al quale è toponomasticamente collegato. Ma il layer delle vie è composto di uno/ più vettori con lo stesso codice via e i vari segmenti della via hanno valori diversi negli attributi che mi interessa importare
Quindi Ho necessità di filtrare per il codice via e in aggiunta di selezionare di quella via il segmento più vicino al civico.
Spero questa volta di essere stato più chiaro

Ma hai impostato una distanza massima da cui prendere i dati del secondo layer? Perchè la prima funzione che hai provato prevede anche (se impostata) la distanza massima in metri da considerare per l’unione. Fai qualche prova e vedi come va con distanze sempre crescenti (1 metro, 2 metri, etc.). Qualcuno resterà associato al segmento sbagliato lo stesso ma saranno pochi, credo. A quel punto li correggi a mano

Ok faccio qualche prova.
Speravo la cosa potesse essere affrontata con qualche funzione più flessibile, tipo aggregate …
Vediamo

Sicuramente si può procedere utilizzando il calcolatore di campi e apposite espressioni di overlay oppure utilizzando Python.
Più semplicemente, dovresti poter usare il plugin ProcessX ProcessX — QGIS Python Plugins Repository e l’algoritmo “Join attributes by nearest with condition”.

A presto.

Andrea

1 Like

Sì, è possibile come ti ha detto @agiudiceandrea.

Condivido un vecchio blog post dove abbiamo affrontato il problema con @agiudiceandrea

saluti

1 Like