[geos-devel] Bug in GEOSEquals predicate ?

Sean Gillies sgillies at frii.com
Sat Mar 14 09:30:46 EDT 2009


On Mar 14, 2009, at 3:06 AM, Pascal Leroux wrote:

> Hi all
>
> while searching for intersections between polygons (buildings), I  
> have found shapes that make "equals" predicate crash. With simpler  
> shapes, it occurs too :
>
> >>> from shapely.geometry import Polygon
> >>> p1 = Polygon(((0,0),(0,10),(10,10),(10,0),(8,0),(8,8),(2,8), 
> (2,0)))
> >>> p2 = Polygon(((2,0),(2,8),(8,8),(7,4),(8,0)))
> >>> inter = p1.intersection(p2)
> >>> inter.is_valid and p1.is_valid and p2.is_valid
> True
> >>> inter.wkt
> 'GEOMETRYCOLLECTION (POINT (8.0000000000000000 0.0000000000000000),  
> LINESTRING (8.0000000000000000 8.0000000000000000,  
> 2.0000000000000000 8.0000000000000000), LINESTRING  
> (2.0000000000000000 8.0000000000000000, 2.0000000000000000  
> 0.0000000000000000))'
> >>> inter.equals(p1)
> False
> >>> inter.equals(p2)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/lib/python2.5/site-packages/Shapely-1.0.11-py2.5.egg/ 
> shapely/predicates.py", line 34, in __call__
>     return bool(self.fn(self.context._geom, other._geom))
>   File "/usr/lib/python2.5/site-packages/Shapely-1.0.11-py2.5.egg/ 
> shapely/predicates.py", line 21, in errcheck
>     raise PredicateError, "Failed to evaluate %s" % repr(self.fn)
> shapely.geos.PredicateError: Failed to evaluate <_FuncPtr object at  
> 0x96a3bf4>
>
> I have got a Bus Error on MacOSX (libgeos version 3.0.0) and a  
> Segmentation Fault on Ubuntu (libgeos version 3.0.3) with an  
> equivalent code written in C (so I think Shapely is not involved).
>
> Any idea ? Did I miss something ?
>
> Pascal

Hi Pascal,

Get those test geometries into WKT form so others can more easily try  
them, and add a bug to the GEOS tracker. I'll look into it.

Cheers,
Sean



More information about the geos-devel mailing list