Opened 3 years ago

Last modified 2 years ago

#1084 new defect

OffsetCurve -- TopologyException: found non-noded intersection between...

Reported by: jengland Owned by: geos-devel@…
Priority: major Milestone: 3.9.3
Component: Default Version: 3.8.0
Severity: Unassigned Keywords: OffsetCurve
Cc:

Description

This is coming from shapely's parallel_offset. Here is an example:

from shapely import wkt, geos

print(geos.geos_version_string)

wkt.loads('LINESTRING (0 9, 21 30, 49 45, 61 70, 81 90)').parallel_offset(3)

Has the following output

3.8.0-CAPI-1.13.1 
TopologyException: found non-noded intersection between LINESTRING (50.4167 -21.6444, 22.8077 -36.435) and LINESTRING (22.8077 -36.435, 37.4683 -21.7743) at 22.807666014902189 -36.434974672217095
<python traceback>

I can mine them with the attached script at a rate of about 5-10 per 100,000 LineString s. The LineString s I'm trying are all simple (relatively straight on a 100x100 integer grid with 5 points each). And all the offsets are 0-9 ints.

This seems to be different from #682, because there the error message is different (i.e. TopologyException: assigned depths do not match at ...) and I cannot easily mine for exception of that message.

Hopefully it's acceptable to submit a .py example file. I can try to reproduce this using GEOS directly if necessary.

Attachments (1)

mine_topology_exceptions.py (3.0 KB ) - added by jengland 3 years ago.
Python file using shapely to mine offset excpetions

Download all attachments as: .zip

Change History (4)

by jengland, 3 years ago

Attachment: mine_topology_exceptions.py added

Python file using shapely to mine offset excpetions

comment:1 by jengland, 3 years ago

Version: 3.9.03.8.0

comment:2 by pramsey, 3 years ago

Milestone: 3.9.13.9.2

comment:3 by pramsey, 2 years ago

Milestone: 3.9.23.9.3
Note: See TracTickets for help on using tickets.