Come creare punti casuali fuori dai poligoni?


11

Lo strumento Crea punto casuale è in grado di generare un certo numero di punti all'interno dei poligoni. Mi chiedo, dato un rettangolo di selezione, esiste un modo per generare punti casuali al di fuori di quel poligono?

Risposte:


13

Personalmente non mi piace l'algoritmo a punti casuali in ArcGIS. In alternativa, utilizzare la funzione Geospatial Modeling Environment (GME) genrandompnts. Sarai in grado di identificare specifici poligoni in cui verranno esclusi i punti casuali (vedi l'area evidenziata in allegato .jpg). Il meglio di tutto questo software è gratuito.

GME offre una suite di strumenti di analisi e modellazione, che vanno dai piccoli "blocchi" che è possibile utilizzare per costruire un flusso di lavoro sofisticato, fino ai programmi di analisi completamente autonomi. Utilizza inoltre il software open source straordinariamente potente R come motore statistico per guidare alcuni degli strumenti di analisi. Uno dei tanti punti di forza di R è che è open source, completamente trasparente e ben documentato: caratteristiche importanti per qualsiasi software scientifico analitico.

inserisci qui la descrizione dell'immagine


1
Puoi fornire ulteriori informazioni sul perché non ti piace l'algoritmo di punti casuali predefinito e perché il GME è più ottimale?
Stephen Lead,

@Aaron Nice one! Non ho provato questo dato che si trattava degli strumenti di modellazione di Hawth: dovrò scaricarlo e provarlo!
om_henners,

3
@Stephen Nell'ultimo mese, stavo generando punti casuali in quattro classi. Ho riscontrato diversi problemi: 1) ArcGIS ha prodotto diversi punti al di fuori dei miei poligoni di input 2) L'arco ha avuto difficoltà a gestire aree troppo piccole per i miei parametri di input (ad es. Distanza minima consentita = 50m e punti = 50), mentre il GME ha gestito questi problemi producendo punti casuali fino a quando le regole non sono state violate e quindi viene visualizzato un messaggio di avviso 3) Il gioco di ruolo di Arc è più lento di quello del GME probabilmente a causa dell'uso di R della memoria locale.
Aaron

Ben fatto! Ha un limite di Python in modo che io possa fare un po 'di elaborazione batch @Aaron?
Visto

2
@Vedi la sezione sull'automazione e l'elaborazione in batch (p10) nel documento di supporto: spatialecology.com/gme/images/SpatialEcologyGME.pdf
Aaron

4

Dovrai creare un poligono di ciambella con il foro della ciambella che rappresenta lo spazio interno non puntuale e una certa estensione spaziale che rappresenta l'area di delimitazione dell'area poligonale.


Solo un addendum: con una licenza ArcInfo puoi farlo con lo strumento Cancella
om_henners,

3

Scusa, non riesco proprio a resistere. Dato che è sempre bene sapere cosa succede sotto il cofano con qualcosa come GME, ecco una soluzione nel codice R attuale.

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)

Questo approccio è probabilmente molto diverso da come il GME fa questo, ma sta usando classi spaziali R native e una libreria di topologia abbastanza nuova che rende il codice molto efficiente. Questo fornisce anche un esempio che può essere facilmente inserito in un ciclo for.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.