Jason Roberts wrote:
Doug,

Thanks for these suggestions. It looks like PostGIS and SpatialLite both provide a SQL-based approach for accomplishing what I need. Both look promising and I will dig into them in more detail.

It might be less than optimal to load data into one of these, execute the desired spatial query, and export data back out. But there is probably no suitable alternative that provides a complete set of spatial operators that is any faster. I'm sure a big part of executing efficient spatial queries is having a spatial index. Even OGR does not appear to expose spatial indexes that may be maintained by the underlying data sources. Thus any geoprocessing library that sits on OGR or a similar API must already retrieve all records, build a spatial index, then execute the spatial query. This is basically the same thing as loading data into PostGIS or SpatialLite and then executing the query.

I have tons of questions but will resist asking all but one: do you know how well these systems can be embedded in other software? In my collection of tools, I want the infrastructure that supports them to be hidden and config-less. Although I have not used SQLite, I know it is designed explicitly for easy embedding, so it seems promising. What about Postgres? In my past experience, it appeared to be much more of a full-blown enterprise database system, designed to run as a service or daemon, listen for connections, etc. If it can be easily embedded, I might prefer to use it, as PostGIS appears to provide a richer set of spatial operators.

I have used SQLite in a bunch of tools. It is easy and straight forward. You can do any config stuff in your code so it is config-less from the users point of view.

I also use PostGIS for a lot of stuff, but you are right that you need to setup a server and have your tools connect to it. Once the server is setup and running the client applications just need to have valid login to the server to do whatever they want.

For Perl I tend to use PostGIS and for C code I tend to use SQLite. I have looked at the SpatiaLite extensions but have not really used them yet.

If you are building a system where you don't want to deal with a database server, I would have not qualms using SQLite and SaptiaLite for building an embedded solution.

-Steve
 http://imaptools.com/

Jason

*From:* doug_newc...@fws.gov [mailto:doug_newc...@fws.gov]
*Sent:* Tuesday, January 12, 2010 12:29 PM
*To:* Jason Roberts
*Cc:* 'gdal-dev'; gdal-dev-boun...@lists.osgeo.org
*Subject:* Re: [gdal-dev] Open source vector geoprocessing libraries?

Jason,
If you're working with vector data, why not throw the data into Postgresql/Postgis, http://postgis.refractions.net, and use the spatial operators there to select/buffer/intersect the vector geometries as you describe. http://postgis.refractions.net/documentation/manual-1.4/ch07.html for geoprocessing operations. Your application can pass SQL commands to the database. You can use ogr to load data /export your finished product to/from postgresql/postgis .

You might be able to similar things in spatialite, http://www.gaia-gis.it/spatialite/spatialite-tutorial-2.3.1.html#t4.

Doug

Doug Newcomb
USFWS
Raleigh, NC
919-856-4520 ext. 14 doug_newc...@fws.gov
---------------------------------------------------------------------------------------------------------
The opinions I express are my own and are not representative of the official policy of the U.S.Fish and Wildlife Service or Dept. of the Interior. Life is too short for undocumented, proprietary data formats. Inactive hide details for "Jason Roberts" <jason.robe...@duke.edu>"Jason Roberts" <jason.robe...@duke.edu>

*"Jason Roberts" <jason.robe...@duke.edu>*
Sent by: gdal-dev-boun...@lists.osgeo.org

01/11/2010 05:32 PM

        

To

        


"'gdal-dev'" <gdal-dev@lists.osgeo.org>

cc

        

Subject

        


[gdal-dev] Open source vector geoprocessing libraries?

        


Dear geospatial software experts,

By integrating with GEOS, OGR can perform various spatial operations on individual geometries, such as buffer, intersection, union, and so on. Is there a library that efficiently performs these kinds of operations on entire OGRLayers? For example, this library would have functions that would buffer all of the features in a layer, or intersect all of the features in one layer with all of those in another. Basically, I am looking for an open source technology that replicates the "geoprocessing tools" found in ArcGIS and other GIS packages. These tools traditionally operate on one or more layers as input and produce one or more layers as output.

If such a library does not exist, does the OGR team envision that they might add such capabilities to OGR in the future? From software design and performance points of view, would it be appropriate to extend OGR to include functions for spatial operations on entire layers, or is this best left to other libraries? I can see rudimentary ways to implement such tools (e.g. for intersecting layers: loop over all features in both layers, calling OGRGeometry::Touches on all combinations, or something similar). But I am not a geometry expert and do not know if OGRLayer's cursor-based design is compatible with such capabilities; I do not know about spatial indexing, for example.

I develop open source geoprocessing tools that help with spatial ecology problems. At the moment, my tools depend on heavily on ArcGIS for these operations with vector layers. I would like to remove this dependency, and, if possible, develop a toolbox that exposes the same ecology tools to several GIS packages. Many GIS packages, such as ArcGIS, QGIS, MapWindow, and OpenJump, support plugin extensions. I am wondering whether how difficult it would be to develop a package of tools that does not depend on a specific GIS package but exposes them to several packages via the package-specific plugin mechanisms. For this to work, I'd have to find a library that can do the kind of geoprocessing with layers that ArcGIS can do, or write my own. Writing it myself sounds daunting and am hoping that there are existing projects to draw from.

Thank you very much for any comments you can provide.

Jason


_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev


------------------------------------------------------------------------

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to