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>
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.
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…
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.
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.
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.
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.
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 ). 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.