Jak wdrożyć obliczenia pola widzenia?


11

Szukam sposobu na wdrożenie widoczności (czyli pola widzenia). Znalazłem poprzednie pytanie GIS SE, które sugerowało kilka aplikacji GIS (nie to, czego potrzebuję - staram się osadzić obliczenia), a także SAGA. SAGA wygląda bardziej jak to, czego szukam (klasy C ++, Java, C #), ale nie rozumiem wystarczającej ilości dokumentacji API, aby dowiedzieć się, jakie klasy muszę nawet utworzyć (lub podklasę).

Nie jestem przywiązany do idei SAGA - po prostu szukam biblioteki / silnika, który może wykonywać cielesności w zakresie niewidzialności.

Ograniczenia są następujące:

  • rozsądnie „lekki” (ponieważ chciałbym być w stanie objąć embedded / mobile)
  • w miarę otwarte oprogramowanie (ponieważ moja aplikacja będzie oprogramowaniem typu open source, chociaż jestem elastyczny na konkretnej licencji, o ile jest ona zgodna z (L) GPL).

Czy ktoś może polecić taką bibliotekę lub silnik oraz podać opis lub link do której części biblioteki lub silnika muszę użyć do obliczeń przeglądanych?

Alternatywnie / dodatkowo doceniłbym również odniesienia do dokumentów lub samouczków, które wyjaśniają, jak wykonać te obliczenia w efektywny sposób (dotyczy to urządzeń wbudowanych / mobilnych, więc implementacja oparta na GPU może nie być tak przydatna jak coś, co jest bardziej ogólne i obsługuje urządzenia małej mocy)

Preferuję istniejącą implementację, a nie tworzenie czegoś samodzielnie (co jest opcją tworzenia kopii zapasowych).

Edycja: C ++ nie jest twardym wymaganiem - zrobi wszystko, co jest w zasadzie przenośne (C #, C ++, Java). Próbuję biblioteki lub szablonów zamiast osadzania dużej aplikacji.


2
Czy naprawdę potrzebujesz pełnego algorytmu ZTV? Być może modelujesz teren w OpenGL i analizujesz jego wyniki? Smartfony mają coraz lepsze przyspieszenie grafiki, które można wykorzystać. OpenGL obsługuje nawet projekcje ortograficzne.
— Matthew Snape

Cieszę się, dopóki daje „właściwe” odpowiedzi, więc warto przyjrzeć się OpenGL. Czy masz przykład / wskaźnik, który robi to z danych typu GIS?
— BradHards,

Odpowiedzi:


8

Jak zauważyliście w przytoczonym pytaniu GIS SE , wydaje się, że nie ma wiele przeszkód dla osobnych pakietów przeglądanych przynajmniej na rynku Open Source poza SAGA i GRASS GIS. Poza napisaniem otoki wokół kodu dla tych algorthimów, możesz niestety sam wdrożyć viewhed. (Chciałbym być w tej kwestii naprawiony).

Jeśli czytasz dokumentację funkcji GRASS r.viewshed , zawiera ona szeroki opis algorytmu i odniesienie do następującego artykułu, który dokładnie omawia jeden algorytm podglądu:

Widoczność obliczeniowa na terenach w pamięci zewnętrznej . Herman Haverkort, Laura Toma i Yi Zhuang. W materiałach z 9. warsztatów inżynierii algorytmów i eksperymentów / warsztatów algorytmów analitycznych i kombinatoryki (ALENEX / ANALCO 2007).

Alternatywnie artykuł w Wikipedii na temat Viewhed zawiera odniesienia:

Wu, H., Pan, M., Yao, L., i Luo, B. (2007). Algorytm szeregowy oparty na partycjach do generowania pola widzenia w ogromnych DEM . International Journal of Geographic Information Science, 21 (9), 955-964.


Nie była to dokładnie taka odpowiedź, na jaką liczyłem, ale najlepsza, podana odpowiedź. Dziękuję bardzo za waszą pracę nad tym.
— BradHards,

Bez obaw. Powodzenia z tym!
— om_henners

4

Istnieje darmowy pakiet o nazwie RadioMobile, który jest przeznaczony do badań komunikacji radiowej, który generuje wizję. Dane wyjściowe są oparte na danych wejściowych DEM i mogą być wektorem (plik punktowy) lub rastrem. Udało mi się użyć pliku punktów wektorowych do tworzenia wielokątów za pomocą skryptów, którymi chętnie się z tobą podzielę. Ponieważ możesz ustawić paletę na wyjściu rastra, możesz także przekonwertować raster na wektor za pomocą gdal.

Program ma GUI, ale może być również uruchamiany w trybie wsadowym, dzięki czemu można łatwo włączyć go do programu. Chociaż istnieje wiele więcej opcji niż jest to wymagane w przypadku tradycyjnego widoku, możesz ustawić je na zero, aby nie uwzględniać efektów takich jak moc nadajnika - patrz http://www.g3tvu.co.uk/RM_Batch_Files.htm

Program znajduje się pod adresem http://www.cplus.org/rmw/rme.html Autor jest również bardzo pomocny.

Mam nadzieję że to pomoże,


Ciekawe, ale nie wydaje się być open source, i tylko dla systemu Windows. To nie zadziała w środowisku mobilnym.
— BradHards,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.