面向高性能计算的c++gis/空间库

2024-05-15 12:54:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在建立一个基于代理的模型,在地理地图上运行——这里是叙利亚。我尝试用python编写它,但是性能相当慢——即使在使用了一些优化技巧之后。我想我应该转到C++中编写模型,但是我不知道哪些可视化包可以包含地图?在C++中,我倾向于使用GnUpTror,但我没有找到一种方法将GIS BaseMax应用到该包中。我不确定这是否可能在VTK或任何其他包。我想找到一种方法来快速运行我的模型在C++中,但不会丢失地理信息。有什么建议吗?在


Tags: 方法模型代理技巧可视化地图性能地理
3条回答

也许这个项目对你有用?在

http://code.google.com/p/vtk-grass-bridge/

<>如果你可以用GRASE处理你的GIS数据,那么项目似乎可以把它转换成VTK可以呈现的东西,所有的C++应用程序都是这样。在

所以我真的找到了这个问题的答案,并把解决方案发给大家。如果使用python,最好的选择是只使用enthough的mayavi和tvtk包。Mayavi是C++ VTK库之上的GUI。tvtk实际上是python访问VTK对象的包装器。因此,这使得人们可以使用pythongis包,如pyshp、Shapely和其他人来操作GIS对象,然后将它们写入健壮而快速的mayavi中进行可视化。同时,如果你想坚持C++,那么你仍然可以用GDAL或OGR等在C++中编写代码,然后在VTK运行可视化。这看起来比尝试运行其他一些包(比如GRASS、QGIS或ArcGIS)要容易得多,也更直观。在

下面是这个工具集实际运行的一个很好的例子。 Example

什么让你相信你的模型的C++实现会更快?在考虑如何可视化结果之前,我建议首先关注导致python实现缓慢的原因。是不是你的算法无法扩展?如果您尝试过优化技巧,这些技巧是什么?为什么您认为它们不起作用?在

<>这一切最终归结到硬件上执行的机器指令,这些指令是从Python、C++或其他语言源代码开始的。除非你的python一直在运行fully interpreted,否则我不认为你会发现仅仅是切换语言就会导致你有一个根本不同的性能配置文件。Premature optimization仍然需要避免。在

相关问题 更多 >