[gdal-dev] validate/clean geometry with OGR?

Eli Adam EAdam at co.lincoln.or.us
Wed Apr 27 11:05:05 EDT 2011


Since you are going to PostGIS anyway cleaning in PostGIS is possible.  

Here is the 2.0 PostGIS doc, http://postgis.refractions.net/documentation/manual-svn/ST_MakeValid.html

I think that this PostGIS 2.0 function grows out of an old contrib.  I've used the contrib with great success in the past.  Here are a few links on that, http://linfiniti.com/2010/07/cleaning-geometries-inside-postgis/
http://trac.osgeo.org/postgis/wiki/UsersWikiCleanPolygons

Eli

>>> On 4/27/2011 at 7:55 AM, in message <4DB82E4A.1010207 at swoodbridge.com>, Stephen
Woodbridge <woodbri at swoodbridge.com> wrote:
> On 4/27/2011 10:36 AM, Elijah Robison wrote:
>> Hey devs, is anyone aware of an OGR approach to validate/clean
>> geometries, for instance, as they are being converted from SHP to
>> PostGRESql?
>> It's not uncommon to have a handful of invalid geometries (usually
>> self-intersecting polygons) in a parcel dataset, and it's impractical to
>> correct them manually. In most situations I use the "Clean Geometries"
>> function in ArcGIS, which does fix the problem. However this one
>> functionality is my main reason to retain Arc in my primary tool chain.
>>
>> I've never found a scripting approach by trolling the search engines so
>> I thought I'd ask here.
> 
> This would be an interesting tool and you might want to check the 
> postgis list as I think there have been some tools posted there to clean 
> check tables in the database.
> 
> Since I use the shp2pgsql data loader, my standard check and clean is:
> 
> update mytable set the_geom=buffer(the_geom, 0.0) where not 
> isvalid(the_geom);
> 
> -- at this point anything that is not valid probably need to be looked
> -- at or needs something like a dump the polygon as line segments and
> -- then st_build_area() on the line segments.
> 
> select count(*) from mytable where not isvalid(the_geom);
> select gid from mytable where not isvalid(the_geom);
> 
> But this is all postgis related and not GEOS related, but you might be 
> able to do the same thing directly in GEOS if you know what strategies 
> work in postgis.
> 
> -Steve W
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org 
> http://lists.osgeo.org/mailman/listinfo/gdal-dev



More information about the gdal-dev mailing list