Opened 3 years ago

Closed 3 years ago

#1087 closed enhancement (fixed)

Check for invalid polygonal geometry before fixing

Reported by: mdavis Owned by: mdavis
Priority: minor Milestone: 3.10.0
Component: Core Version: 3.9.0
Severity: Significant Keywords:
Cc:

Description

Some algorithms (including DouglasPeuckerSimplifier, VWSimplifier, Densifier) may produce invalid polygonal topology, and so include a cleaning step to ensure the result value is valid.

JTS has a PR to add a test to see if the result is actually invalid before running the potentially expensive cleaning process.

Change History (6)

comment:1 by mdavis, 3 years ago

JTS PR is 656.

comment:2 by mdavis, 3 years ago

Fixed by e6c6fa3.

comment:3 by mdavis, 3 years ago

This produces a significant performance improvement in Densifier and DouglasPeuckerSimplifier.

Using a world dataset as a test, performance improves as shown below:

geosop -a world.wkt -t  densify .001

Ran 244 densify ops ( 366,951 vertices)  -- 24,765,297 usec    (GEOS 3.9.1dev)
Ran 244 densify ops ( 366,951 vertices)  -- 9,141,759 usec    (GEOS 3.10.0dev)
geosop -a world.wkt -t -r 10 simplifyDP .001

Ran 2,440 simplifyDP ops ( 366,951 vertices)  -- 9,296,279 usec    (GEOS 3.9.1dev)
Ran 2,440 simplifyDP ops ( 366,951 vertices)  -- 3,742,962 usec    (GEOS 3.10.0dev)

comment:4 by mdavis, 3 years ago

Owner: changed from strk to mdavis

comment:5 by mdavis, 3 years ago

Milestone: 3.9.13.10.0

comment:6 by mdavis, 3 years ago

Resolution: fixed
Severity: UnassignedSignificant
Status: newclosed
Note: See TracTickets for help on using tickets.