Як реалізувати обчислення перегляду?


11

Я шукаю спосіб реалізувати видимість (він же viewhed). Я знайшов попереднє питання GIS SE, яке запропонувало кілька додатків GIS (не те, що мені потрібно - я намагаюся вкласти обчислення), а також SAGA. SAGA більше схожий на те, що я шукаю (C ++, Java, C # класи), але я не можу зрозуміти достатньо документації API, щоб зрозуміти, які класи мені навіть потрібні для інстанції (або підкласу).

Я не прив’язаний до ідеї SAGA - я просто шукаю бібліотеку / движок, який може робити калькуляції між інтервалом.

Обмеження полягають у тому, що це повинно бути:

  • досить легка вага (оскільки я хотів би мати можливість охоплювати вбудовані / мобільні)
  • достатньо відкритий код (оскільки моя заявка буде відкритим кодом, хоча я гнучка в тому, яка саме ліцензія, доки її (L) GPL сумісна).

Хто-небудь може порекомендувати таку бібліотеку чи движок та надати опис або посилання на той біт бібліотеки чи двигуна, який мені потрібно використовувати для обчислень перегляду?

Альтернативно / на додачу я також вдячний посиланням на документи чи навчальні посібники, які пояснюють, як робити ці обчислення ефективним способом (як це стосується вбудованих / мобільних пристроїв, тому реалізація на основі GPU може бути не такою корисною, як щось, що є більш загальне та керує пристроями малої потужності)

Моя перевага - це наявна реалізація, а не створення чогось власного (що є резервним варіантом резервного копіювання).

Редагування: C ++ не є твердою вимогою - все, що можна легко переносити (C #, C ++, Java). Я намагаюся використовувати бібліотеку чи шаблони, а не вбудовувати велику програму.


2
Вам справді потрібен повний алгоритм ZTV? Можливо, змоделювати місцевість у OpenGL та проаналізувати результати цього? Смартфони мають все більш гарне графічне прискорення, яке можна використати. OpenGL навіть підтримує ортографічні проекції.
Меттью Снейп

Я щасливий, поки він дає "правильні" відповіді, тому OpenGL варто переглянути. Чи є у вас приклад / покажчик, який робить це з даних типу GIS?
BradHards

Відповіді:


8

Як ви могли бачити з посиланням на питання GIS SE , схоже, що це не так багато на шляху перегляду автономних пакетів, щонайменше, на ринку з відкритим кодом за межами SAGA та GRASS GIS. Крім написання обгортки навколо коду для цих алгоритмів, на жаль, ви можете, на жаль, реалізувати погляди на себе. (Хоча я хотів би, щоб це виправили.)

Якщо ви читаєте документацію для функції GRASS r.viewshed, вона надає широкий опис алгоритму та посилання на наступний документ, в якому детально обговорюється один переглянутий алгоритм:

Обчислювальна видимість на місцевості у зовнішній пам'яті . Герман Хаверкорт, Лаура Тома та І Чжуан. У матеріалах 9-го семінару з алгоритмної інженерії та експериментів / семінар з аналітичних алгоритмів та комбінаторики (ALENEX / ANALCO 2007).

У статті Вікіпедії про програму Viewshed посилання також:

W, H., Pan, M., Yao, L., & Luo, B. (2007). Серійний алгоритм на основі розділів для генерування видимості на масових DEM . Міжнародний журнал географічної інформаційної науки, 21 (9), 955-964.


Не зовсім відповідь, на яку я сподівався, але найкраща відповідь. Дуже дякую за вашу роботу над цим.
BradHards

Не хвилюйтесь. Удачі вам!
om_henners

4

Існує безкоштовний пакет під назвою RadioMobile, який призначений для досліджень радіозв'язку, який генерує огляд вікна. Вихід заснований на вході DEM і може бути векторним (точковим файлом) або растровим. Мені вдалося скористатися файлом векторних точок для створення полігонів за допомогою деяких сценаріїв, якими я з радістю поділюся з вами. Оскільки ви можете встановити палітру на вихідний растр, ви також можете перетворити растр у вектор за допомогою gdal.

Програма має gui, але її також можна запускати в пакетному режимі, так що ви можете легко включити її в програму. Незважаючи на те, що існує набагато більше варіантів, ніж потрібно для традиційного огляду, ви можете встановити їх на нуль, щоб такі ефекти, як потужність передавача, не були включені - див. Http://www.g3tvu.co.uk/RM_Batch_Files.htm

Програма знаходиться за адресою http://www.cplus.org/rmw/rme.html Автор також дуже корисний.

Сподіваюся, це допомагає,


Цікаво, але, здається, не з відкритим кодом, і лише з його вікнами. Тож це не працює в мобільному середовищі.
BradHards
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.