Ivan, What you point out, the lack of an open source "geoprocessing" library has, to some degree, become a sort of religious concept.
On the one side, you have the geographers and typical user demographics that ESRI targets. On the other side, you have programmers and computer science types. These sides are completely drawn down these lines, but I think you get the gist. The general question is really, "how much should geoprocessing be turned into black-boxes"? Most people who are adept at programming are not intimidated by having to implement basic geospatial algorithms themselves. Further, many such people abhor the inefficiencies inherent in chaining together a series of black boxes. For instance, in your example, I'm sure the end result isn't a buffer - it's some operation using that buffer as input. Why does that buffer ever need to exist as a shapefile? The black box method that ESRI encourages means a temporary shapefile has to be written out and read back in. If you implement the algorithms yourself, you just build the buffer into the data structures passed around. On the other hand, the academic GIS community (and ESRI) have put a great deal of effort into encapsulating some really complex geospatial operations into these well-defined black boxes. Once upon a time, Arc/Info Workstation implemented the black boxes as Unix commands and then Avenue and AML commands. Now they are COM objects that are used uniformly by the ArcGIS Toolbox, ModelBuilder, ArcServer and the arcgisscripting Python module. By leaving the inefficiencies to Moore's Law, people can work with geospatial information at a higher level of abstraction. You never really need to know how to represent a buffer in code. You just have to know how to use it. But to answer your question, there isn't such a library (that I know of). I know GRASS implements many functions as does QGIS. So you can probably do some of it in the QGIS Python console. But it's still a different approach. -Eric -=--=---=----=----=---=--=-=--=---=----=---=--=-=- Eric B. Wolf New! 720-334-7734 USGS Geographer Center of Excellence in GIScience PhD Student CU-Boulder - Geography GPG Public Key: http://www.h4h.net/ebwolf.public.key.txt On Thu, Apr 29, 2010 at 3:05 PM, Ivan Willig <[email protected]> wrote: > Hi list, > > I have been looking for an easy to use open source analytical library for > processing GIS data. I thought I would ask here first. I often work with > data and want a clean high level data api for doing spatial analysis. I am > looking for something similar ArcPy but not in the ESRI world. Correct if I > am wrong, but projects like Shapely are focused on processing and analyzing > geometries. On the other hand projects like Ogr/Gdal allow me to create and > manipulate Shapefiles and PostGIS tables but lack analytical capabilities. > Same thing with geoscript <http://geoscript.org/>. > > For example, I would like to buffer the features of a shapefile and save > the results of another shapfile. Something like > > from something import ops > ops.buffer(“input_shapfile.shp”, “output_shapefile”,10) > > Thats taken right from the ESRI's documentation. With ogr or geoscript, I > could do this but I would have to load the Shapefile into memory, iterate > through the features, call the buffer method on each geometry objects and > then save the results to a new file. This is rather complicated for mere > mortals. > > Is there a open source library that does this? Would this be a useful thing > to develop for the open source community? Or am I totally bat s**t crazy and > this is not really useful? > > Thanks guys. > > Ivan Willig > 818-212-4554 > >
