[geos-devel] RE: [GEOS] #468: Geometry breaks valid() and buffer(): "Assertion failed: (0), function query, file AbstractSTRtree.cpp, line 286"

Martin Davis mtnclimb at telus.net
Fri Aug 19 11:24:16 EDT 2011


Good to have the problem narrowed down.

There's nothing obviously wrong with the polygon, at least from the JTS 
perspective.  Perhaps Sandro can shed some light on the issue...

On 8/19/2011 7:03 AM, Christopher DeMars wrote:
> Thank you Mr. Davis for your attention,
>
> I tried your suggestion of buffering elements individually then
> merging the buffers. I buffered several elements without issue, then
> got the same program stopping error message as before. On the plus
> side, I did isolate a polygon that was crashing things. Attached is
> the wkt and wkb of that polygon.
>
> --Christopher
>
>
> On Thu, Aug 18, 2011 at 8:53 PM, Martin Davis<mtnclimb at telus.net>  wrote:
>> Incidentally, this is one of those cases where buffering by unioning the
>> buffers of the components far outperforms the straight buffer (for distance
>> = 100, 10 s vs 70 s).
>>
>> This is something you might be able to try, if your data model permits it.
>> Split the geometry into its components, and process them all separately.
>> This should give better performance, and may avoid the GEOS issues.
>>
>> On 8/18/2011 8:43 PM, Martin Davis wrote:
>>
>> I have tested this in JTS 1.12, and can confirm that both isValid and buffer
>> work correctly.  The buffer operation does take quite a while and requires a
>> significant amount of memory.
>>
>> So the geometry is fine.  There may be some issues with GEOS.
>>
>> On 8/18/2011 3:44 PM, Christopher DeMars wrote:
>>
>> Since the ticket upload function is limited to 256Kb, I thought I
>> would try to send an example file via this list.
>>
>> Attached is water1.wkb, a multipolygon that fubars GEOS buffer or
>> valid functions. I can supply water2 and/or either file as wkt.
>>
>> Thank you for any help you can offer,
>> --Christopher
>>
>>
>> ---------- Forwarded message ----------
>> From: GEOS<geos-trac at osgeo.org>
>> Date: Thu, Aug 18, 2011 at 3:08 PM
>> Subject: [GEOS] #468: Geometry breaks valid() and buffer(): "Assertion
>> failed: (0), function query, file AbstractSTRtree.cpp, line 286"
>> To:
>>
>>
>> #468: Geometry breaks valid() and buffer(): "Assertion failed: (0), function
>> query, file AbstractSTRtree.cpp, line 286"
>> ------------------------+---------------------------------------------------
>>   Reporter:  chdemars    |       Owner:  strk
>>      Type:  defect      |      Status:  new
>>   Priority:  major       |   Milestone:  3.3.1
>> Component:  Core        |     Version:  3.3.0
>>   Severity:  Unassigned  |    Keywords:
>> ------------------------+---------------------------------------------------
>>   GEOS is pretty far down in the software stack I'm using, but it looks like
>>   my program stopping error lies there.
>>
>>   Software being used:
>>   geos-config --version 3.3.0
>>   I'm using GeoDjango and PostGIS on top of GEOS with development taking
>>   place on Mac OSX
>>
>>   Geometry source:
>>   original source is:
>>   http://www.water.ca.gov/landwateruse/docs/landusedata/shapes/04bu.zip
>>
>>   After loading that (and the other DWR land use files) into my
>>   PostGIS/GeoDjango database I extracted all the water features using:
>>   water = DWRlanduse.objects.filter(class1__contains='NW',
>>   survey_area__contains='BUTTE COUNTY').collect()
>>
>>   I have attached the wkb and wkt output of the above with water1 using
>>   .unionagg() and water2 using .collect() to produce a MultiPolygon and
>>   GeometryCollection respectively. Both produce failure.
>>
>>   If I try to use .buffer() or .valid() functions on either water1 or water2
>>   I get the same failure:
>>   Assertion failed: (0), function query, file AbstractSTRtree.cpp, line 286
>>   which says one of the 'childBoundables' is of an unsupported type.
>>   Functions like area or centroid work fine.
>>
>>   I would like to know if the error is a problem with GEOS and/or a problem
>>   with the geometry. Regardless of the source of error, I would also like to
>>   know how to go about fixing it.
>>
>>   Thank you for your time and efforts,
>>   --Christopher
>>
>> --
>> Ticket URL:<http://trac.osgeo.org/geos/ticket/468>
>> GEOS<http://geos.refractions.net/>
>> GEOS (Geometry Engine - Open Source) is a C++ port of the Java
>> Topology Suite (JTS).
>>
>>
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/geos-devel
>>
>> -----
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 10.0.1392 / Virus Database: 1520/3842 - Release Date: 08/18/11
>>
>>
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/geos-devel
>>
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 10.0.1392 / Virus Database: 1520/3842 - Release Date: 08/18/11
>>
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/geos-devel
>>
>>
>>
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/geos-devel
>>
>>
>> -----
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 10.0.1392 / Virus Database: 1520/3844 - Release Date: 08/19/11
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/geos-devel/attachments/20110819/9c912d07/attachment.html


More information about the geos-devel mailing list