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?
Respuestas
¿Demasiados anuncios?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.
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.