Bagaimana cara membuat titik acak di luar poligon?


11

Alat Buat Titik Acak dapat menghasilkan sejumlah titik dalam poligon. Saya bertanya-tanya, diberi kotak pembatas, apakah ada cara saya bisa menghasilkan titik acak di luar poligon itu?

Jawaban:


13

Secara pribadi saya tidak suka algoritma titik acak di ArcGIS. Atau, gunakan fungsi Geospatial Modeling Environment (GME) genrandompnts. Anda akan dapat mengidentifikasi poligon tertentu di mana poin acak akan dikecualikan (lihat area yang disorot di .jpg terlampir). Yang terbaik dari semua perangkat lunak ini adalah gratis.

GME memberi Anda seperangkat alat analisis dan pemodelan, mulai dari 'blok bangunan' kecil yang dapat Anda gunakan untuk membangun alur kerja yang canggih, hingga program analisis yang lengkap. Ini juga menggunakan perangkat lunak open source R yang sangat kuat sebagai mesin statistik untuk menggerakkan beberapa alat analisis. Salah satu dari banyak kekuatan R adalah bahwa ia adalah open source, sepenuhnya transparan dan terdokumentasi dengan baik: karakteristik penting untuk setiap perangkat lunak analitis ilmiah.

masukkan deskripsi gambar di sini


1
Bisakah Anda memberikan info lebih lanjut tentang mengapa Anda tidak menyukai algoritma poin acak default, dan mengapa GME lebih optimal?
Stephen Lead

@ Harun Bagus! Belum pernah mencoba ini karena itu adalah Alat Pemodelan Hawth - Saya harus mengunduhnya dan mencobanya!
om_henners

3
@Stephen Dalam bulan lalu, saya menghasilkan poin acak di empat kelas. Saya mengalami beberapa masalah: 1) ArcGIS menghasilkan beberapa poin di luar poligon input saya 2) Arc mengalami kesulitan berurusan dengan area yang terlalu kecil untuk parameter input saya (mis. Jarak yang diizinkan minimum = 50m & poin = 50), sedangkan GME menangani ini masalah dengan menghasilkan poin acak hingga aturan dilanggar kemudian menampilkan pesan peringatan 3) RPG Arc lebih lambat daripada GME mungkin karena penggunaan memori lokal R.
Aaron

Yang bagus! Apakah ia memiliki python bounding sehingga saya dapat melakukan pemrosesan batch @ Harun?
Terlihat

2
@Seen memeriksa bagian pemrosesan otomatisasi dan batch (hal. 10) dalam dokumen pendukung: spatialecology.com/gme/images/SpatialEcologyGME.pdf
Aaron

4

Anda harus membuat poligon donat dengan lubang donat yang mewakili ruang interior non-titik dan beberapa spasial yang mewakili area pembatas area poligon.


Hanya tambahan: dengan lisensi ArcInfo Anda dapat melakukan ini dengan alat Erase
om_henners

3

Maaf, saya tidak bisa menolak. Karena selalu baik untuk mengetahui apa yang terjadi di bawah tenda dengan sesuatu seperti GME, berikut adalah solusi dalam kode R yang sebenarnya.

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)

Pendekatan ini mungkin sangat berbeda dari bagaimana GME melakukan ini tetapi menggunakan kelas spasial R sp asli dan perpustakaan topologi yang cukup baru membuat kode sangat efisien. Ini juga memberikan contoh yang dapat dengan mudah dibungkus dengan for for loop.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.