Self-intersection at or near point x,y

Beim Import des Planetfiles (mit osm2pgsql) gibt es immer auch Hinweise zu Datendefekten. Beispiel (Planet vom 27.09.18, 3:18):

NOTICE:  Self-intersection at or near point 587312.94433636917 6271092.4624617016
NOTICE:  Self-intersection at or near point 7148486.4317922518 7047035.3777957428
NOTICE:  Self-intersection at or near point 14317693.027572632 8695223.7255895436
NOTICE:  Self-intersection at or near point 1659220.8268292747 7993093.1244309396
NOTICE:  Self-intersection at or near point 14262695.544890331 4299495.7930161757
NOTICE:  Self-intersection at or near point 11985875.572086383 4115611.18050856
NOTICE:  Self-intersection at or near point -506086.5913292435 5280209.9148441646
NOTICE:  Self-intersection at or near point 530333.30102692614 5918886.5543764178
NOTICE:  Self-intersection at or near point -5306220.9274020893 -2596580.5323433573
NOTICE:  Self-intersection at or near point -13080821.603226541 4364707.4101160122
NOTICE:  Self-intersection at or near point 587312.91705696541 6271092.4234429011

Es stellt sich die Frage, ob und wie die Hinweise zur Qualitätssicherung der Daten verwendet werden können.

Diese Art von Fehlermeldung gibt es auch im OSM Inspector im Geometry-View für Ways (auch geschlossene) und im Areas-View für Flächen.

Ich nutze auch osm2pgsql und bekomme diese Meldungen regelmäßig. Das sind nun mal falsch erfasste Areas (einfache geschlossene Ways) und multipolygon/boundary-Relationen mit geometrischen Fehler (idR. überlappende Ways).

Allerdings bekomme ich immer ZWEI Fehlermeldungen direkt nacheinander und aus der ersten geht das fehlerhafte Objekt hervor.


HINWEIS:  Invalid Polygon -4246121. Can't construct PointOnSurface(way).
HINWEIS:  SQLSTATE: XX000 SQLERRM: GEOSPointOnSurface: TopologyException: Input geom 1 is invalid: Self-intersection at or near point 1.4011022596794822 43.624680521994271 at 1.4011022596794822 43.624680521994271

Hier ist es die Relation #4246121, da die ID negativ ist. “Normale” Ways haben hier positive IDs

Somit sollte es relativ einfach sein, damit eine QA zu erstellen.

Gruss
walter

Bei den Hinweisen stellen sich einige Fragen:

  • Was sind das für Koordinaten?
  • Wird das Objekt überhaupt in die Datenbank übernommen?
  • Wie findet man das korrespondierende OSM-Objekt?
  • Ist eine QS der OSM-Daten mit den Angaben sinnvoll?

Trotzdessen du auf meine Antwort nicht eingegangen bist:

das sind die Koordinaten des Schnittpunktes - was denn sonst?

das hängt davon ab, ob du die osm2pgsql-Option “–exclude-invalid-polygon” verwendest oder nicht. Default ist “repariere soweit möglich”. Das “Reparieren” ändert allerdings die OSM-DB nicht, also bleibt der Fehler weiterhin in den Rohdaten.

Doch nicht so einfach, da mein obiges Beispiel auf einem modifizierten osm2pgsql beruht. Mit sehr speziellen PostGIS-Abfragen könnte es aber gehen.

selbstverständlich. Das sind definitv falsche Geometrien.

Walter

Es gab nichts zum “drauf eingehen”. Es werden lediglich die im Eingangspost genannten Informationen ausgegeben.

Das hätte mich eher auf meinen Fehler gebracht, da ich nicht gedacht hatte, dass ich ja ein modifiziertes osm2pgsql verwende.