Làm thế nào để thực hiện tính toán viewshed?


11

Tôi đang tìm cách để thực hiện khả năng hiển thị (hay còn gọi là viewshed). Tôi đã tìm thấy một câu hỏi về GIS SE trước đây đề xuất một vài ứng dụng GIS (không phải thứ tôi cần - tôi đang cố gắng nhúng các tính toán), và cả SAGA. SAGA trông giống như những gì tôi đang tìm kiếm (các lớp C ++, Java, C #), nhưng tôi không thể hiểu đủ tài liệu API để tìm ra những lớp nào tôi thậm chí cần khởi tạo (hoặc lớp con).

Tôi không bị ràng buộc với ý tưởng về SAGA - Tôi chỉ đang tìm kiếm thư viện / công cụ có thể thực hiện các công cụ tương tác.

Các ràng buộc là nó cần phải là:

  • hợp lý "trọng lượng nhẹ" (vì tôi muốn có thể bao gồm nhúng / di động)
  • nguồn mở hợp lý (vì ứng dụng của tôi sẽ là nguồn mở, mặc dù tôi linh hoạt về chính xác giấy phép nào miễn là tương thích GPL (L) của nó).

Bất cứ ai cũng có thể giới thiệu một thư viện hoặc công cụ như vậy, và cung cấp một mô tả hoặc liên kết đến bit nào của thư viện hoặc công cụ tôi cần sử dụng để xem các tính toán không?

Ngoài ra, tôi cũng đánh giá cao các tài liệu tham khảo cho các bài báo hoặc hướng dẫn giải thích cách thực hiện các tính toán này một cách hiệu quả (như áp dụng cho các thiết bị nhúng / di động, do đó, việc triển khai dựa trên GPU có thể không hữu ích như một thứ gì đó tổng quát hơn và xử lý các thiết bị năng lượng thấp)

Sở thích của tôi là một triển khai hiện có, thay vì tự tạo một cái gì đó (đó là một tùy chọn sao lưu).

Chỉnh sửa: C ++ không phải là một yêu cầu chắc chắn - mọi thứ di động hợp lý (C #, C ++, Java) sẽ làm. Tôi đang cố gắng cho một thư viện hoặc các mẫu hơn là nhúng một ứng dụng lớn.


2
Bạn có thực sự cần một thuật toán ZTV đầy đủ? Có lẽ mô hình địa hình trong OpenGL và phân tích kết quả của điều đó? Điện thoại thông minh có khả năng tăng tốc đồ họa ngày càng tốt mà bạn có thể khai thác. OpenGL thậm chí còn hỗ trợ các phép chiếu chính tả.
Matthew Snape

Tôi rất vui miễn là nó tạo ra câu trả lời "đúng", vì vậy OpenGL rất đáng để xem. Bạn có một ví dụ / con trỏ thực hiện điều này từ dữ liệu kiểu GIS không?
BradHards

Câu trả lời:


8

Như bạn đã thấy từ câu hỏi về GIS SE được tham chiếu , dường như không có nhiều cách thức trong các gói độc lập được xem ít nhất là trong thị trường Nguồn mở ngoài SAGA và GRASS GIS. Ngoài việc viết một trình bao bọc xung quanh mã cho các đại số này, cuối cùng bạn có thể tự mình thực hiện chế độ xem. (Mặc dù tôi rất thích được sửa chữa về điều này.)

Nếu bạn đọc tài liệu cho hàm GRASS r.viewshed, nó sẽ cung cấp một mô tả rộng về thuật toán và một tài liệu tham khảo cho bài viết sau đây thảo luận kỹ về một thuật toán viewshed:

Tính toán khả năng hiển thị trên các địa ngục trong bộ nhớ ngoài . Herman Haverkort, Laura Toma và Yi Zhuang. Trong Kỷ yếu của Hội thảo lần thứ 9 về Kỹ thuật thuật toán và Thí nghiệm / Hội thảo về Thuật toán phân tích và Kết hợp (ALENEX / ANALCO 2007).

Thay phiên, bài viết Wikipedia trên Viewshed cung cấp tài liệu tham khảo:

Wu, H., Pan, M., Yao, L., & Luo, B. (2007). Một thuật toán nối tiếp dựa trên phân vùng để tạo Viewshed trên các DEM lớn . Tạp chí khoa học thông tin địa lý quốc tế, 21 (9), 955-964.


Không chính xác câu trả lời tôi đã hy vọng, nhưng câu trả lời tốt nhất được cung cấp. Cảm ơn rất nhiều cho công việc của bạn về điều này.
BradHards

Đừng lo lắng. Chúc may mắn với điều đó!
om_henners

4

Có một gói phần mềm miễn phí có tên RadioMobile, được thiết kế cho các nghiên cứu liên lạc vô tuyến tạo ra tầm nhìn. Đầu ra dựa trên đầu vào DEM và có thể là vectơ (tệp điểm) hoặc Raster. Tôi đã có thể sử dụng tệp vectơ điểm để tạo đa giác thông qua một số tập lệnh mà tôi sẽ rất vui khi chia sẻ với bạn. Vì bạn có thể đặt một bảng màu trên đầu ra raster, bạn cũng có thể chuyển đổi raster thành vector bằng gdal.

Chương trình có gui nhưng cũng có thể chạy ở chế độ hàng loạt để bạn có thể dễ dàng kết hợp nó vào chương trình. Mặc dù có nhiều tùy chọn hơn mức cần thiết cho chế độ xem truyền thống, bạn có thể đặt các tùy chọn này thành null để các hiệu ứng như công suất máy phát không được bao gồm - xem http://www.g3tvu.co.uk/RM_Batch_Files.htmlm

Chương trình này có tại http://www.cplus.org/rmw/rme.html Tác giả cũng rất hữu ích.

Hi vọng điêu nay co ich,


Thú vị, nhưng dường như không phải là nguồn mở và chỉ có các cửa sổ của nó. Vì vậy, nó sẽ không hoạt động trong một môi trường di động.
BradHards
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.