簡體   English   中英

GIS:何時以及為什么使用 ArcObjects over GDAL 編程來處理 ArcGIS 柵格和矢量?

[英]GIS: When and why to use ArcObjects over GDAL programming to work with ArcGIS rasters and vectors?

我剛開始使用 GDAL + python 來支持 ArcGIS python 地理處理腳本無法完成的操作。 我主要是對柵格和矢量數據進行空間建模/分析/編輯。

當需要 ArcObject 開發與何時可以使用 GDAL 時,我有點困惑? GDAL 不具備 ArcObjects 的功能嗎? 反之亦然嗎? 我假設 ArcObjects 在開發在線工具方面比桌面分析和建模更有用,而桌面分析和建模的區別更多地與偏好有關? 就我而言,我更喜歡 GDAL,因為我相信 ArcObjects 缺乏對 python 的支持。

謝謝!

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(和其他語言)進行操作。 如果下面的鏈接中有一個實用程序可以滿足您的需求,那么您可以使用它。

關聯

geographika 的回答非常棒。 我只會補充說,當轉換需要簡單和速度時,我會使用 gdal/ogr。 示例包括一種格式到另一種格式、添加圖像金字塔、簡單的合並和坐標變換(光柵和矢量)。 當您想要做的只是將一堆 shapefile 擠在一起或將大量柵格轉換為公共投影時,gdal/ogr 的啟動和運行速度更快,因為它不需要加載整個 ArcObjects COM 庫來訪問一個或兩個功能。 (有人告訴我 ESRI 擁有世界上最大的 MS COM 系統,而且占很大比例,包括微軟的所有產品。)或者檢查一個有效的許可證。 在一項測試中,我比較了 ESRI arcgisscripting 和 GDAL ogr2ogr處理時間從 6 分鍾到 10 秒。

在轉換和投影領域,我認為 gdal 缺少的唯一重要的事情是在元數據的 Lineage 部分中記錄地理處理活動的能力。 ESRI 工具會自動執行此操作(大部分時間)。

當超越轉換並進入適當的分析時,盡管在 ESRI* 之外確實沒有位置。 以我的經驗是這樣。 在您直接深入研究 ArcObjects 之前,我會花一些時間了解可以通過 arcgisscripting(v10 中的 arcpy)(即 python 和 dot net)來完成什么。

* 10 年后:我不再支持這個聲明。 在過去十年中,Qgis 的改進速度非常穩定,並且沒有任何放緩的跡象。 如果有的話,它一直在加速。 True Esri 在同一時期也有顯着改進,但他們的重點分散在桌面和在線之間,有利於后者。 我目前的建議是查看各自的社區,並根據與您自己的工作和興趣重疊最多的社區進行選擇。 這不是(那么多)關於哪個平台有什么功能,而是關於你最適合與誰合作。

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

還有很多用於空間工作的 python 庫,例如 Shapely。 我會說 raster GDAL 是您最好的選擇,但對於矢量,您可能想要使用 shapely 之類的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM