Opened 13 years ago
Closed 13 years ago
#468 closed defect (worksforme)
Geometry breaks valid() and buffer(): "Assertion failed: (0), function query, file AbstractSTRtree.cpp, line 286"
Reported by: | chdemars | Owned by: | strk |
---|---|---|---|
Priority: | major | Milestone: | 3.3.1 |
Component: | Core | Version: | 3.3.0 |
Severity: | Unassigned | Keywords: | |
Cc: |
Description
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(class1contains='NW', survey_areacontains='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
Attachments (3)
Change History (9)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
I isolated a multipolygon that causes the afore mentioned crash and uploaded it in wkb and wkt form. I'm not sure if it is the only multipolygon in the set causing issue or not.
comment:4 by , 13 years ago
Or, does the problem persist if you parse the WKT and go on from there ? The attached XML (with WKT form) shows no problem in isValid operation at the C++ level. You can substitute the WKT with HEXWKB in the testcase to try it out that way. You pass the XML file to XMLTester (under tests/xmltester of GEOS source tree).
by , 13 years ago
Attachment: | bug468.xml added |
---|
comment:6 by , 13 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Closing for lack of response and impossibility to reproduce.
I can't upload the sample file because it is over the 286k upload limit (1-2MB for wkb and 5-6MB for wkt, 7.8 for the four files zipped).
Is there someone I can email the files to or can the upload limit be increased?
Thank you, --Christopher