<html><body>
<p>Jason,<br>
        If you're working with vector data, why not throw the data into Postgresql/Postgis, <a href="http://postgis.refractions.net">http://postgis.refractions.net</a>, and use the spatial operators there to select/buffer/intersect the vector geometries as you describe.  <a href="http://postgis.refractions.net/documentation/manual-1.4/ch07.html">http://postgis.refractions.net/documentation/manual-1.4/ch07.html</a> 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  .  <br>
<br>
        You might be able to similar things in spatialite, <a href="http://www.gaia-gis.it/spatialite/spatialite-tutorial-2.3.1.html#t4">http://www.gaia-gis.it/spatialite/spatialite-tutorial-2.3.1.html#t4</a>.<br>
<br>
Doug<br>
<br>
Doug Newcomb             <br>
USFWS<br>
Raleigh, NC<br>
919-856-4520 ext. 14 doug_newcomb@fws.gov<br>
---------------------------------------------------------------------------------------------------------<br>
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.<br>
<img width="16" height="16" src="cid:1__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt="Inactive hide details for &quot;Jason Roberts&quot; &lt;jason.roberts@duke.edu&gt;">&quot;Jason Roberts&quot; &lt;jason.roberts@duke.edu&gt;<br>
<br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="background-image:url(cid:2__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov); background-repeat: no-repeat; " width="40%">
<ul>
<ul>
<ul>
<ul><b><font size="2">&quot;Jason Roberts&quot; &lt;jason.roberts@duke.edu&gt;</font></b><font size="2"> </font><br>
<font size="2">Sent by: gdal-dev-bounces@lists.osgeo.org</font>
<p><font size="2">01/11/2010 05:32 PM</font></ul>
</ul>
</ul>
</ul>
</td><td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""><br>
<div align="right"><font size="2">To</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""><br>
<font size="2">&quot;'gdal-dev'&quot; &lt;gdal-dev@lists.osgeo.org&gt;</font></td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""><br>
<div align="right"><font size="2">cc</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""><br>
</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""><br>
<div align="right"><font size="2">Subject</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""><br>
<font size="2">[gdal-dev] Open source vector geoprocessing libraries?</font></td></tr>
</table>

<table border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="58"><img width="1" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""></td><td width="336"><img width="1" height="1" src="cid:3__=0ABBFC3ADFCC8DF78f9e8a93df938690@fws.gov" border="0" alt=""></td></tr>
</table>
</td></tr>
</table>
<br>
<font face="Calibri">Dear geospatial software experts,</font><br>
<font face="Calibri"> </font><br>
<font face="Calibri">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 &quot;geoprocessing tools&quot; 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.</font><br>
<font face="Calibri"> </font><br>
<font face="Calibri">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.</font><br>
<font face="Calibri"> </font><br>
<font face="Calibri">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.</font><br>
<font face="Calibri"> </font><br>
<font face="Calibri">Thank you very much for any comments you can provide.</font><br>
<font face="Calibri"> </font><br>
<font face="Calibri">Jason</font><br>
<font face="Calibri"> </font><br>
<font face="Calibri"> </font><br>
<font face="Calibri"> </font><tt>_______________________________________________<br>
gdal-dev mailing list<br>
gdal-dev@lists.osgeo.org<br>
</tt><tt><a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a></tt><br>
</body></html>