Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

13 votos

Unir atributos de la capa de puntos y líneas por ubicación (distancia más cercana) en QGIS

Mi problema es el siguiente: tengo un shp de línea (capa de destino) y un shp de punto (capa de unión). el segundo (capa de punto) contiene un atributo que quiero unir con una capa de línea basada en la distancia más cercana a la línea. Los puntos y las líneas no se cruzan

Puedo hacer esto con ArcGIS y la unión espacial (opción de coincidencia: más cercana), pero no sé cómo puedo lograr esto en QGIS.

3 votos

Hay una herramienta para hacer Join por ubicación pero no tiene una opción "más cercana". No sé si hay alguna solución. En general, por favor, evalúe para apoyar el desarrollo de sus opciones/herramientas favoritas que faltan, es también esta manera que los usuarios pueden ayudar a esta pieza de software a crecer.

8voto

Hugo Puntos 2156

No creo que haya una función "central" de QGIS para esto. Sin embargo, instale el plugin MMQGIS, y utilice la herramienta 'distancia del centro'. Elija sus puntos como la capa "Puntos de origen", y sus líneas como la "Capa de cubos de destino" y establezca "Tipo de forma de salida" a "Línea a cubo". Esto le dará un shapefile de líneas (con longitud) que unen las características más cercanas. Convenientemente, también añade el ID de la característica más cercana a la tabla de atributos.

Edición/Comentario: Este enfoque funciona bien si hay menos puntos que líneas, o bien una situación de línea a punto. Tener más puntos que líneas complica las cosas. La herramienta 'Hub Distance' añade el ID de la característica de la línea a la tabla de atributos del punto como 'HubName' junto con la distancia entre el punto y el centro de la línea como 'HubDist'. Si hay más puntos que líneas, se requiere un trabajo adicional para determinar dentro de cada subconjunto de puntos (aquellos registros múltiples vinculados a cada centro de línea) cuál de ellos es el más cercano a cada línea, y/o cuál es el que tiene el conjunto de atributos deseado para unirse a la línea.

0 votos

Esto debería ser marcado como la respuesta, sujeto a una edición menor de "líneas" v "puntos"

1 votos

La "distancia del cubo" no es la herramienta adecuada si el criterio es la "distancia más cercana a la línea". El código de mmqgis revela que la distancia al cubo utiliza una aproximación de la geometría del "cubo". El cálculo de la distancia (mmqgis_distance) toma dos puntos como parámetros. Aquí está el código que hace la aproximación de la geometría del cubo en mmqgis_library.py: "feature.geometry().boundingBox().center()". Esto significa que se utiliza el centro de la caja delimitadora de la geometría en lugar de la geometría real. Por lo tanto, si el criterio es "la distancia más cercana a la línea", GRASS v.distance o el plugin NNJoin son más adecuados.

5voto

Droidnoid Puntos 141

La hierba v.distancia se puede utilizar para ello. En QGIS se puede acceder a la función a través de la función Plugin GRASS (el Procesamiento actualmente no funciona). La página web NNÚnase a El plugin de QGIS puede ser una alternativa más sencilla.

3voto

user2995274 Puntos 21

El plugin NNJoin nunca me ha defraudado y funciona bien con grandes conjuntos de datos .

Plugins > Instalar: NNJoin > NNJoin > elija la capa de entrada y la capa de unión > Luego haga clic en unir.

Examine los resultados de la nueva capa de salida con la tabla de atributos. Advertencia: asegúrese de que las dos capas están utilizando el la misma proyección espacial de lo contrario, los resultados estarán en blanco.

3voto

DanForys Puntos 21

En 2019 esto puede ser posible con la herramienta de QGIS 3 Zanzíbar 'Unir atributos por más cercanos'. Esta herramienta permite encontrar la característica más cercana y unir los atributos seleccionados. También es posible hacer una unión de uno a varios, si se especifica la distancia máxima y los vecinos máximos más cercanos.

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