Relationen mit OverPass Turbo als eine einzige Linie exportieren

Ich versuche eine Karte der Bahnstrecke Salta–Antofagasta zu erstellen. Dazu exportiere ich die Relation mit Overpass-Turbo als GPX:

[out:json][timeout:25];
(
  relation(6445519);
);
out body;
>;
out skel qt;

Heraus bekomme ich eine GPX-Datei mit hunderten von Ways, so wie sie auch gemappt wurde. Für die Weiterverarbeitung brauche ich aber eine Datei mir nur einem einzigen Way.

Im Internet gibt es zahlreiche Anleitungen, wie man mehrere GPX-Dateien “mergen” kann, dabei geht es aber immer nur daran, die Ways von mehreren GPX-Dateien in einer Sammeldatei zu kombinieren. Mir geht es darum, die Ways INNERHALB einer GPX-Datei miteinander zu verbinden.

Der Übergang zwischen zwei Ways sieht in GPX so aus:

<trkseg>
Punkte 1...
</trkseg>
</trk>
<trk>
<name>way/112604237</name><desc></desc><link href="http://osm.org/browse/way/112604237"/>
<trkseg>
Punkte 2...
</trkseg>

Weg muss also jeweils:

</trkseg>
</trk>
<trk>
<name>..</name><desc></desc><link ../>
<trkseg>

Weiß hier jemand eine Lösung?

Wollte es gerade mal ausprobieren, aber Deine Overpass Abfrage ergibt keine GPX, sondern etwas im JSON Format.

Nutzt Du JOSM? Wenn ja, kann der das natürlich auch.

Der “harte Weg” wäre über einen Texteditor, mit dem man Muster der Art


</trk>
<trk>
<name> ... />
<trkseg>

durch


<trkseg>

ersetzt. Dann beginnt statt eines neuen Tracks nur ein neues Segment in der GPX-Datei.
Wenn die name-Zeile nicht stört, reicht es sogar, alle zu löschen.

Es geht aber auch mit Tools wie GPS-Track-Analyse, da kann man viele Tracks reinladen, diese vereinen und dann den resultierenden Track speichern.

Jaein, nach der Abfrage wird zwar durchaus erst einmal JSON zurückgegeben, aber wenn du über “Export” gehst, kannst du GPX auswählen.

Das dachte ich auch und habe das GPX in JOSM geöffnet, dann zur Datenebene umgewandelt und wenn ich versuche alle markierten Wegsegmente mit c (Linien verinden) zu vereinen, sagt mir JOSM:
Linien können nicht verbunden werden (Sie können nicht in eine eindeutige Reihenfolge gebracht werden)

Ich müsste also vorher selbst alle Segmente durchgehen und manuell drehen… :confused:

Unter *nix wäre hierfür sed https://de.wikipedia.org/wiki/Sed_(Unix) Dein Freud.
Aus dem Gedächtnis ungefähr

sed -i 's/</trk>//g' file

ersetzt durch “nichts”.
Liest eine Datei, ersetzt alle Vorkommen von durch “” und schreibt die Datei wieder zurück.
Danach noch das Gleiche mit und schon sind nur noch zwei Leerzeilen da.
Ich bin mir aber sicher, dass es da bessere Lösungen gibt. Aber dafür sind meine Kenntnisse in sed und Co und reguläre Ausdrücke leider noch zu schwach.

Danke für den Tipp. Ich habe es mal mit emacs versucht und

</trkseg></trk><trk><name>.*?<trkseg>

durch NICHTS ersetzt. Das funktioniert soweit, dass ich nur noch einen Way habe, dafür ist das GPX aber völlig zerfetzt.

Unsortierte Eisenbahnrelationen sind ein Graus - die sollten alle mal automatisch durchsortiert werden :wink:

Die Strecke hat bei El Alisal eine Spitzkehre.

Obwohl ich schon alles möglich gelöscht habe (nur offline) kann JOSM die Linien nicht in eine eindeutige Reihenfolge bringen.

Die Strecke hat zwei Doppelspitzkehren. Da muss JOSM scheitern, da sich die Strecke da topologisch spaltet.
Die Wendefortsätze müssen also entfernt oder abgehängt werden.

