11 votos

¿Cómo crear al azar puntos de polígonos exterior?

La herramienta Crear Punto al Azar, es capaz de generar un cierto número de puntos dentro de los polígonos. Me pregunto, dado un cuadro delimitador, ¿hay alguna manera de que yo pueda generar al azar los puntos fuera de los polígonos?

13voto

Aaron Puntos 25882

Personalmente no me gusta el punto aleatorio del algoritmo en ArcGIS. Como alternativa, utilice Geoespacial Modelado del Entorno (GME) genrandompnts función. Usted será capaz de identificar los polígonos donde aleatoria de puntos serán excluidas (ver área resaltada en adjunto .jpg). Lo mejor de todo este software es gratuito.

GME proporciona un conjunto de análisis y herramientas de creación de modelos, que van desde pequeños bloques de construcción que usted puede utilizar para construir una sofisticado del flujo de trabajo, completamente autónomo de análisis programas. También se utiliza el extraordinariamente poderosa fuente abierta el software R, ya que el estadístico de motor para impulsar algunos de los análisis herramientas. Uno de los muchos puntos fuertes de R es que es de código abierto, completamente transparente y bien documentado: características importantes para cualquier científico software analítico.

enter image description here

4voto

Jim Puntos 4057

Vas a tener que crear un donut polígono con el agujero de la dona que representa el interior no punto del espacio y algunos extensión espacial que representa el área de delimitación de la poligonal de la zona.

3voto

Dan Puntos 16

Lo siento, no puedo resistir. Ya que siempre es bueno saber lo que está pasando bajo el capó con algo como GME, aquí es una solución en los reales R código.

require(sp)
require(rgeos)

# Create example polygon data
x <- readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
y <- readWKT("POLYGON ((3 3, 7 3, 7 7, 3 7, 3 3))")

# Calculate difference in polygon geometries to create null polygon
d <- gDifference(x,y)

# Create random sample in non-null polygon
rs <- spsample(d, 20, type="random")  

# Plot results  
plot(d, col="red")
  plot(rs,pch=19,col="black",add=TRUE)

Es probable que este enfoque muy distinto al que se GME hace esto pero es utilizando el lenguaje R sp espacial de las clases y una bastante nueva topología de la biblioteca haciendo que el código sea muy eficiente. Esto también proporciona un ejemplo que puede ser fácilmente envuelto en un bucle for.

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