HAFAS - fingeg/AVV-HAFAS GitHub Wiki
AVVV_HAFAS_540.zip) Format
ASEAG HAFAS v5.40 - 9-Stellig (Vorwort
Alle Informationen in der folgenden Beschreibung wurden aus dieser PDF entnommen (Das letze Kapitel ab Seite 598). Ich habe nur die für die AVV relevanten Daten zusammengefasst und andere Teile ausgelassen. Somit ist dies keine Vollständige HAFAS Beschreibung.
Allgemein
Die Begriffe Bahnhof und Haltestelle sind gleichwertig und begrenzen sich nicht auf einen bestimmten Typ.
Ein %
Zeichen leitet immer ein Kommentar ein.
Ein *
Wird benutzt um Eigenschaften zu definieren.
(...)
werden hier immer für optionale Parameter benutzt.
Zeiten werden immer in ??? definiert.
Eine Datei startet immer mit:
*F DATEITYP FORMATNUMMER
Die Formatnummer
gibt an ob 9-Stellige haltestennencodes verwendet werden (=2) oder nicht (=1).
Wert | Dateityp |
---|---|
01 | bahnhof |
02 | bfkoord |
04 | eckdaten |
05 | bitfeld |
06 | zugart |
07 | metabf |
08 | umsteigb |
09 | attribut |
10 | bfprios |
11 | infotext |
12 | kminfo |
13 | umsteigv |
14 | umsteigl |
15 | umsteigz |
16 | vereinig |
17 | durchbi |
18 | richtung |
19 | grenzhlt |
21 | zeitvs |
26 | gleise |
28 | betrieb |
30 | bhfart |
31 | bhfattr |
42 | streckenpt |
43 | kanten |
44 | fahrtzuordnung |
Dateien
eckdaten
Hier wird definiert von wann bis wann der Fahrplan gültig ist.
TT.MM.JJJJ Beginn
TT.MM.JJJ Ende
bahnhof
Liste aller Bahnhöfe
BAHNHOFNUMMER BETREIBER, ALLE_NAMEN_MIT_$_GETRENNT, GEBIET
bfkoord
Liste aller Bahnhof-koordinaten
BAHNHOFNUMMER X Y % KOMMENTAR
BETREIBER_NUMMER.LIN
Beschreibung einer Linie
*F
Scheint keine Bedeutung zu haben
*Z
Liniennummer
NUMMER BETREIBER
*G
Bustyp
TYPNAME VON_BAHNHOF BIS_BAHNHOM VON_ZEIT BIS_ZEIT
*A
Attribut
ATTRIBUT VON_BAHNHOF BIS_BAHNHOM TAG_AUS_BITFELD_DATEI VON_ZEIT BIS_ZEIT
Wenn das Attribut VE ist, dann beschreibt es die Verkehrstage, anderfalls ein Attribut aus der attribut Datei. Verkehrstage werden in der bitfeld Datei beschrieben.
*I
Infotext aus der Infotext Datei
INFOTEXTCODE VON_BAHNHOF BIS_BAHNHOM TAG_AUS_BITFELD_DATEI INFOTEXT_AUSINFOTEXT_DATEI VON_ZEIT BIS_ZEIT
*L
Liniennummer (Die die auch an den Bussen steht)
LINIENNUMMER VON_BAHNHOF BIS_BAHNHOM VON_ZEIT BIS_ZEIT
*R
Richtungsangabe
RICHTUNG RICHTUNGSCODE VON_BAHNHOF BIS_BAHNHOM VON_ZEIT BIS_ZEIT
Die RICHTUNG
kann 0 (Hin) oder 1 (Zurück) sein und der RICHTUNGSCODE
gibt den Namen an. Wenn der nicht gegeben ist, dann wird die letzte Haltestelle genommen, falls er ein Haltestellencode ist, wird diese Haltestelle genommen und andernfalls die Bezeichung in der richtung Datei.f
*GR
Grenzpunkte
GRENZPUNKTNUMMER VON_BAHNHOF BIS_BAHNHOM VON_ZEIT BIS_ZEIT
Grenzpunkte geben virtuelle Punkte an um den übergang in andere Bereiche zu ermöglichen. Man kann dort nicht ein- und aussteigen.
*SH
Saisonhaltestellen
VON_BAHNHOF TAGE BIS_BAHNHOF
Haltestellen in diesem Bereich werden nur an den angegebenen Tagen angefarhen.
Laufwegzeilen
Alle anderen Zeilen (ohne *) geben die Haltestellen in der richten Reihenfolge an.
HALTESTELLENNUMMER HALTESTELLENNAME ANKUNFTSZEIT ABFAHRTSZEIT
±5 Ziffern im Format VHHHMM. Bei einer Fahrt über Mitternacht hin-aus werden die Zeiten mit 25 Uhr, 26 Uhr ... weiter gezählt(max. darf eine Fahrt bis 984 Uhr gehen). Das +
bzw -
Zeichen gibt an ob man ein- und aussteigen darf. Das +
Zeichen kann durch ein Leerzeichen ersetzt werden. Beispiel auf Seite 50 der PDF.
attribut_SPRACHE
Attribute die mit Verweisen für Linien und Haltestellen verwendet werden können.
ATTRIBUTSCODE HALTESTELLENZUGEHÖRIGKEIT PRIORITÄT PRIORITÄT_FEIN TEXT#
ATTRIBUTSCODE
ist ein zweistelliger Code der in anderen Dateien verwendet werden kannHALTESTELLENZUGEHÖRIGKEIT
: 0 = Fahrtabschnitt; 1 = Abfahrtshaltestelle; 2 = AnkunftshaltestellePRIORITÄT
(0-999) undPRIORITÄT_FEIN
(0-99) geben die Reihenfolge der Attribute an falls mehrere gesetzt wurden. So größer, desto unwichtigerTEXT
gibt den Attributstext an
'#'-Zeilen
Unterscheidet zwischen einer Teilstrecke und der kompletten Strecke.
# ATTRIBUT TEILSTRECKE VOLLSTRECKE
--
steht für kein Attribut.
'+'-Zeilen
Gibt Metaattribute an, die bei der Suche relevant sind. Zum Beipsiel, dass eine halbe Stunde vorher gebucht werden muss.
METAATTRIBUTSCODE PRIORITÄT PRIORITÄT_FEIN TEXT
Wie bei den normalen Attributen.
':'-Zeilen
Ordnet einem Attribut mehrere Attribute zu.
KÜRZEL: WEITERE_KÜRZEL ...
Um zum Beispiel einem normalen Attribut ein Metattribut hinzuzufügen.
infotext
Infotexte die als Verweise für Linien oder Haltestellen verwendet werden können.
CODE TEXT
Es gibt weiter Strukturen, bzw. als Wert steht eifach eine Zahl. Diese Bedeutung konnte ich noch nicht herausfinden.
richtung
Ordnet Richtungscodes einer Haltestelle zu.
RICHTUNGSCODE HALTESTELLE
Die HALTESTELLE
muss in der Bahnhofs-Datei vorkommen.
bitfeld
Wird als Verweis benutzt um Verkehrstage anzugeben.
VERWEISNUMMER BITFELD
Das Bitfeld besteht aus 380 Bits (Tagen). Das erste Bit stellt den Anfang der Fahrplanperiode dar. Alle nicht genutzten Bits nach dem letzten Bit am Ende der Fahrplanperiode werden fest auf „0“ gesetzt. Damit die Da-ten kompakter abgesichert werden können, werden jeweils 4 Bit zu einerhexadezimalen Ziffer zusammengefasst. Insgesamt wird das Bitfeld also durch 96 hexadezimale Ziffern beschrieben. Damit kann ein kompletter Jahresfahrplan dargestellt werden. Aus technischen Gründen sind 2 Bits unmittelbar vor dem Beginn der Fahr-planperiode eingefügt und fest auf 1 und ebenso zwei Bits unmittelbar nachdem Ende der Fahrplanperiode.
Beispiel (Ein Ausschnitt):
79B3E7CF9D3E
Das von Hex in Binär:
11110011011001111100111110011111001110100111110
Hier sieht man jeweils eine 1
für fährt und eine 0
für fährt nicht, also fährt der Bus normalerweise Montags bis Freitags.
zugart
In der Dateu zugart werden alle Verweise zu den Zugarten definiert. (UUU = Unbekannt)
TYPCODE QUALITÄT TARIFGRUPPE ANZEIGEWERT TYPSHORTNAME ZUSCHLAG KENNZEICHNUNG INDEX TYPLONGNAME
QUALITÄT
:
Wird von 0 (gut) bis 13 (schlecht) angegeben.
ANZEIGEWERT
:
0
: Gattung und Liniennummer anzeigen (z.B. Busse)1
: Nur Gattung Anzeigen (z.B. BB oder SEV)2
: Fahrt- bzw. Zugnummer anzeigen (z.B. RB oder RE)3
: Keine Ausgabe+4
: Betreiber statt Gattung
KENNZEICHUNG
:
N
für NahverkehrB
für Schiff
Zuschlag
:
0
: Zuschlagsfrei1
: Zuschlagpflicht kontextabhängig2
: generell zuschlagpflichtig
TYPLONGNAME
:
Wird mit category
plus die Nummer unten in der Datei für unterschidliche Sprachen definiert.
Des weiteren werden in der Datei mit class
plus die Nummer die Qualtiät in unterschidlichen Sprachen beschrieben und mit option die Texte für auswählbare Optionen.
metabf
Hier werden alle Distanzen zwischen Haltestellen mit nich angegebenen Verkehrsmitteln (z.B. zu Fuß) in einer Zeit angegeben.
HALTESTELLE_1 HALTESTELLE_2 MMsSS
Auf so eine Zeile können beliebig viele Attribute in form einer *
-Zeile folgen:
*A
:ATTRIBUTSCODE
(Code aus der attribut Datei)*U
: Als Umsteigen werten (0-7 umstiege)*I
: Information (Aus infotext Datei)*B
: Unterdrückung von Fußweg1
: keine Ausgabe nur am Start und Ziel2
: keine Ausgabe nur inmitten einer Verbindung3
: nie Ausgeben4
: Fußweg bei der Suche nicht berücksichtigen
*L
: Länge der Weges in Metern
Danach kommen die Haltestellengruppen bzw. Zusammenfassungen. Diese werden mit einem :
sichtbar.
SAMMELBEGRIFFS_NUMMER: TYP_EINS NUMMER_EINS TYP_ZWEI NUMMER_ZWEI
usw.
Die SAMMELBEGRIFFS_NUMMER
muss es in der bahnhof Datei geben.
Ein Leerzeichen als Typ wird als S-Typ interpretiert.
Alle Typen sind:
- Typ S: Start-Ziel-Äquivalenz (Anstelle des Sammelbegriffs sollen die S-äqui-valenten Haltestellen als Start-, Ziel- oder Viahaltestelle einer Reise be-nutzt werden. Dabei sind alle S-Äquivalenzen gleichwertig)
- Typ F: Fußwegäquivalenz (Die F-äquivalenten Haltestellen werden von den S-und V-Äquivalenten des Sammelbegriffs per Fußweg erreicht, wenn derSammelbegriff als Start oder Ziel dient)
- Typ B: Für Bahnhofstafeln (In der Bahnhofstafel des Sammelbegriffs erschei-nen alle Fahrten, die an den B-äquivalenten Haltestellen verkehren. Wer-den zu einer Haltestelle in den Rohdaten keine B-Äquivalenzen definiert,so werden alle ihre F-, S- und V-Äquivalenzen als B-Äquivalenzen be-nutzt)
Eine genauere Beschreibung mit Beispiel findet man auf Seite 83 bis 86 in der pdf.
bhfart
Diese Datei ist dazu da Ein- und Ausstiege zu beschränken.
()
= optional
B
BAHNHOF_CODE B AUSWAHL ROUTING
Sowohl AUSWAHL
als auch ROUTING
werden aus der Dezimalzahl der drei bits (Startauswahl, Zielauswahl, Via-Auswahl) zusammengesetzt (0 = frei; 1 = gesperrt).
Bsp.: 0000800 B 0 7 RURSEE
DEC | BIN |
---|---|
0 | 000 |
7 | 111 |
Also ist die Haltestelle RURSEE
als Start-, Ziel- und Via-Auswahl frei, kann aber nicht zum routing verwendet werden. Was sich dadurch erklären lässte, dass sie eine Virtuelle Haltestelle ist, die andere Haltestellen zusammenfasst.
A
BAHNHOF_CODE A ATTRIBUT_CODE (VERKEHRSTAG)
Attribute werden wie sonst auch behandelt.
I
BAHNHOF_CODE I INFOTEXT_KÜRZEL INFOTEXT_CODE (VERKERSTAG)
Infotexte werden wie sonst auch behandelt.
D
BAHNHOF_CODE D TYP (HALTESTELLENNAME)
(bestimmte Haltestelle)
oder
@@@@@@@ D TYP (HALTESTELLENNAME)
(alle Haltestellen)
Bestimmte Halstestellen überschreiben den jeweiligen Wert von allen.
Alle vorkommenden Typen:
D
: Park-and-Ride
Man kann die Typen ohne Trennung aneinander reihen. Es kommt zum Beispiel einmal vor, dass: 0000800 T ABCDEFGH
G
Weiß ich noch nicht
P
Weiß ich noch nicht
bhfattr
Beschreibt Haltestellenattribute.
ATTRIBUTSCODE PRIORITÄT PRIORITÄT_FEIN TEXT
Genau wie in der Datei attribut.
ATTRIBUTSCODE
ist ein zweistelliger Code der in anderen Dateien verwendet werden kannPRIORITÄT
(0-999) undPRIORITÄT_FEIN
(0-99)
bfprios
Haltestellen Prioritäten. Nötig wenn es mehrere Umsteigemöglichkeiten gibt.
HALTESTELLENCODE PRIORITÄT (HALTESTELLENNAME)
Die PRIORITÄT
ist von 0 (höchste) bis 16 (niedrigste) gesetzt. 8 ist default.
kminfo
Umsteigepunkte definieren.
HALTESTELLENCODE AKTIV NAME
Inwievern der AKTIV
Code funktioniert ist noch nicht nachvollziehbar. in der PDF auf Seite 112 steht 30000 für aktiv und 0 für inaktiv, jedoch ist dies hier nicht der Fall.
vereinig
Die Verinigungen dienen dazu, dass wenn zwei Linien eine Physikalische verbindung (Also nur unterschiedliche Bezeichnungen) ist, man also nicht umsteigen muss.
HALTESTELLENCODE_1 HALTESTELLENCODE_2 FAHRTNUMMER_1 VERWALTUNG_1 FAHRTNUMMER_2 VERWALTUNG_2 (KOMMENTAR)
Das bedeutet, dass die FAHRTNUMMER_1
von VERWALTUNG_1
und die FAHRTNUMMER_2
von VERWALTUNG_2
zwischen HALTESTELLENCODE_1
und HALTESTELLENCODE_2
gemeinsam fahren.
durchbi
Die Durchbindungen werden benutzt um Nummeränderungen an einer Linie vorzunehmen.
FAHRTNUMMER_1 VERWALTUNG_1 LETZER_HALT FAHRTNUMMER_2 VERWALTUNG_2 VERKEHRSTAG ERSTER_HALT ATTRIBUT KOMMENTAR
Das bedeutet, dass an den VERKEHRSTAG
en der Bus von VERWALTUNG_1
bis LETZER_HALT
unter FAHRTNUMMER_1
und ab ERSTER_HALT
unter der FAHRTNUMMER_2
von VERWALTUNG_2
fährt.
grenzhlt
Für die ASEAG nicht relevant, beschreibt aber virtuelle Grenzpunkte um Betriebsübergreifende Netzte zu beschreiben.
HALTESTELLENCODE HALTESTELLENNAME
Jede Haltestelle muss es in der Bahnhofs-Datei geben.
zeitvs
Stellt die Zeitverschiebung da, für uns nicht relevant
gleise
Gibt an an welchem Gleis bzw. Haltestellennummer ein Zug / Bus anhält.
HALTESTELLEN_CODE FAHRTNUMMER VERWALTUNG GLEISINFO (ZEIT_HHMM) (VERKEHRSTAG)
betrieb
Beschreibt alle Betriebe und fass ggf. Betriebe zusammen.
KÜRZEL KENNUNG NAME ...
Es gibt die Kennungen K (Kurz = 3 Bu.), L (Lang = 8 Bu.) und V (Voll).
Ein :
fasst mehrere Kürzeln zu einer zusammen:
CODE: KÜRZEL1 KÜRZLE2 ...
N
ist noch nicht bekannt.
sonderzug
Ist für die ASEAG irrelevant.
Realgraph
streckenpt
Definiert Realgraph-Punkte die aber keine Haltestelle sind.
CODE X Y
die *M
Zeilen ignorieren, sie geben keine von uns auswertbare Information aus.
kanten
Hier werden die Realgraph-Kanten definiert.
KNOTEN_1 KNOTEN_2 (B)
KNTOEN_1
und KNOTEN_2
können jeweils ein HALTESTELLENCODE
oder ein Streckenpunkt sein. Das B
sagt ob die Kante in beide oder nur in eine richtung gilt (B
=beide; !B
=keine).
Es gibt noch folgende Attribute:
*G
: Stützknoten
fahrtzuordnung
Hier werden Fußwege und fahrten bestimmten Kanten zugeordnet.
Umsteigezeiten
Die in den Rohdaten definierten Umsteigezeiten werden innerhalb Hafas in der folgenden Reihenfolge berücksichtigt.
- Fahrtpaarbezogene Umsteigezeiten
- Linienbezogene Umsteigezeiten am Bahnhof Aufsteigend nach Anzahl der Sternchen
- Verwaltungsbezogene Umsteigezeiten am Bahnhof
- Haltestellenbezogene Umsteigezeiten
- Linienbezogene Umsteigezeiten (global) Aufsteigend nach Anzahl der Sternchen
- Verwaltungsbezogene Umsteigezeiten (global)
- Standardumsteigezeit
umsteigb
Hier werden Umsteigezeiten für die einzelnden Haltestellen definiert.
Die erste Zeile (9999999 ZEIT_EINS ZEIT_ZWEI
) definiert die Standartumsteigezeit für alle nicht aufgeführten Haltestellen.
ZEIT_EINS
und ZEIT_ZWEI
sind die Umsteigezeit in min (0-60) von IC zu IC bzw. zwischen anderen Gattungen.
Die allgemein Form:
HALTESTELLENCODE ZEIT_EINS ZEIT_ZWEI HALTESTELLEN_NAME
umsteigv
Umsteigezeit zwischen Verwaltungsbereichen.
HALTESTELLENCODE VERWALTUNG_EINS VERWALTUNG_ZWEI MIN_UMSTEIGEZEIT (HALTESTELLENNAME)
@@@@@@@
gleich alle Haltestellen
umsteigl
Umseitegezeiten zwischen Buslinien an einer Haltestellen.
HALTESTELLENCODE VERWALTUNG_1 GATTUNG_1 LINIE_1 RICHTUNG_1 VERWATLUNG_2 GATTUNG_2 RICHTUNG_2 UMSTEIGEZEIT (HALTESTELLEN_NAME)
umsteigz
Umsteigezeiten für Züge die am selben Gleis ankommen.
HALTESTELLENCODE FAHRTNUMMER_1 VERWALTUNG_1 FAHRTNUMMER_2 VERWALTUNG_2 UMSTEIGEZEIT [EVTL-UNBEKANNTER_CODE] (HALTESTELLENNAME)