所以我正在努力建立一个基于代理的模型,该模型在地理地图上运行——在这种情况下是叙利亚。我尝试用 python 编写它,但性能相当慢——即使经过一些优化技巧。我在想我应该转向只用 C++ 编写模型,但我不知道哪些可视化包可以合并地图?我倾向于在 C++ 中使用 gnuplot,但我一直无法找到将 gis 底图合并到该包中的方法。我不确定这在 VTK 或任何其他软件包中是否可行。我想找到一种在 C++ 中快速运行我的模型但又不会丢失地理信息的方法。有什么建议么?
问问题
405 次
3 回答
1
也许这个项目对你有用?
http://code.google.com/p/vtk-grass-bridge/
如果您可以使用 GRASS 处理您的 GIS 数据,那么该项目似乎可以将其转换为 VTK 可以呈现的东西,所有这些都在一个 C++ 应用程序中。
于 2014-02-09T19:29:37.297 回答
1
所以我实际上想出了这个问题的答案,并为大家发布了解决方案。如果你使用 python,最好的选择是只使用 Enthought 的 mayavi 和 tvtk 包。Mayavi 是 C++ VTK 库之上的 gui。而 tvtk 实际上是 python 访问 VTK 对象的包装器。因此,这允许人们使用 python GIS 包(如 pyshp、Shapely 等)来操作 GIS 对象,然后将它们写入强大且快速的 mayavi 以进行可视化。同时,如果你想坚持C++,那么你仍然可以使用gdal或ogr等在C++中编写你的代码,然后在VTK中运行你的可视化。这似乎比尝试运行其他一些包(如 GRASS、QGIS 或 ArcGIS)更容易、更直观。
下面是这个工具集的一个很好的例子。 例子
于 2014-03-02T07:09:53.380 回答