31
Eisenbahnrouting mit GraphHopper Michael Reichert (Nakaner) Foto: Andre de, Wikimedia Commons, CC-BY-SA 4.0

Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

Eisenbahnroutingmit GraphHopper

Michael Reichert (Nakaner)

Foto: Andre de, Wikimedia Commons, CC-BY-SA 4.0

Page 2: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

BislangTravic

proprietar

Page 3: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

BislangMentz

proprietar

Page 4: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

BislangRaildar.fr

Filterung des Planets mit osmfilter, Routing mit OSRM,angeblich Tag-Ersetzung

Page 5: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

BislangSignal.eu.org

OSRM, Gegengleis-Unterstutzung, Fahrtrichtungswechsel,Stromsystem-Support (?)

Page 6: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMap

verbunden

ein Way pro Gleis

1,8 Mio. km Gleis(81 900 km inDeutschland)

1,2 Mio. moglicheWeichen (158 602 inDeutschland)

261 527railway=switch

(61 000 in Deutschland)

Page 7: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMapEinfache Weichen

Page 8: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMapKreuzungsweichen

doppelte Kreuzungsweiche (railway=switch +railway:switch=double slip)

Page 9: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMapKreuzungsweichen

einfache Kreuzungsweiche (railway=switch +railway:switch=single slip)

Page 10: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMapKreuzungsweichen

Kreuzung (railway=railway crossing)

Page 11: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMapTags

railway=*

rail: Vollbahnlight rail: Stadtbahntram: Straßenbahnsubway: U-Bahnnarrow gauge: Schmalspurbahn

railway=disused + disused:railway=*

railway=abandoned + abandoned:railway=*

railway=razed + razed:railway=*

railway=construction + construction:railway=*

railway=proposed + proposed:railway=*

Page 12: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMapTags

railway=*

rail: Vollbahnlight rail: Stadtbahntram: Straßenbahnsubway: U-Bahnnarrow gauge: Schmalspurbahn

railway=disused + disused:railway=*

railway=abandoned + abandoned:railway=*

railway=razed + razed:railway=*

railway=construction + construction:railway=*

railway=proposed + proposed:railway=*

Page 13: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Gleise in OpenStreetMapTags

gauge=* Spurweite in mm

electrified=no/yes/contact line/rail

voltage=* Spannung in Volt

frequency=* Frequenz in Hertz

Mehrschienengleise: gauge=1435;1000

Page 14: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Features

Stromsysteme

Spurweiten

4 Profile

Guterzug mit Dieseltraktion, max. 90 km/hGuterzug mit E-Lok (15 kV 16,7 Hz), max. 90 km/hTGV (15 kV 16,7 Hz, 25 kV 50 Hz, 1500 V =), max.319 km/hTGV (15 kV 16,7 Hz, 3000 V =, 1500 V =), max. 319 km/h

Fahrtrichtungswechsel

reduzierte Default-Geschwindigkeiten fur Uberhol- undUberleitgleise

Page 15: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Demo

Demo

Page 16: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Performance

osmium tags-filter -o europe-rail.osm.pbf

europe.osm.pbf w/railway 9 bis 15 Minuten, 1–2 GBRAM

305 MB große PBF-Datei

Import: knapp 2 Minuten, 1200 MB RAM ohneContraction Hierarchies

Graph: 204 MB

2450 Routen durch Deutschland

2352 erfolgreiche Routen2 Minuten 8 Sekunden, 1 Abfragethreaddurchschnittliche Routenlange: 409 km

Page 17: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Implementierung

com.graphhopper

com.graphhopper.reader.osm

de.geofabrik.railway routing

GraphHopper

GraphHopperOSM

RailwayHopper

+ cleanUp(): void

Page 18: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

ImplementierungFlagEncoder

com.graphhopper.routing.util

de.geofabrik.railway routing

�interface�FlagEncoder

AbstractFlagEncoder

RailFlagEncoder

Page 19: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

ImplementierungRailFlagEncoder

RailFlagEncoder

- electrifiedValues: ArrayList<String>- acceptedVoltages: ArrayList<Integer>- acceptedFrequencies: ArrayList<Double>- acceptedGauges: ArrayList<Integer>- speedCorrectionFactor: double

+ RailFlagEncoder(properties: PMap)

Page 20: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

ImplementierungRailFlagEncoder

RailFlagEncoder

- electrifiedValues: ArrayList<String>- acceptedVoltages: ArrayList<Integer>- acceptedFrequencies: ArrayList<Double>- acceptedGauges: ArrayList<Integer>- speedCorrectionFactor: double

+ RailFlagEncoder(properties: PMap)

Keysname

electrifiedValues

acceptedVoltages

acceptedFrequencies

acceptedGauges

max speed

speedCorrectionFactor

Page 21: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Erfahrungen mit GraphHopper

+ fur Routing auf beliebigen Verkehrswegen geeignet

+ Forum weiß viel

– FlagEncoder-Einfuhrung sparsam

– TurnCostExtension ohne gute Doku → Missverstandnisse

– Wendezeiten separat fur jeden FlagEncoder

– mehr protected statt private in GraphHopper

(Workaround: Duplizierung)

Unit-Tests anschauen!

Page 22: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

VerbesserungspotentialGegengleisfahrten

Fahrtrichtung

Page 23: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

VerbesserungspotentialGegengleisfahrten – Abhilfe

railway:preferred direction=forward/backward

Page 24: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

VerbesserungspotentialAbschatzung der Fahrzeiten

Hochstgeschwindigkeit mit 0,9 multipliziert

Vergleich Fahrplane ohne Zwischenhalte mit errechneten Zeitenim TGV-Profil

Fahrplan errechnet

IC Koblenz–Mainz 1:05 0:50IC Magdeburg–Dessau 0:42 0:36

Page 25: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

VerbesserungspotentialAbschatzung der Fahrzeiten

Hochstgeschwindigkeit mit 0,9 multipliziert

Vergleich Fahrplane ohne Zwischenhalte mit errechneten Zeitenim TGV-Profil

Fahrplan errechnet

IC Koblenz–Mainz 1:05 0:50IC Magdeburg–Dessau 0:42 0:36

Page 26: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

VerbesserungspotentialVorgabe der Abfahrtsrichtung an Via-Punkten

Saa

bruc

ken–

Fra

nkfu

rt

Page 27: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

VerbesserungspotentialVorgabe der Abfahrtsrichtung an Via-Punkten

Saa

bruc

ken–

Fra

nkfu

rt

Page 28: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Fehlende DatenNeigung

Hansueli Krapf, Wikimedia Commons, CC-BY-SA 3.0

Page 29: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Fehlende DatenStrecken fur besondere Zwecke, Dieseltraktionsverbote

Poudou99, Wikimedia Commons, CC-BY-SA 4.0

Page 30: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Fehlende DatenLichtraumprofileinschrankungen

Falk2, Wikimedia Commons, CC-BY-SA 4.0

Page 31: Eisenbahnrouting mit GraphHopper - Geofabrik€¦ · + f ur Routing auf beliebigen Verkehrswegen geeignet + Forum weiˇ viel { FlagEncoder-Einf uhrung sparsam { TurnCostExtension

MichaelReichert(Nakaner)

Bislang

OSM-Daten

Features

Demo

Performance

Implemen-tierung

Zukunft

Die Entwicklung dieses Prototyps wurde unterstutzt von

https://github.com/geofabrik/railway routing