3

我刚开始使用 GDAL + python 来支持 ArcGIS python 地理处理脚本无法完成的操作。我主要是对栅格和矢量数据进行空间建模/分析/编辑。

当需要 ArcObject 开发与何时可以使用 GDAL 时,我有点困惑?GDAL 不具备 ArcObjects 的功能吗?反之亦然吗?我假设 ArcObjects 在开发在线工具方面比桌面分析和建模更有用,而桌面分析和建模的区别更多地与偏好有关?就我而言,我更喜欢 GDAL,因为我相信 ArcObjects 缺乏对 python 的支持。

谢谢!

4

3 回答 3

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

于 2010-02-16T22:21:45.500 回答
4

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 在同一时期也有显着改进,但他们的重点分散在桌面和在线之间,有利于后者。我目前的建议是查看各自的社区,并根据与您自己的工作和兴趣重叠最多的社区进行选择。这不是(太多)关于哪个平台有什么功能,而是关于你最适合与谁合作。

于 2010-05-11T05:49:51.193 回答
2

ArcObjects 和地理处理比 GDAL 添加了更多功能,并且主要针对桌面。查看 Python 的另一个选择是使用 QGIS,它有一个 Python API,是免费和开源的,并且是一个活跃的开发者社区。

还有很多用于空间工作的 python 库,例如 Shapely。我会说 raster GDAL 是您最好的选择,但对于矢量,您可能想要使用 shapely 之类的东西。

于 2010-02-19T06:16:05.040 回答