Hi,

Sorry, I knew that Overlay worked and meant really the Polygon overlay.

I have seen the non-noded intersection exceptions even before. They stop the 
whole process and I have been thinking that from users perspective it might be 
good to have an option to skip the errors and get at least some output but I do 
not know if that is technically possible.

I tried to solve a problem that another user had. The final goal is to erase 
layer 1 by layer 2, so to intersect and remove the parts of geometries on layer 
1 which are covered by features on layer 2. I suppose we do not have such 
direct erase tool but the output from Polygon overlay would work as an interim 
result. I also tried to union the other layer into one geometry but as I 
guessed the layer is all too large and complicated for that.

Another tool that I tried is the OGR Layer Algebra Erase method 
https://trac.osgeo.org/gdal/wiki/LayerAlgebra. That stopped also to non-noded 
intersection error and I believe it comes from GEOS.

-Jukka-

Lähettäjä: Michaud Michael <m.michael.mich...@orange.fr>
Lähetetty: keskiviikko 19. toukokuuta 2021 10.32
Vastaanottaja: OpenJump develop and use <jump-pilot-devel@lists.sourceforge.net>
Kopio: Stefan Steiniger <ssteini...@uc.cl>
Aihe: Re: [JPP-Devel] How to avoid non-noded intersection error in Overlay?


Jukka,

I could successfully run overlay, but not polygon overlay.

I think there maybe a solution with JTS snaprounding code, but there is no 
easyway to use it from OpenJUMP (to my knowledge, node-lines is the only plugin 
to use a snap-rounding approach, but for a reason, I could not use it with a 
very fine-grain precision on your data). Let me some time to explore as your 
dataset is quite big.

Michaël

envoyé : 19 mai 2021 à 00:37
de : Stefan Steiniger via Jump-pilot-devel 
<jump-pilot-devel@lists.sourceforge.net<mailto:jump-pilot-devel@lists.sourceforge.net>>
à : OpenJump develop and use 
<jump-pilot-devel@lists.sourceforge.net<mailto:jump-pilot-devel@lists.sourceforge.net>>
cc : Stefan Steiniger <ssteini...@uc.cl<mailto:ssteini...@uc.cl>>
objet : Re: [JPP-Devel] How to avoid non-noded intersection error in Overlay?

Hi Jukka,

I guess the lines are almost parallel of you zoom in : or parallel for the 
observer - but indeed are not. They could also be a duplicate. So, the option 
would be to change precision of evaluation, I believe or delete one or separate 
them? At least manual intervention seems necessary.

Perhaps not so useful but usually this was the case in the past :)

Cheers,
Stefan

On Tue., May 18, 2021, 13:13 Rahkonen Jukka (MML), 
<jukka.rahko...@maanmittauslaitos.fi<mailto:jukka.rahko...@maanmittauslaitos.fi>>
 wrote:

Hi,



I tried to run the Overlay function for this heavy dataset 
https://we.tl/t-gshlI4TbCU

Both layers seem to have no topology errors but the Overlay function fails with 
an error



org.locationtech.jts.geom.TopologyException: found non-noded intersection 
between LINESTRING ( 95.49610823093388 4.949137070569244, 95.49623518653348 
4.948912456969601 ) and LINESTRING ( 95.4962351860291 4.948912457861983, 
95.49623518653348 4.948912456969593 ) [ (95.49623518627793, 4.948912457421728, 
NaN) ]

                          at 
org.locationtech.jts.noding.FastNodingValidator.checkValid(FastNodingValidator.java:140)

                          at 
org.locationtech.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:81)

                          at 
org.locationtech.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:46)

                          at 
org.locationtech.jts.operation.overlay.OverlayOp.computeOverlay(OverlayOp.java:231)

                          at 
org.locationtech.jts.operation.overlay.OverlayOp.getResultGeometry(OverlayOp.java:183)

                          at 
org.locationtech.jts.operation.overlay.OverlayOp.overlayOp(OverlayOp.java:86)

                          at 
org.locationtech.jts.operation.overlay.snap.SnapIfNeededOverlayOp.getResultGeometry(SnapIfNeededOverlayOp.java:75)

                          at 
org.locationtech.jts.operation.overlay.snap.SnapIfNeededOverlayOp.overlayOp(SnapIfNeededOverlayOp.java:37)

                          at 
org.locationtech.jts.geom.GeometryOverlay.overlay(GeometryOverlay.java:76)

                          at 
org.locationtech.jts.geom.GeometryOverlay.union(GeometryOverlay.java:157)

                          at 
org.locationtech.jts.geom.Geometry.union(Geometry.java:1367)

                          at 
org.openjump.core.geomutils.algorithm.IntersectGeometries.nodeLines(IntersectGeometries.java:478)

                          at 
org.openjump.core.ui.plugin.tools.IntersectPolygonLayersPlugIn.runIntersectionNew(IntersectPolygonLayersPlugIn.java:205)

                          at 
org.openjump.core.ui.plugin.tools.IntersectPolygonLayersPlugIn.run(IntersectPolygonLayersPlugIn.java:127)

                          at 
com.vividsolutions.jump.workbench.ui.task.TaskMonitorManager$TaskWrapper.run(TaskMonitorManager.java:151)



What does this error mean, in which part of the operation it happens, and is 
there any way to get over it? I also tried a GDAL/GEOS based utility but it 
fails with similar error “TopologyException: found non-noded intersection 
between LINESTRING (104.098 0.627591, 104.098 0.627447) and LINESTRING (104.098 
0.627484, 104.098 0.627447) at 104.09781931770398 0.62748351910904443".



-Jukka Rahkonen-












_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net<mailto:Jump-pilot-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net<mailto:Jump-pilot-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to