Làm thế nào để tạo điểm ngẫu nhiên bên ngoài đa giác?


11

Công cụ Tạo điểm ngẫu nhiên có thể tạo một số điểm nhất định trong đa giác. Tôi tự hỏi, được đưa ra một hộp giới hạn, có cách nào để tôi có thể tạo các điểm ngẫu nhiên bên ngoài các đa giác đó không?

Câu trả lời:


13

Cá nhân tôi không thích thuật toán điểm ngẫu nhiên trong ArcGIS. Ngoài ra, sử dụng chức năng Môi trường mô hình hóa không gian địa lý (GME) genrandompnts. Bạn sẽ có thể xác định các đa giác cụ thể trong đó các điểm ngẫu nhiên sẽ bị loại trừ (xem khu vực được tô sáng trong .jpg đính kèm). Tốt nhất của tất cả các phần mềm này là miễn phí.

GME cung cấp cho bạn một bộ công cụ phân tích và mô hình hóa, từ 'khối xây dựng nhỏ' mà bạn có thể sử dụng để xây dựng một quy trình công việc phức tạp, đến các chương trình phân tích hoàn toàn khép kín. Nó cũng sử dụng phần mềm nguồn mở R cực kỳ mạnh mẽ làm công cụ thống kê để điều khiển một số công cụ phân tích. Một trong nhiều điểm mạnh của R là nó là nguồn mở, hoàn toàn minh bạch và được ghi chép rõ ràng: các đặc điểm quan trọng đối với bất kỳ phần mềm phân tích khoa học nào.

nhập mô tả hình ảnh ở đây


1
Bạn có thể cung cấp thêm thông tin về lý do tại sao bạn không thích thuật toán điểm ngẫu nhiên mặc định và tại sao GME lại tối ưu hơn không?
Stephen chì

@Aaron Đẹp một cái! Không thử cái này vì nó là Công cụ lập mô hình của Hawth - Tôi sẽ phải tải xuống và cho nó một bản crack!
om_henners

3
@Stephen Trong vòng một tháng qua, tôi đã tạo các điểm ngẫu nhiên trên bốn lớp. Tôi đã gặp một số vấn đề: 1) ArcGIS tạo ra một số điểm bên ngoài đa giác đầu vào của tôi 2) Arc gặp khó khăn khi xử lý các khu vực quá nhỏ đối với các tham số đầu vào của tôi (ví dụ: khoảng cách tối thiểu cho phép = 50m & points = 50), trong khi GME xử lý các điểm này các vấn đề bằng cách tạo ra các điểm ngẫu nhiên cho đến khi các quy tắc bị vi phạm sau đó hiển thị thông báo cảnh báo 3) RPG của Arc chậm hơn GME có thể do sử dụng bộ nhớ cục bộ của R.
Aaron

Đẹp quá Nó có một con trăn giới hạn để tôi có thể thực hiện một số xử lý hàng loạt @Aaron không?
Nhìn thấy

2
@Seen kiểm tra phần tự động hóa và xử lý hàng loạt (p10) trong tài liệu hỗ trợ: spatialecology.com/gme/images/SpatialEcologyGME.pdf
Aaron

4

Bạn sẽ phải tạo ra một đa giác bánh rán với lỗ bánh rán đại diện cho không gian phi điểm bên trong và một số phạm vi không gian đại diện cho khu vực giới hạn của khu vực đa giác.


Chỉ là một phụ lục: với giấy phép ArcInfo, bạn có thể thực hiện việc này với công cụ Xóa
om_henners

3

Xin lỗi, tôi không thể cưỡng lại. Vì luôn luôn tốt để biết những gì đang diễn ra dưới mui xe với một cái gì đó như GME, đây là một giải pháp trong mã R thực tế.

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)

Cách tiếp cận này có thể rất khác so với cách GME thực hiện điều này nhưng đang sử dụng các lớp không gian R sp gốc và một thư viện cấu trúc liên kết khá mới làm cho mã rất hiệu quả. Điều này cũng đưa ra một ví dụ có thể dễ dàng được bọc trong một vòng lặp for.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.