Hi Jukka, If your geometries are valid, this is probably a robustness issue. It seems that SimplifyPolygonCoveragePlugIn makes use of Geometry.difference operator, which, AFAIK, is one of the most sensitive to robustness problems.
Fix : It is probably hard to solve the problem in a clean way (maybe worth sending a test case to Martin if you can isolate the two geometries involved in the difference). Hack : For a generalisation plugin, it may be acceptable to catch the exception and to retry the operation with a slightly modified input geometry (depends on the algorithm though). Repair : From a practical point of view, I often localize the problem thanks to the linestring coordinates of the message, then I discover two geometries which are neaaaaaaarly equals... In this case, fixing the bad topology (for example with the snap vertices tool) may solve the problem. Michaël Le 24/03/2015 12:59, Rahkonen Jukka (MML) a écrit : > Hi, > > I wonder what is is causing these errors and how to get rid of those when > trying to generalize a polygon layer. Source data is passing all the QA tests. > > com.vividsolutions.jts.geom.TopologyException: found non-noded intersection > between LINESTRING ( 564808.0140000008 7321057.019999999, 564808.014 > 7321057.019999999 ) and LINESTRING ( 564808.0140000005 7321057.019999999, > 564808.0140000008 7321057.019999999 ) [ (564808.0140000005, > 7321057.019999999, NaN) ] > at > com.vividsolutions.jts.noding.FastNodingValidator.checkValid(FastNodingValidator.java:130) > at > com.vividsolutions.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:94) > at > com.vividsolutions.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:59) > at > com.vividsolutions.jts.operation.overlay.OverlayOp.computeOverlay(OverlayOp.java:237) > at > com.vividsolutions.jts.operation.overlay.OverlayOp.getResultGeometry(OverlayOp.java:189) > at > com.vividsolutions.jts.operation.overlay.OverlayOp.overlayOp(OverlayOp.java:92) > at > com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp.getResultGeometry(SnapIfNeededOverlayOp.java:96) > at > com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp.overlayOp(SnapIfNeededOverlayOp.java:58) > at com.vividsolutions.jts.geom.Geometry.difference(Geometry.java:1419) > at > org.openjump.core.graph.polygongraph.PolygonGraphNode.getNonSharedBoundariesAsFeature(PolygonGraphNode.java:82) > at > org.openjump.core.graph.polygongraph.PolygonGraph.getNonSharedBoundaries(PolygonGraph.java:194) > at > org.openjump.core.ui.plugin.tools.generalization.SimplifyPolygonCoveragePlugIn.run(SimplifyPolygonCoveragePlugIn.java:166) > at > com.vividsolutions.jump.workbench.ui.task.TaskMonitorManager$TaskWrapper.run(TaskMonitorManager.java:152) > at java.lang.Thread.run(Thread.java:724) > > > -Jukka Rahkonen- > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel