Cálculo de la distancia mínima entre puntos y polígonos en QGIS?

9

Tengo dos capas vectoriales: un punto y un polígono y quiero calcular la distancia mínima de cada punto desde los polígonos (es decir, la distancia desde el punto más cercano del polígono más cercano).

¿Hay algún complemento disponible en QGIS para hacer esto?

Sylvia
fuente
1
te refieres a vértices poligonales, el centroide o algo más?
lynxlynxlynx
Esta tarea sería mejor manejada por postgis.
Pablo
Me refiero a la distancia desde los bordes del polígono (en realidad es la distancia de las aves marinas observadas en el mar desde la costa que quiero calcular)
Sylvia
Pablo, desafortunadamente no sé cómo usar PostGIS y no puedo escribir código ...
Sylvia

Respuestas:

9

Convertir su polígono en puntos primero es una mala idea. No calculará la distancia a su polígono, sino que calculará la distancia al nodo más cercano de sus polígonos (no los bordes que pueden estar más cerca). Puede usar el complemento NNJoin para obtener mediciones precisas de su polígono. Asegúrese de que sus capas estén en la misma proyección antes de hacer el análisis.

gistutor
fuente
1
El complemento QGIS NNJoin se encargará de la transformación del sistema de coordenadas. Pero debe asegurarse de utilizar un sistema de coordenadas proyectadas para el conjunto de datos de unión (el conjunto de datos de entrada se transformará en el sistema de coordenadas del conjunto de datos de unión si sus sistemas de coordenadas difieren).
Håvard Tveite
6

Si desea utilizar QGIS, la función GRASS v.distance en el complemento GRASS debería hacer el trabajo. El complemento NNJoin debería funcionar para conjuntos de datos pequeños y es menos engorroso de usar.

El complemento NNJoin usa la función QgsGeometry.distance () (que usa la GEOSdistance) para calcular las distancias.

Håvard Tveite
fuente
3

Primero convierta el polígono a puntos:

Vector -> Herramientas de geometría -> Extraer nodos

Agregue esta nueva capa, luego calcule una matriz de distancia entre su capa de puntos y la nueva capa de puntos poligonales que acaba de crear

Vector -> Herramientas de análisis -> Matriz de distancia

Asegúrese de elegir "Usar solo los puntos objetivo más cercanos (k)" como 1

Brendan Nee
fuente
Esta es una buena respuesta a la pregunta original, pero la pregunta ha sido modificada en un comentario. Los nodos de extracción y la Matriz de distancia pueden no encontrar el lugar más cercano en el límite (el lugar más cercano puede estar entre los puntos de la polilínea del límite). GRASS v.distance o el complemento NNJoin lo hará.
Håvard Tveite
2

Pruebe Hub Distance en el complemento MMQGIS.

http://michaelminn.com/linux/mmqgis/


Referencias

Colita
fuente
2
La distancia del eje hizo el trabajo, pero para el registro, primero convertí el polígono en una capa de puntos y calculé las distancias mínimas de punto a punto. Con los polígonos se calculaba la distancia mínima desde los centroides o la mitad del límite costero
Sylvia