40 votos

¿Cómo unir atributos desde el punto más cercano en QGIS?

Tengo dos capas con puntos, las llamo A y B, cada una con diferentes atributos.

Para cada punto de A quiero unir todos los atributos del punto más cercano de B.

Lo ideal sería incluir también un campo que midiera la distancia entre ambos puntos.

Sé cómo hacer esto en ArcGIS: haga clic con el botón derecho del ratón en la capa A> uniones y relaciones> uniones, y luego una los datos basados en la ubicación espacial y elija unir los atributos del punto más cercano.

No he podido encontrar una funcionalidad similar en QGIS. ¿Alguna indicación?

29voto

tobes Puntos 19

Utilizando la "Matriz de distancias" puedes calcular el punto más cercano. Asegúrese de que ambas capas están en el mismo CRS. A continuación, puede cargar los resultados y utilizarlos para unir las tablas A y B.

En "Matriz de distancia" elija: "Matriz de distancia lineal" y "utilizar sólo los k puntos de destino más cercanos: 1"

enter image description here

Cargue el CSV usando "Add Vector Layer" y una las capas en las propiedades de la capa A - pestaña de unión.

enter image description here

Y el resultado:

enter image description here

0 votos

Si quiere tener las distancias entre puntos dentro de una capa usando la matriz de distancia debe cambiar k=2, debido a este problema conocido: hub.qgis.org/issues/4761

1 votos

@underdark Parece que esta solución ya no funciona. Soy capaz de crear el matrix.csv y unirlo a mi primera capa. En tu ejemplo has añadido un segundo join en el que unes la segunda capa a la primera, basándote en el TargetID de la matriz. Pero los campos unidos no se muestran en el diálogo, por lo que no puedo seleccionar el TargetID. Por supuesto, primero puedo guardar la capa y luego hacer la segunda unión...

16voto

Droidnoid Puntos 141

El NNÚnase a El plugin debería hacer el trabajo. Para cada característica de la capa de entrada añade todos los atributos de la característica más cercana en la capa de unión y también añade un atributo de distancia con la distancia a esta característica.

0 votos

Funciona perfectamente. Más rápido que la respuesta aceptada. Tenga en cuenta que la respuesta aceptada si de 2011.

0 votos

Al menos, hoy es mucho mejor que la respuesta aceptada. Mucho más rápido.

4voto

aditya Puntos 111

Si puede vivir con la unión de un solo atributo de su capa "B", eche un vistazo a la herramienta "Hub Distance" del plugin mmqgis .

Si necesita el resto de los atributos "B", debería poder unir el resto de sus atributos "B" a esta capa.

Si lo desea, también puede generar líneas de la A a la B. Esto es útil para visualizar las distancias y direcciones entre las características asociadas.

1voto

ghotan Puntos 29

Otro enfoque que utiliza refFunciones plugin.

(1) Conjunto de datos de muestra

enter image description here

(2) Abrir una tabla de atributos de la capa que tenga más características ( points_b en este ejemplo) para que no se pierda ningún par. Cree nuevos campos.

  • campo ID de la otra capa: geomnearest('points_a', 'id_a')
  • Campo de distancia de los pares detectados: geomnearest('points_a', '$distance')

enter image description here

-6voto

Erik Öjebo Puntos 6937

Utilizando QGIS 1.7 Vectorial > Gestión de datos> Unir atributos por ubicación

enter image description here

4 votos

Yo también pensé en esto, pero cuando lo probé, sólo funcionaba para coincidencias exactas, como punto-polígono. No encontró la más cercano punto a otro punto. Probado en la v1.7

2 votos

Tengo cero coincidencias. Esto no funciona.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X