HAFAS - fingeg/AVV-HAFAS GitHub Wiki

ASEAG HAFAS v5.40 - 9-Stellig (AVVV_HAFAS_540.zip) Format

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 kann
  • HALTESTELLENZUGEHÖRIGKEIT: 0 = Fahrtabschnitt; 1 = Abfahrtshaltestelle; 2 = Ankunftshaltestelle
  • PRIORITÄT (0-999) und PRIORITÄT_FEIN (0-99) geben die Reihenfolge der Attribute an falls mehrere gesetzt wurden. So größer, desto unwichtiger
  • TEXT 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 Nahverkehr
  • B für Schiff

Zuschlag:

  • 0: Zuschlagsfrei
  • 1: Zuschlagpflicht kontextabhängig
  • 2: 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ßweg
    • 1: keine Ausgabe nur am Start und Ziel
    • 2: keine Ausgabe nur inmitten einer Verbindung
    • 3: nie Ausgeben
    • 4: 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 kann
  • PRIORITÄT (0-999) und PRIORITÄ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 VERKEHRSTAGen 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.

  1. Fahrtpaarbezogene Umsteigezeiten
  2. Linienbezogene Umsteigezeiten am Bahnhof Aufsteigend nach Anzahl der Sternchen
  3. Verwaltungsbezogene Umsteigezeiten am Bahnhof
  4. Haltestellenbezogene Umsteigezeiten
  5. Linienbezogene Umsteigezeiten (global) Aufsteigend nach Anzahl der Sternchen
  6. Verwaltungsbezogene Umsteigezeiten (global)
  7. 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)