WIP: Deutschland als zweite Datenquelle (gtfs.de)
- mehrere Quellen (ch, de) mit je eigenem Fahrplan und Echtzeit-Feed - OSM CH+DE, mit osmium auf Schienennetz gefiltert, für pfaedle - Landesgrenze CH gegen doppelte grenzüberschreitende Züge - Import robust gegen andere Spaltenreihenfolge (gtfs.de) - Kacheln für CH+DE (Zoom 14) Noch nicht vollständig getestet (pfaedle auf Deutschland läuft). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X48pE4bzjHej8w9HyZXCjb
This commit is contained in:
+27
-8
@@ -2,17 +2,36 @@ import os
|
||||
from pathlib import Path
|
||||
|
||||
DATA_DIR = Path(os.environ.get("TRAINPULSE_DATA", "/var/lib/trainpulse"))
|
||||
FEEDS_DIR = DATA_DIR / "feeds" # fertig aufbereitete Fahrpläne, ein Ordner pro feed_version
|
||||
FEEDS_DIR = DATA_DIR / "feeds" # fertig aufbereitete Fahrpläne: feeds/<quelle>/<version>/
|
||||
TZ = "Europe/Zurich"
|
||||
|
||||
# Schweiz: offizieller GTFS-Fahrplan + GTFS-RT (Trip Updates) von opentransportdata.swiss
|
||||
GTFS_URL = os.environ.get("TRAINPULSE_GTFS_URL", "") # leer = automatisch das aktuelle Fahrplanjahr
|
||||
RT_URL = os.environ.get("TRAINPULSE_RT_URL", "https://api.opentransportdata.swiss/la/gtfs-rt")
|
||||
RT_KEY = os.environ.get("TRAINPULSE_RT_KEY", "")
|
||||
RT_INTERVAL = 35 # Sekunden; Limit sind 2 Abfragen/Minute (Sliding Window)
|
||||
# Datenquellen. Jede hat einen GTFS-Fahrplan und einen passenden GTFS-RT-Feed (Trip Updates).
|
||||
SOURCES = {
|
||||
"ch": { # opentransportdata.swiss; GTFS-URL leer = automatisch das aktuelle Fahrplanjahr
|
||||
"gtfs_url": os.environ.get("TRAINPULSE_GTFS_URL", ""),
|
||||
"rt_url": os.environ.get("TRAINPULSE_RT_URL", "https://api.opentransportdata.swiss/la/gtfs-rt"),
|
||||
"rt_key": os.environ.get("TRAINPULSE_RT_KEY", ""),
|
||||
"needs_key": True,
|
||||
"rt_interval": 35, # Limit sind 2 Abfragen/Minute (Sliding Window)
|
||||
},
|
||||
"de": { # gtfs.de (Daten von DELFI e.V.), Fahrplan CC BY 4.0, Echtzeit CC BY-SA 4.0
|
||||
"gtfs_url": os.environ.get("TRAINPULSE_DE_GTFS_URL", "https://download.gtfs.de/germany/free/latest.zip"),
|
||||
"rt_url": os.environ.get("TRAINPULSE_DE_RT_URL", "https://realtime.gtfs.de/realtime-free.pb"),
|
||||
"rt_key": "",
|
||||
"needs_key": False,
|
||||
"rt_interval": 60, # ~6 MB pro Abruf, öfter lohnt sich nicht
|
||||
},
|
||||
}
|
||||
ENABLED = [s for s in os.environ.get("TRAINPULSE_SOURCES", "ch,de").split(",") if s in SOURCES]
|
||||
|
||||
OSM_URL = os.environ.get("TRAINPULSE_OSM_URL", "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf")
|
||||
# OpenStreetMap: daraus werden das Schienennetz (für pfaedle) gefiltert
|
||||
OSM_URLS = os.environ.get("TRAINPULSE_OSM_URLS", " ".join([
|
||||
"https://download.geofabrik.de/europe/switzerland-latest.osm.pbf",
|
||||
"https://download.geofabrik.de/europe/germany-latest.osm.pbf",
|
||||
])).split()
|
||||
PFAEDLE = os.environ.get("TRAINPULSE_PFAEDLE", "pfaedle")
|
||||
OSMIUM = os.environ.get("TRAINPULSE_OSMIUM", "osmium")
|
||||
PMTILES = os.environ.get("TRAINPULSE_PMTILES", "pmtiles")
|
||||
TILES_BBOX = "5.8,45.7,10.6,47.9" # Schweiz mit etwas Rand
|
||||
TILES_BBOX = "5.5,45.7,15.3,55.2" # Schweiz + Deutschland mit etwas Rand
|
||||
TILES_MAXZOOM = 14 # die Karte vergrössert Vektorkacheln darüber hinaus selbst; spart viel Platz
|
||||
USER_AGENT = "trainpulse/0.1 (+https://scarriffle.com)"
|
||||
|
||||
Reference in New Issue
Block a user