2010-02-16 30 views
3

我剛開始使用GDAL + python來支持ArcGIS python地理處理腳本無法完成的操作。主要是做空間建模/分析/編輯光柵和矢量數據。GIS:什麼時候以及爲什麼要使用ArcObjects over GDAL編程來處理ArcGIS柵格和矢量?

當需要ArcObject開發與GDAL可以使用時,我有點困惑嗎? GDAL不具備ArcObjects的功能嗎?反過來也是如此嗎? 我認爲ArcObjects在開發在線工具和桌面分析和建模方面更有用,其中差異更多地與偏好有關?在我的情況下,我更喜歡GDAL,因爲python支持,我相信ArcObjects缺乏。

謝謝!

+2

我還是不明白你想要做什麼 – dassouki

回答

5

GDAL包含在ArcGIS中以使用某些柵格數據格式。他們不使用GDAL實用程序來執行任何地理處理。我想ESRI已經實現了GDAL中大部分功能(如果不是全部的話)以及它們自己的地理處理功能。總之,兩者之間的功能有很大的重疊。

ESRI地理處理函數都可以通過Python運行並編寫腳本。地理處理工具是ArcObjects的更高級別抽象(簡化),並且使用ArcObjects構建。它們應該涵蓋「空間建模/分析/編輯柵格和矢量數據」的要求。

http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?id=596&pid=592&topicname=Geoprocessing_framework

什麼功能,你覺得在ESRI地理處理工具缺失?

GDAL實用程序也可以使用Python(和其他語言)進行操作。如果在下面的鏈接中有一個工具可以滿足您的需求,那麼您可以使用它。

http://www.gdal.org/gdal_utilities.html

+0

嘿,謝謝你的回覆。 我想定製許多地理處理函數,因此爲什麼我已經開始使用python學習GDAL來做到這一點。我不完全明白的是,如果在使用ArcObjects和C++時使用GDAL與python或C++有什麼不利之處?這兩條路線是同樣的「低水平」編程嗎? 基本上:有沒有什麼ArcObject與C++可以做GDAL與Python或C++無法做到的事情? (反之亦然?)我的理解是,大多數ArcObjects實際上很大程度上使用GDAL庫? – user273876

+1

ArcObjects只使用GDAL來讀取某些圖像格式,而不用於任何地理處理。許多光柵圖像格式是使用ESRI代碼讀取的,但也有一些使用GDAL代碼讀取。程序可以使用Adobe代碼將文檔導出爲PDF。 如果您正在進行地理處理,則可以使用ESRI工具(使用低級別的ArcObjects)或GDAL實用程序(使用C++庫)。你的問題與詢問MS Word是否可以像Open Office Writer一樣 - 他們有兩種截然不同的類似功能的實現。 – geographika

1

的ArcObjects和地理處理比GDAL增添了更多的功能,並主要針對桌面。另一種查看Python的選項是使用QGIS,它具有Python API,是免費和開放源代碼的,並且是一個活躍的開發者社區。

也有大量的python庫用於做空間工作,比如Shapely。我會說光柵GDAL是你最好的選擇,但對於矢量你可能想要使用像一個勻稱的東西。

4

geographika的回答很棒。我只會補充一點,在轉換時需要簡單和快速的情況下使用gdal/ogr。示例包括一種格式到另一種格式,添加圖像金字塔,簡單合併和座標轉換(柵格&矢量)。當你想要做的就是將一堆shapefile一起堵塞或將大量的柵格轉換爲一個普通的投影gdal/ogr啓動和運行的速度更快,因爲它不需要加載整個ArcObjects COM庫來訪問它或兩個功能。 (我曾被告知ESRI擁有世界上最大的MS COM系統,包括微軟的所有產品。)或者檢查有效的許可證。在一次測試中我跑了comparing ESRI arcgisscripting to GDAL ogr2ogr,處理時間從6分鐘到10秒。

轉換和投影領域唯一值得一提的是gdal中缺少的重要功能是記錄元數據的Lineage部分中的地理處理活動。 ESRI工具do this自動(大部分時間)。

當超出轉換範圍並進入正確的分析階段時,雖然ESRI之外確實沒有其他地方存在。就我的經驗而言。在直接深入ArcObjects之前,我會花一些時間學習通過arcgisscripting(v10中的arcpy)(python和dot net)可以實現的功能。

+1

從ArcGIS來到GDAl後,我不同意Matt的答案的最後一段。當然,ESRI使柵格地理處理非常簡單直到最近我還是會同意Matt的,但是如果您將GDAl與Numpy結合使用,那麼您的軍械庫幾乎和ESRI一樣好,在某些方面,我相信更好,更快。 OpenSource領域的另一個選擇是GRASS。 GRASS配備了大量的光柵功能,超越ESRI,通過體素實現真正的3D。 GRASS附件擴展了內置功能。 – MappaGnosis

相關問題