2014-02-09 29 views
0

因此,我正在設置基於代理的模型,該模型運行在地理圖上 - 在這種情況下是敘利亞。我試着用python編寫它,但是性能相當慢 - 即使經過了一些優化技巧。我在想,我應該轉向用C++編寫模型,但我不知道哪些可視化軟件包可以合併地圖?我傾向於在C++中使用gnuplot,但我無法找到將gis底圖合併到該包中的方法。我不確定這是否可以在VTK或任何其他軟件包中使用。我想找到一種方法來在C++中快速運行我的模型,但不會丟失地理信息。有什麼建議麼?用於更高性能計算的C++ gis /空間庫

回答

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。

下面是這個工具集的一個很好的例子。 Example

0

是什麼讓你相信你的模型的C++實現會快得多?我建議在關注如何將結果可視化之前,首先關注導致您的python實現緩慢的原因。這是你的算法不會擴展嗎?如果您嘗試過優化技巧,那些技巧是什麼,您爲什麼認爲它們不起作用?它們最終歸結爲在硬件上執行的機器指令,無論這些指令是作爲python,C++還是某些其他語言源代碼啓動的。除非您的python始終運行fully interpreted,否則我認爲您不會發現單獨使用切換語言會導致您具有根本不同的性能配置文件。 Premature optimization仍然是要避免的。