Identifique puntos en un shapefile que no tengan otro punto dentro de x km con QGIS


11

Esta es probablemente una pregunta ingenua, pero estoy luchando como nuevo usuario de QGIS.

Tengo un archivo shape muy grande (275,000 puntos, pero puedo dividirlo en aproximadamente 10 subregiones si es necesario para un procesamiento más rápido).

Quiero identificar todos los puntos que no tienen otro punto dentro de los 200 metros y luego codificar cada uno de esos puntos con el valor "único" en un campo del archivo.

Para todos los demás puntos que forman parte de clústeres locales, quiero codificarlos como "agrupados".

Una vez logrado eso, quiero seleccionar solo uno para cada grupo de forma aleatoria para retener en el conjunto de datos, descartando los demás.

Actualmente no estoy logrando el paso 1, por lo que cualquier ayuda sería bienvenida.

Respuestas:


0

También puede intentar una autounión utilizando el complemento NNJoin en QGIS.

Para cada entidad de la capa de entrada, encontrará la entidad más cercana (excluyéndose en el caso de una unión automática) e incluirá la distancia y todos los atributos de la entidad más cercana en el conjunto de datos generado. Tomaría algún tiempo para su conjunto de datos (probé con un conjunto de datos de puntos con aproximadamente 175000 características, y eso lleva algunos minutos ...).


9

Puede usar Vector> Herramientas de análisis> Matriz de distancia y una combinación para lograr lo que pide.

Voy a utilizar qgis datos de ejemplo de capa de aeropuerto para ejemplificar. Este es un pequeño conjunto de datos, así que no estoy seguro de cómo funcionará con un archivo de forma de 275000 puntos.

1. Cree una matriz de distancia utilizando su capa como destino y objetivo.

No olvide marcar "Usar solo los puntos objetivo (k) más cercanos" y configurarlo en 1.

ingrese la descripción de la imagen aquí

2. Abra el CSV con agregar capa de texto delimitado

Elija "Coma" como delimitador y configure la definición de geometría como Sin geometría

ingrese la descripción de la imagen aquí

3. Cree una unión en la capa original con la tabla recién creada

ingrese la descripción de la imagen aquí

4. Use la calculadora de campo para llenar un campo con los valores deseados

Debido a la unión, ahora tenemos acceso a los valores de la tabla de distancia desde la tabla de atributos de los aeropuertos, por lo tanto, es bastante fácil crear un nuevo campo y poblarlo con valores "agrupados" y "únicos" dependiendo de los valores de la matriz de distancia . Debido a mis datos de ejemplo, he utilizado el valor 1200000 (1200 km), debe adaptarlo a su caso (200).

ingrese la descripción de la imagen aquí

Al final, su capa debe tener un nuevo campo llamado point_type con diferentes valores de acuerdo con la distancia mínima al punto más cercano.

ingrese la descripción de la imagen aquí


Eso parece una solución elegante. Sin embargo tengo una complicación. Sé que hay algunos puntos que tienen ubicaciones IDÉNTICAS (estos resultan de sinónimos de nombres durante la captura de datos original). En un caso identifiqué 3 en el mismo punto. Creo que su solución asume (sensatamente) que todos los puntos están ubicados de manera única. ¿Hay alguna forma obvia en la que pueda evaluar mi cobertura para eliminar primero los puntos de la misma ubicación?
Leigh Bettenay

@LeighBettenay Si esta respuesta responde a su pregunta original, entonces creo que debe aceptarla (marca verde), para recompensar el esfuerzo de las respuestas e investigar / plantear su requerimiento adicional como una nueva pregunta. ¡+1 para una gran primera pregunta!
PolyGeo

@PolyGeo Lo siento, soy nuevo en este foro y no conozco el protocolo. Feliz de "marca verde", una respuesta maravillosa, pero lamentablemente no sé cómo!
Leigh Bettenay

Simplemente haga clic en la marca de verificación gris debajo de la votación de la pregunta (esquina izquierda de la pregunta). Gracias
Alexandre Neto
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.