agiktsh / ch.sh.oereb_server.database.2.oereb_themes

Beinhaltet alle ÖEREB-Themen XTFs und produziert daraus eine Postgis DB
0 stars 0 forks source link

DataExtract-Fehler bei gewissen Grundstücken #4

Closed romefi closed 1 year ago

romefi commented 1 year ago

Beim einigen DataExtracts wie z.B. https://oereb.sh.opengis.ch/extract/xml/?GEOMETRY=true&EGRID=CH707354390890 kommt eine 500er HTTP-Fehlermeldung.

Gibt es eine Möglichkeit herauszufinden, wo das Problem liegt? Könnte ggf. auch an einer falschen Geometrie liegen.

vvmruder commented 1 year ago

Folgendes Log kann ich zu dem Thema anbieten:

shoereboereb-serverdeployment-webservice-1  | 2023-06-15 09:39:52.345 ERROR 1 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.vividsolutions.jts.geom.TopologyException: found non-noded intersection between LINESTRING ( 2695323.422 1290142.996, 2695323.224 1290142.659 ) and LINESTRING ( 2695323.224 1290142.658, 2695323.245 1290142.696 ) [ (2695323.2333020144, 1290142.6748322167, NaN) ]] with root cause
shoereboereb-serverdeployment-webservice-1  | 
shoereboereb-serverdeployment-webservice-1  | com.vividsolutions.jts.geom.TopologyException: found non-noded intersection between LINESTRING ( 2695323.422 1290142.996, 2695323.224 1290142.659 ) and LINESTRING ( 2695323.224 1290142.658, 2695323.245 1290142.696 ) [ (2695323.2333020144, 1290142.6748322167, NaN) ]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.noding.FastNodingValidator.checkValid(FastNodingValidator.java:145) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:94) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:59) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.operation.overlay.OverlayOp.computeOverlay(OverlayOp.java:237) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.operation.overlay.OverlayOp.getResultGeometry(OverlayOp.java:189) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.operation.overlay.OverlayOp.overlayOp(OverlayOp.java:92) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp.getResultGeometry(SnapIfNeededOverlayOp.java:96) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp.overlayOp(SnapIfNeededOverlayOp.java:58) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at com.vividsolutions.jts.geom.Geometry.intersection(Geometry.java:1338) ~[jts-core-1.14.0.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at ch.ehi.oereb.webservice.OerebController$10.extractData(OerebController.java:1767) ~[classes!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723) ~[spring-jdbc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651) ~[spring-jdbc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713) ~[spring-jdbc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:738) ~[spring-jdbc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:169) ~[spring-jdbc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at ch.ehi.oereb.webservice.OerebController.getRestrictions(OerebController.java:1445) ~[classes!/:na]
shoereboereb-serverdeployment-webservice-1  |   at ch.ehi.oereb.webservice.OerebController.createExtract(OerebController.java:774) ~[classes!/:na]
shoereboereb-serverdeployment-webservice-1  |   at ch.ehi.oereb.webservice.OerebController.getExtractWithGeometryByEgrid(OerebController.java:537) ~[classes!/:na]
shoereboereb-serverdeployment-webservice-1  |   at ch.ehi.oereb.webservice.OerebController.getExtract(OerebController.java:507) ~[classes!/:na]
shoereboereb-serverdeployment-webservice-1  |   at jdk.internal.reflect.GeneratedMethodAccessor60.invoke(Unknown Source) ~[na:na]
shoereboereb-serverdeployment-webservice-1  |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
shoereboereb-serverdeployment-webservice-1  |   at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:156) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.7.1.jar!/:2.7.1]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar!/:5.3.21]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1787) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.64.jar!/:na]
shoereboereb-serverdeployment-webservice-1  |   at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
vvmruder commented 1 year ago

vidsolutions.jts.geom.TopologyException: found non-noded intersection between LINESTRING ( 2695323.422 1290142.996, 2695323.224 1290142.659 ) and LINESTRING ( 2695323.224 1290142.658, 2695323.245 1290142.696 ) [ (2695323.2333020144, 1290142.6748322167, NaN) ]

vvmruder commented 1 year ago

Leider kann ich auf die Schnelle aus dem kompletten LOG nicht erkennen welches Thema das ist. Aber anhand der Koordinaten findest du das vielleicht raus?

romefi commented 1 year ago

Ich schaue es mir mal an, die Koordinaten helfen sicher.

Gibt es eine Möglichkeit, dass wir selber auf die Logs zugreifen können?

vvmruder commented 1 year ago

@romefi Die Geometrien könnte man nach dem INSERT aus dem XTF noch prüfen.

oereb=> select reason(ST_IsValidDetail(linie)) from live.oerbkrmfr_v2_0transferstruktur_geometrie;
oereb=> select reason(ST_IsValidDetail(punkt)) from live.oerbkrmfr_v2_0transferstruktur_geometrie;
oereb=> select reason(ST_IsValidDetail(flaeche)) from live.oerbkrmfr_v2_0transferstruktur_geometrie;

Allerdings zeigt mir das in der aktuellen DB-Version keine Fehler an. Das Deckt sich wohl ja aber nicht mit dem Auszug der nicht geht.

Es sei denn der Fehler liegt nicht in den ÖREB-Geometrien sonder in anderen. Aber ich weiss nicht wo es da sonst noch Linien hätte.

romefi commented 1 year ago

Wie es aussieht liegt es doch an den ÖREB-Geometrien. Wir haben bei gewissen Linien solche Geometrien:

image

Die werden höchstwahrscheinlich den Fehler auslösen. Ich schaue mir das morgen mit unserem Nupla-Spezi an. Was man aber schon sagen kann a. der Log-Zugang hat sich schon bewährt b. wieder mal trägt der ÖREB-Kataster an die Qualitätsverbesserung unserer Daten bei 👍

vvmruder commented 1 year ago

@romefi Ok. Dann warte ich mal ab. Da die Geometrien 1:1 übernommen werden, gehe ich im Moment nicht davon aus, dass es an der Trafo vom MGDM2OEREB liegt. Sonst gerne melden.

romefi commented 1 year ago

@vvmruder Wir haben die Geometrien analysiert und gemerkt, dass sie Selfintersections haben. D.h. der Fehler kommt von den Ursprungsdaten und nicht von MGDM2OEREB oder ÖREBServer. Wir werden die Daten bereinigen, dann sollte der ÖREB-Auszug wieder funktionieren. Schliesse mal den Issue. Vielen Dank für deine Unterstützung.