signalgraph
Classes:
-
SignalGraph–Signale, Weichen, Gleise und ihre Verbindungen.
-
SignalGraphUngerichtet–Ungerichtete Variante von SignalGraph
Functions:
-
graph_anschluesse_pruefen–Kanten von Anschlüssen prüfen und vereinfachen.
-
graph_bahnsteigsignale_ersetzen–Bahnsteig-Signal-Kombinationen durch Bahnsteige ersetzen.
-
graph_gleise_zuordnen–Gleise in Graph zu Gruppen zusammenfassen.
-
graph_mehrdeutige_strecke_abgleichen–Mehrdeutige Strecke mit Zugrouten abgleichen.
-
graph_mehrdeutige_strecken–Findet mehrdeutige Streckenabschnitte.
-
graph_signalpaare_ersetzen–Signalpaare kontrahieren.
-
graph_weichen_ersetzen–Weichen durch Kanten ersetzen.
-
graph_zwischensignale_entfernen–Einzelne Signale zwischen Bahnsteigen durch Kanten ersetzen.
SignalGraph
flowchart TD
stskit.model.signalgraph.SignalGraph[SignalGraph]
click stskit.model.signalgraph.SignalGraph href "" "stskit.model.signalgraph.SignalGraph"
Signale, Weichen, Gleise und ihre Verbindungen.
Der Signalgraph enthält das Gleisbild aus der Wegeliste der Plugin-Schnittstelle mit sämtlichen Knoten und Kanten. Das 'typ'-Attribut wird auf den sts-Knotentyp (int) gesetzt. Kanten werden entsprechend der Nachbarrelationen aus der Wegeliste ('typ'-attribut 'gleis') gesetzt. Der Graph ist gerichtet, da die Nachbarbeziehung i.a. nicht reziprok ist. Die Kante zeigt auf die Knoten, die als Nachbarn aufgeführt sind. Meist werden von der Schnittstelle jedoch Kanten in beide Richtungen angegeben, weshalb z.B. nicht herausgefunden werden kann, für welche Richtung ein Signal gilt.
Die Signaldistanz wird am Anfang auf 1 gesetzt.
Methods:
-
wege_importieren–Signalgraph aus Knotenliste erstellen.
wege_importieren
Signalgraph aus Knotenliste erstellen.
Der Graph wird gelöscht und aus der Knotenliste neu aufgebaut. Die Knotenliste kommt von der Pluginschnittstelle.
Parameters:
Source code in stskit/model/signalgraph.py
SignalGraphUngerichtet
flowchart TD
stskit.model.signalgraph.SignalGraphUngerichtet[SignalGraphUngerichtet]
click stskit.model.signalgraph.SignalGraphUngerichtet href "" "stskit.model.signalgraph.SignalGraphUngerichtet"
Ungerichtete Variante von SignalGraph
Der ursprüngliche SignalGraph ist gerichtet. Für Algorithmen die nur auf ungerichteten Graphen arbeiten, kann er in die ungerichtete Variante SignalGraphUngerichtet verwandelt werden.
graph_anschluesse_pruefen
graph_anschluesse_pruefen(g: Graph) -> Graph
Kanten von Anschlüssen prüfen und vereinfachen.
Anschlüsse sollten wenn möglich mit Signalen verbunden sein. Direkte Verbindungen zu Bahnsteigen werden entfernt, außer es liegen keine Signale in der Nachbarschaft.
Parameters:
-
(gGraph) –Ungerichteter Graph.
Returns:
-
Graph–Graph
gmit geänderten Anschlüssen.
Source code in stskit/model/signalgraph.py
graph_bahnsteigsignale_ersetzen
graph_bahnsteigsignale_ersetzen(g: Graph) -> Graph
Bahnsteig-Signal-Kombinationen durch Bahnsteige ersetzen.
Vereinfacht die Gleisanlage, indem Signale in der Nachbarschaft von Bahnsteigen und Haltepunkten entfernt werden. Die von den betroffenen Signalen ausgehenden Kanten werden durch direkte Kanten der jeweiligen Partner ersetzt.
Die Funktion hat zum Zweck, dass in der vereinfachten Gleisanlage Pfade nicht an den Bahnsteigen vorbeiführen.
Parameters:
-
(gGraph) –Ungerichteter Graph.
Returns:
-
Graph–Graph
gmit ersetzten Weichen.
Source code in stskit/model/signalgraph.py
graph_gleise_zuordnen
graph_gleise_zuordnen(g: Graph, gleiszuordnung: dict[str, str]) -> Graph
Gleise in Graph zu Gruppen zusammenfassen.
Parameters:
-
(gGraph) –Signalgraph, Gleisgraph oder ähnlicher Graph.
-
(gleiszuordnungdict[str, str]) –Mapping Gleisname zu Gruppenname.
Returns:
-
Graph–Graph g mit zugeordneten Gleisen.
Source code in stskit/model/signalgraph.py
graph_mehrdeutige_strecke_abgleichen
graph_mehrdeutige_strecke_abgleichen(g: Graph, strecke: Sequence[str], routen: Sequence[Sequence[str]]) -> Graph
Mehrdeutige Strecke mit Zugrouten abgleichen.
Wenn die Reihenfolge der Stationen auf einer Strecke nicht eindeutig bestimmt werden kann, bleiben im Gleisgraphen Schleifen zurück. Diese Funktion versucht, die Reihenfolge anhand von bekannten Zugläufen zu bestimmen. Wenn ein Zug alle Stationen der Strecke anfährt, werden diese Kanten im Graphen belassen und alle unbedienten in der Nachbarschaft entfernt.
Parameters:
-
(gGraph) –Gleisgraph oder ähnlich.
-
(streckeSequence[str]) –Sequenz von Stationen, deren Reihenfolge abgeglichen werden soll.
-
(routenSequence[Sequence[str]]) –Liste von Routen. Jede Route besteht aus einer Sequenz von Stationsnamen im Graphen g.
Returns:
-
Graph–Modifizierter Graph g.
Source code in stskit/model/signalgraph.py
graph_mehrdeutige_strecken
Findet mehrdeutige Streckenabschnitte.
In mehrdeutigen Streckenabschnitten ist die Reihenfolge von Stationen aus dem Signalgraph unklar. Im Graphen erscheinen sie als Schleifen, meistens Dreiecke.
Parameters:
-
(gGraph) –Signal-Graph, Gleis-Graph oder ähnlicher Graph.
-
(max_knotenint, default:3) –Filtert Abschnitte mit mehr als einer maximalen Knotenzahl heraus, wenn längere Schleifen nicht gemeldet werden sollen.
Returns:
Source code in stskit/model/signalgraph.py
graph_signalpaare_ersetzen
graph_signalpaare_ersetzen(g: Graph) -> Graph
Signalpaare kontrahieren.
Signale, die mit einem anderen Signal verbunden sind, werden durch ein einzelnes ersetzt.
Parameters:
-
(gGraph) –Ungerichteter Graph.
Returns:
-
Graph–Graph
gmit ersetzten Signalpaaren.
Source code in stskit/model/signalgraph.py
graph_weichen_ersetzen
graph_weichen_ersetzen(g: Graph) -> Graph
Weichen durch Kanten ersetzen.
Vereinfacht die Gleisanlage, indem Weichen durch direkte Kanten der Nachbarknoten ersetzt werden.
Parameters:
-
(gGraph) –Ungerichteter Graph.
Returns:
-
Graph–Graph
gmit ersetzten Weichen.
Source code in stskit/model/signalgraph.py
graph_zwischensignale_entfernen
graph_zwischensignale_entfernen(g: Graph) -> Graph
Einzelne Signale zwischen Bahnsteigen durch Kanten ersetzen.
Parameters:
-
(gGraph) –Ungerichteter Graph.
Returns:
-
Graph–Graph
gmit entfernten Signalen.