Tengo dos capas: una capa de puntos que define propiedades (95 objetos) y una capa de polígono que define parcelas de terreno asociadas con las propiedades (211 objetos). Cada punto se relaciona con uno o más polígonos. Lo que me gustaría producir es una tabla de distancias de cada punto a TODOS los polígonos asociados con ese punto (el borde o centroide más cercano del polígono, ya sea). Calcular la distancia más cercana es relativamente fácil en QGIS y ArcGIS, pero esos cálculos omiten todos los polígonos distantes, al menos por los métodos que he estado empleando. Idealmente me gustaría una salida de
Point_ID | distance to polygon 1 | distance to polygon 2 | distance to polygon 3 | etc.
Cualquier puntero en ArcGIS 10 o QGIS 2.2+ sería de gran ayuda.
Respuestas:
Puede usar la Matriz de distancia en QGIS para lograr esto. Primero debe convertir sus polígonos en puntos de centroide mediante Vector > Herramientas de geometría > Centroides de polígono o mediante la versión SAGA de centroides de polígono. La razón de esto es que la función Matriz de distancia solo puede analizar entre capas de 2 puntos. Además, la salida sería así:
La salida sería un archivo .csv para que pueda editar manualmente el diseño utilizando otro software como Microsoft Excel.
fuente
Esto es bastante simple de lograr usando QGIS (creo que cualquier versión funcionará) y una declaración SQL muy simple en el administrador de bases de datos. Pero para eso debe estar en algún tipo de base de datos espacial (Postgis o spatialite). Dado que es más accesible para la mayoría de las personas, supondré que uso spaceialite, pero las declaraciones SQL son las mismas para Postgis.
Distancia de todos los puntos a todos los límites de polígonos
Distancia a todos los puntos a los límites de polígonos relacionados (suponiendo que exista un campo común)
Distancia a todos los puntos a centroides de polígonos relacionados :
Tenga en cuenta que puede agregar cualquier campo de sus capas al resultado:
O incluso todos los campos:
fuente
La herramienta Generar tabla cercana en ArcGIS hará lo que desee, pero requiere una licencia avanzada y lo hará para todos los puntos / polígonos, no solo para aquellos asociados entre sí. Esto significa que para cada uno de sus 95 objetos obtendrá la distancia clasificada para las 211 propiedades, por lo que 20,045 filas en la tabla. Tendría que filtrar la tabla resultante o, como Emil sugiere, automatice la tarea para crear selecciones basadas en la asociación y solo ejecutarla en esos grupos.
En cuanto al filtrado, sí, una combinación (seguida de una consulta de definición o selección) es todo lo que necesita. El resultado de la herramienta le proporciona IN_FID y NEAR_FID. Dependiendo de cómo ejecute la herramienta (propiedades cerca del punto o punto cerca de la propiedad), determine qué FID es cuál. Luego uniría sus tablas de puntos y propiedades (ambas) al resultado de la herramienta en función del FID apropiado.
Esto supone que cada uno de sus 211 registros de propiedades tiene un atributo que dice a cuál de los 95 puntos pertenecen, porque el siguiente paso es seleccionar (o consultar la definición) todos los registros en la (s) tabla (s) unida (s) donde dos campos de un registro deberían partido - campo de nombre de punto = campo de nombre de punto asociado a propiedad. Los casos en los que no coinciden son polígonos que no están asociados con ese punto, por lo que no le importa su distancia desde ese punto.
fuente