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.

BradHards
źródło
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.

om_henners
źródło
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,

GeorgeC
źródło
Ciekawe, ale nie wydaje się być open source, i tylko dla systemu Windows. To nie zadziała w środowisku mobilnym.
BradHards,