Dies ist eine alte Version des Dokuments!


Inhaltsverzeichnis

OpenTripPlanner (OTP) ist eine quelloffene Plattform zur multimodalen Reiseplanung. Sie berechnet Routen über mehrere Verkehrsmittel hinweg, etwa ÖPNV, Fußwege, Fahrrad und Auto, und kombiniert dafür vor allem GTFS-Fahrplandaten mit OpenStreetMap-Kartendaten. OTP wird als Server-Komponente betrieben und stellt Schnittstellen für Web- und Mobile-Anwendungen bereit.

OTP erzeugt aus den Eingabedaten einen Graphen des Verkehrsnetzes. Dieser Graph basiert auf Straßen- und Wegenetzen aus OpenStreetMap sowie Fahrplandaten im GTFS-Format. Auf dieser Grundlage sucht die Software nach sinnvollen Reiseketten, zum Beispiel „zu Fuß zur Haltestelle, mit der Bahn weiter, dann per Fahrrad zum Ziel“.

Mit OTP 2 wurde der Bereich des ÖPNV-Routings grundlegend überarbeitet. Die offizielle Versionsdokumentation beschreibt, dass die Routing-Komponente für den öffentlichen Verkehr in OTP2 neu geschrieben wurde und gegenüber OTP1 bessere Leistung in großen Verkehrsnetzen sowie mehr alternative Reisevorschläge bietet.

Test

sudo apt update
sudo apt install -y openjdk-21-jre-headless wget unzip
java -version
 
sudo mkdir -p /opt/otp
sudo chown -R $USER:$USER /opt/otp
cd /opt/otp
 
wget https://github.com/opentripplanner/OpenTripPlanner/releases/download/v2.9.0/otp-shaded-2.9.0.jar -O otp.jar
 
# Download PBF
# Download gtfs.zip
 
cat > /opt/otp/build-config.json <<'EOF'
{
  "configVersion": "wien-v1",
  "dataImportReport": true,
  "osmDefaults": {
    "timeZone": "Europe/Vienna"
  }
}
EOF
 
cat > /opt/otp/router-config.json <<'EOF'
{
  "configVersion": "wien-v1",
  "routingDefaults": {
    "walkSpeed": 1.3
  }
}
EOF
 
java -Xmx6G -jar otp.jar --build --save .
 
# Falsche Java Version...
sudo apt install -y openjdk-25-jre-headless
sudo update-alternatives --config java
 
java -Xmx6G -jar otp.jar --build --save .
 
# Dauert etwas
 
java -Xmx6G -jar otp.jar --load .

Trasfer Debug

Datei /opt/otp/logback-transfer-debug.xml im Data Verzeichnis anlegen

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} %-5level [%thread] (%logger{36}) %msg%n</pattern>
    </encoder>
  </appender>
 
  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>
 
  <logger name="TRANSFERS_EXPORT" level="INFO" />
</configuration>

Mit Debug Config builden

java -Dlogback.configurationFile=/opt/otp/logback-transfer-debug.xml -Xmx6G -jar otp.jar --build --save . | tee /opt/otp/build-transfer-debug.log
grep -i 'TRANSFER' /opt/otp/build-transfer-debug.log [| tail -n 50]