如何实现视域计算?


11

我正在寻找一种实现可见性(又称视域)的方法。我发现了一个先前的GIS SE问题,该问题提出了一些GIS应用程序(不是我需要的-我正试图嵌入计算结果)以及SAGA。SAGA看起来更像我要寻找的东西(C ++,Java,C#类),但是我对API文档了解得不够多,无法弄清楚我什至需要实例化哪些类(或子类)。

我不依赖SAGA的想法-我只是在寻找可以进行互见性计算的库/引擎。

约束条件是:

  • 合理地“轻巧”(因为我希望能够涵盖嵌入式/移动设备)
  • 合理的开源(因为我的应用程序将是开源的,尽管只要与(L)GPL兼容,我可以灵活地确定使用哪个许可证)。

谁能推荐这样的库或引擎,并提供描述或链接到我需要用来查看视域计算的库或引擎的哪一部分?

作为替代/补充,我也希望能获得对论文或教程的引用,这些论文或教程解释了如何以有效的方式进行这些计算(适用于嵌入式/移动设备,因此基于GPU的实现可能不如更通用,并处理低功率设备)

我的偏好是现有的实现,而不是自己创建一些东西(这是一个备份选项)。

编辑:C ++不是一个严格的要求-任何合理的可移植性(C#,C ++,Java)都可以。我正在尝试使用库或模板,而不是嵌入大型应用程序。


2
您实际上是否需要完整的ZTV算法?也许可以在OpenGL中为地形建模并分析结果?智能手机具有越来越好的图形加速能力,您可以利用它。OpenGL甚至支持正交投影。
马修·斯内普

我很高兴,只要它能产生“正确”的答案,因此OpenGL值得一看。您是否有一个示例/指针可以根据GIS类型数据执行此操作?
布拉德·哈德斯(BradHards)2012年

Answers:


8

正如您从所引用的GIS SE问题中所看到的那样,至少在SAGA和GRASS GIS之外的开源市场中,似乎没有太多的独立视域软件包。除了为这些算法编写代码包装之外,很不幸,您最终可能会自己实现视域。(尽管我很乐意对此进行纠正。)

如果您阅读了GRASS r.viewshed函数的文档,则它提供了对该算法的广泛描述,并提供了对以下论文的参考,该论文彻底讨论了一种视域算法:

外部存储器中地形的计算可视性。赫尔曼·哈维科特(Herman Haverkort),劳拉·托玛(Laura Toma)和易壮。在第9届算法工程与实验研讨会/分析算法与组合研讨会(ALENEX / ANALCO 2007)的会议记录中。

或者,关于Viewshed的Wikipedia文章提供了参考:

Wu,H.,Pan,M.,Yao,L.,and Luo B.(2007)。基于分区的大规模DEM生成视场的串行算法。国际地理信息科学杂志,21(9),955-964。


并不是我所希望的答案,而是提供的最佳答案。非常感谢您为此所做的工作。
BradHards 2012年

别担心。祝你好运!
om_henners 2012年

4

有一个名为RadioMobile的免费软件包,该软件包专门用于产生视场的无线电通信研究。输出基于DEM输入,可以是矢量(点文件)或Raster。我已经能够使用矢量点文件通过一些脚本创建多边形,我将很乐意与您分享这些脚本。由于可以在栅格输出上设置调色板,因此还可以使用gdal将栅格转换为矢量。

该程序具有gui,但也可以以批处理模式运行,因此您可以轻松地将其合并到程序中。尽管有很多选项比传统的视域所需的选项多,但您可以将其设置为null,以便不包括发射器功率之类的影响-请参阅http://www.g3tvu.co.uk/RM_Batch_Files.htm

该程序位于http://www.cplus.org/rmw/rme.html。作者也非常有帮助。

希望这可以帮助,


有趣,但似乎不是开源的,仅适用于Windows。因此,这在移动环境中行不通。
BradHards 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.