开发者

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

Im just starting off with GDAL + python to support operations that cannot be done with ArcGIS python geoprocessing scripting. Mainly I am doing spatial modeling/analysis/editing of raster and vector data.

I am a bit confused when ArcObject development is required versus when GDAL can be us开发者_运维百科ed? Is there functionality of ArcObjects that GDAL does not do? Is the opposite true too? I am assuming that ArcObjects are more useful in developing online tools versus Desktop analysis and modeling where the difference is more to do with preference? In my case i prefer GDAL because of python support, which I believe ArcObjects lack.

thanks!


GDAL is included in ArcGIS to work with some raster data formats. They do not use the GDAL utilities to do any geoprocessing. I would imagine ESRI have implemented most, if not all, of the functionality in GDAL with their own geoprocessing functions. In summary there is a big overlap in functionality between the two.

The ESRI geoprocessing functions can all be run and scripted through Python. The geoprocessing tools are higher level abstractions (a simplification) of ArcObjects, and have been built using ArcObjects. They should cover your requirements of "spatial modeling/analysis/editing of raster and vector data."

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

What function do you find is missing in the ESRI geoprocessing tools?

The GDAL utilities can also be manipulated with Python (and other languages). If there is a utility in the link below that meets your needs then you can use this.

Link


geographika's answer is superb. I'll only add that I use gdal/ogr when simplicity and speed is wanted in conversions. Examples include one format to another, adding image pyramids, simple merging and coordinate transformation (raster & vector). When all you want to do is jam a bunch of shapefiles together or convert a large series of rasters to a common projection gdal/ogr is faster to startup and run as it doesn't need to load the whole ArcObjects COM library to access one or two functions. (I've been told ESRI has the largest MS COM system on earth, by a large margin, including all of Microsoft's offerings.) Or check for a valid license. In one test I ran comparing ESRI arcgisscripting to GDAL ogr2ogr processing time went from 6 minutes to 10 seconds.

The only significant thing, in the realm of conversion and projection, that I feel is missing from gdal is the ability to log geoprocessing activity in the Lineage section of the metadata. ESRI tools do this automatically (most of the time).

When moving beyond conversion and getting into proper analysis though there really is no place outside of ESRI*. In my experience that is. Before you dig into ArcObjects directly I'd spend some time learning what can be accomplished via arcgisscripting (arcpy in v10), which is python, and dot net.

* 10 years later: I don't stand behind this statement anymore. Qgis has had a very steady improvement rate throughout the last decade and doesn't show any signs of slowing down. If anything it's been speeding up. True Esri has had significant improvements in the same period as well, but their focus is spread between desktop and online, in favour of the latter. My current recommendation is to look at the respective communities and choose based on which ones have the largest overlap with your own work and interests. It's not (so much) about which platform has what functions, but about who you might best work with.


ArcObjects and geoprocessing add a lot more functionality than GDAL and is mostly aimed at the desktop. Another option for looking at Python is also using QGIS which has a python API, is Free and Open Source, and an active developer community.

There are also plenty of python libraries for doing spatial work, such as Shapely. I would say for raster that GDAL is your best bet but for vector you might want to use something like shapely.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