Vorgehen (setzt utilsplugin2 voraus):
Alles markieren und alle Tags und Mitgliedschaften entfernen, die stören beim Verbinden nur (natürlich nachher nicht hochladen).
Selbstverständlich dürfen nur die ways der Relation geladen sein.
Einen Abschnitt markieren und mit Shift+W alle unverzweigten Nachbarways markieren. Das markiert bis zur Verzweigung an der Spitzkehre.
Dann mit “C” das Verbinden starten, im Dialogfenster das Umdrehen erlauben.
Stummel löschen oder abhängen (G).
Danach wieder Shift+W bis zur nächsten Kehre (es gibt ja nur zwei), dasselbe wie oben nochmal und man kommt bis ans Ende.
Mit Strg+E kann dann die GPX-Datei erzeugt werden.
Wenn die Stummel nicht gelöscht, sondern nur abgehängt wurden, tauchen sie in der GPX-Datei als extra Tracks auf.

Genau verkehrt herum:

Relation in Josm laden (Datei/Objekt herunterladen), sortieren und dann andächtig im Relationen-Editor betrachten: mitten in der Rel ist eine Lücke. D.h. das wären 2 Ways (Anfang bis Lücke und Lücke bis Ende) und aus denen kann kein Programm der Welt EINEN Way machen.

Schliess die Lücke und versuch es - bitte mit Josm - erneut.

Gruss
walter

Es sind vier Lücken, vor jeder Kehre eine.
Die können nicht geschlossen werden, bevor nicht die Stummel entfernt wurden.
Erst dann kann eine einzige geschlossene Linie erzeugt werden.
Es ist dasselbe Problem wie bei Wanderrouten mit Abstecher.

Fazit: Mit dem Relationseditor geht es also auch.

Jo, die Stelle hatte ich übersehen: http://www.openstreetmap.org/relation/6445519#map=16/-24.7607/-65.7411

Gruss
walter

Hmm. Von einer Bahnstrecke kann man eigentlich nicht erwarten, dass sie unverzweigt ist … wieso ist das dann für die Weiterverarbeitung Voraussetzung?

Wenn Du aber eigentlich eine Fahrt auf dieser Strecke meinst, dann wäre es nicht die Relation 6445519 (route=railway) sondern die Relation 448793 (route=train).
Die ist trotz des dort eingetragenen public_transport:version=1 eigentlich eine public_transport:version=2 - Relation. Von der darf man erwarten, dass man die Member mit der leeren Rolle so wie sie da stehen aneinanderhängen kann und es entsteht eine durchgezogene Linie. Die doppelt genutzten Streckenteile werden dort genauso wie bei der Benutzung doppelt angegeben und es entsteht eine durchgezogene Linie mit den kompletten Spitzkehren.

Weide

Nachtrag: Das Aneinanderhängen der einzelnen Wege – sogar wenn sie schon sortiert sind – kann man im Allgemeinen nicht mit einem Texteditor machen. Die Reihenfolge der Punkte im einzelnen Way muss ja evtl. umgedreht werden. Sowas macht z.B. der JOSM beim Verketten von Linien.

Richtig, Text-Editor taugt nicht.
Liegt ein bisschen daran, dass mir unklar war/ist, was der Thread-Initiator eigentlich will/braucht.
Für z.B. ein Überblenden des GPX-Tracks über eine Karte ist die Reihenfolge der Punkte egal, aber dafür müsste man die Segmente auch nicht vereinen.

Ein bisschen bezweifle ich, dass die Fahrweg-Relation (route=railway) komplett ist, denn es gibt nirgends ein tracks=2 oder eine Ausweichstelle (es sei denn, man nutzt die Spitzkehre :roll_eyes:). Da könnte dann nur ein einziger Zug hin- und her pendeln.

BTW/OT: Bei den Wanderroutenabstechern ist die Praxis nicht eindeutig, ob man sowohl Hin- als auch Rückweg in die Relation aufnimmt. Da hat man keine zwei Relationstypen für den Weg und das Abwandern. Das letztere wäre bei einer kompletten Relation (mangels Teleportation) immer zusammenhängend.