gleisschema
Gleischema: Übersetzung von Gleisnamen in Bahnhofnamen
Das Gleisschema ordnet den Gleisen einen Bahnsteig- und einen Bahnhofnamen zu. Anschlussgleisen ordnet es eine Anschlussstelle zu. Es ist mittels Konfigurationsdateien einstellbar.
Classes:
Functions:
-
alpha_prefix–Alphabetischen Anfang eines Namens extrahieren.
Gleisschema
Methods:
-
anschlussname–Anschlussname aus Gleisnamen ableiten.
-
bahnhofname–Bahnhofnamen aus Gleisnamen ableiten.
-
bahnsteigname–Bahnsteignamen aus Gleisnamen ableiten.
-
gleis_sektor_sortkey–Hauptgleis und Sektorgleis in Sortierschlüssel umwandeln.
-
gleisname_kurz–Gleisnamen abkürzen.
-
gleisname_sortkey–Gleisname in Sortierschlüssel umwandeln.
-
ist_einzel_anschluss–Prüft anhand von Schlüsselwörtern, ob das Gleis ein einfacher Anschluss ist.
-
regionsschema–Gleisschema anhand Region ermitteln und instanziieren.
Source code in stskit/model/gleisschema.py
anschlussname
Anschlussname aus Gleisnamen ableiten.
Es wird angenommen, dass der Bahnhofname aus den alphabetischen Zeichen am Anfang des Gleisnamens besteht.
Wenn der Gleisname keine alphabetischen Zeichen enthält oder eine Zeichenfolge aus EINZEL_ANSCHLUESSE im Gleisnamen vorkommt, wird der Gleisname unverändert zurückgegeben.
Parameters:
-
(gleisstr) –Gleisname.
Returns:
-
str–Anschlussname.
Source code in stskit/model/gleisschema.py
bahnhofname
Bahnhofnamen aus Gleisnamen ableiten.
Es gibt kein einheitliches Schema für Gleisnamen, aus dem sich der Bahnhofsname ableiten lässt. Diese Funktion implementiert daher eine Heuristik, die in den meisten Fällen einen brauchbaren Vorschlag liefert. Sie kann aber nicht alle Fälle korrekt verarbeiten, weil der Gleisname nicht genug Information enthält. Diese Fälle müssen manuell korrigiert werden.
Die Funktion testet folgende Regeln und gibt das Resultat der ersten passenden Regel aus:
- Wenn der Gleisname mit einer Ziffer beginnt: "Hbf".
- Wenn der Gleisname keine Ziffer enthält, den ganzen Gleisnamen.
- Rein alphabetischer Teil bis zum ersten Leerzeichen, auf das ein Wort folgt, das eine Ziffer enthält.
- Alphabetischer Teil bis zur ersten Ziffer.
Beispiele:
FSP503 -> FSP
NAH423b -> NAH
6 -> _Stellwerksname_
10C-D -> _Stellwerksname_
BSGB D73 -> BSGB
ZUE 12 -> ZUE
BR 1b -> BR
Lie W10 -> Lie
Muntelier-L. -> Muntelier-L.
VU3-5 -> VU
Isola della Scala 3G -> Isola della Scala
Beachte, dass Bahnhofs- und Gleisbezeichnungen Leerzeichen und Sonderzeichen enthalten können. In den folgenden Fällen (nicht abschliessend), liefert die Funktion nicht das gewünschte Ergebnis (in Klammern).
Brennero: R3 -> R (Hbf), N -> N (Hbf)
Drautal: Lie A1 -> Lie (Lie A1), Ma Wende R -> Ma Wende R (Ma)
Parameters:
-
(gleisstr) –Gleis- bzw. Bahnsteigname
Returns:
-
str–Bahnhofname
Source code in stskit/model/gleisschema.py
bahnsteigname
Bahnsteignamen aus Gleisnamen ableiten.
Der Bahnsteigname ist der Gruppenname von Gleissektoren. Diese Funktion liefert alle Zeichen aus dem Gleisnamen bis zur letzten Ziffer. Auf die Ziffer folgende nicht-numerische Zeichen werden ignoriert.
Bahnsteigname bezieht sich auf die Verwendung im Bahnhofgraphen und nicht auf den Bahnsteig in der Plugin-Schnittstelle.
Parameters:
-
(gleisstr) –Gleisname (Bahnsteigname in der Plugin-Schnittstelle)
Returns:
-
str–Bahnsteigname
Source code in stskit/model/gleisschema.py
gleis_sektor_sortkey
Hauptgleis und Sektorgleis in Sortierschlüssel umwandeln.
Parameters:
-
(gleis_sektorTuple[str, str]) –Tupel aus Hauptgleis und Sektorgleis. Sektorgleis, wie es im Fahrplan der Züge steht, Hauptgleis, wie es in der Anlagenkonfiguration steht.
Returns:
-
str–Tupel aus Präfix, Nummer, Suffix des Hauptgleises
-
int–und darauf folgend Präfix, Nummer, Suffix des Sektorgleises,
-
str–jeweils wie von gleisname_sortkey.
Source code in stskit/model/gleisschema.py
gleisname_kurz
Gleisnamen abkürzen.
Die Abkürzung wird in Grafiken verwendet, wo eine möglichst kurze Beschriftung verwendet werden soll. Das Resultat dieser Funktion ist nicht eindeutig und kann in der Programmlogik nicht als Gleisidentifikation verwendet werden.
Parameters:
-
(gleisstr) –Gleis- bzw. Bahnsteigname
Returns:
-
str–Gleisnummer (String), extrahiert aus Gleisnamen. Wenn der Gleisname eine Ziffer enthält, ist das der Substring ab der Ziffer bis zum Ende oder nächsten Leerzeichen, wenn der Gleisname keine Ziffer aber Leerzeichen enthält, der zweite Teilstring geliefert, ansonsten der unveränderte Gleisname.
Source code in stskit/model/gleisschema.py
gleisname_sortkey
Gleisname in Sortierschlüssel umwandeln.
Annahme: Gleisname setzt sich aus Präfix, Nummer und Suffix zusammen. Präfix und Suffix bestehen aus Buchstaben und Leerzeichen oder fehlen ganz. Präfix und Suffix können durch Leerzeichen von der Nummer abgetrennt sein, müssen aber nicht.
Parameters:
-
(gleisstr) –Gleisname, wie er im Fahrplan der Züge steht.
Returns:
Source code in stskit/model/gleisschema.py
ist_einzel_anschluss
Prüft anhand von Schlüsselwörtern, ob das Gleis ein einfacher Anschluss ist.
Zeigt True, wenn eine Zeichenfolge aus EINZEL_ANSCHLUESSE im Gleisnamen vorkommt.
Parameters:
-
(gleisstr) –Name des Anschlussgleises.
Returns:
-
bool–True, wenn eine Zeichenfolge aus EINZEL_ANSCHLUESSE im Gleisnamen vorkommt.
Source code in stskit/model/gleisschema.py
regionsschema
staticmethod
regionsschema(stellwerk: str, region: str) -> Gleisschema
Gleisschema anhand Region ermitteln und instanziieren.
Der Name des Schemas wird zunächst anhand des ersten Wortes der Region ermittelt (REGIONEN_SCHEMA). Anschliessend wird das in Gleisschema.REGISTRY registrierte Schema instanziiert. Wenn die Region nicht in der REGIONEN_SCHEMA-Liste enthalten ist, wird das Standardgleisschema verwendet.
Parameters:
Returns:
-
Gleisschema–Gleisschema
Source code in stskit/model/gleisschema.py
alpha_prefix
Alphabetischen Anfang eines Namens extrahieren.
Anfang des Namens bis zum ersten nicht-alphabetischen Zeichen (Ziffer, Leerzeichen, Sonderzeichen). Umlaute etc. werden als alphabetisch betrachtet. Leerer String, wenn keine alphabetischen Zeichen gefunden wurden.
Parameters:
-
(namestr) –Z.B. Gleisname.
Returns:
-
str–Resultat.