5 votos

¿Cómo seleccionar aleatoriamente n puntos dentro de un radio en QGIS?

Tengo un conjunto de datos de 5000 registros que he trazado sobre una capa de OSM utilizando QGIS y deseo seleccionar aleatoriamente 50 en un radio de 2 km desde un punto de mi elección.

Creo que es similar a esto aquí donde de nuevo la Selección de características por radio es casi lo que pretendo, pero a diferencia de la pregunta anterior, sólo deseo seleccionar aleatoriamente 50 puntos dentro del radio de 2 km.

Utilizando la función de selección de características por radio, parece que habría aproximadamente 300-400 puntos en un radio de 2 km. Así que una solución tendría que ser capaz de seleccionar al azar sólo una fracción de estos.

6voto

MM. Puntos 367
  1. Select Feature by Radius como en el enlace que has proporcionado.

o

  1. Cree un nuevo shapefile con un solo punto, luego cree un buffer con el radio necesario para su punto ( Vector -> Geoprocessing -> Buffer ) y eventualmente utilizarlo para seleccionar sus puntos -> Research tools -> Select by location

  2. Vector -> Research tools -> Random selection le dará la oportunidad de seleccionar al azar N de estos.

enter image description here

3voto

Mat Puntos 196

Creo que la respuesta de Maxim Dubinin es la mejor si necesitas un número fijo de puntos - y funcionará en la mayoría de las versiones de QGIS.

Si tienes una versión más reciente de QGIS (2.10+ ?), también es posible hacer muestreos aleatorios simplemente seleccionando mediante una expresión. En las versiones más recientes se han puesto a disposición una serie de funciones geométricas.

Hice esto en una capa postgres, pero también funciona en capas shapefile.

Por ejemplo, he utilizado esta expresión para seleccionar alrededor del 20% de los puntos que se encuentran en un radio de 500 m del punto dado (mostrado en rojo).

Estos son Pubs de OSM, y el CRS es OSGB (27700, que está en metros). La llamada al centroide() es opcional si su capa es de geometría POINT.

within(centroid($geometry),buffer(make_point(529517.422097, 180720.816783),500.0)) and randf(0.0,1.0)<=0.2

Y una foto...

random selection of points within a radius

Tenga en cuenta que probablemente debería tener un índice espacial en su capa o esto podría ser un poco lento (en propiedades->capa, pero esto depende de la fuente de datos).

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