Difference between revisions of "Module:Adjacent stations/Swiss Federal Railways"

From Railway Operation Simulator Wiki
Jump to navigation Jump to search
railos>Mackensen
(RE56 discontinued)
 
m (1 revision imported)
 

Latest revision as of 16:18, 4 January 2026

This is a data module for Module:Adjacent stations. It supports services operated by Swiss Federal Railways. It excludes services that are operated by SBB as part of S-bahn networks.

Lines

EuroCity

This module imports EuroCity definitions from Module:Adjacent stations/EuroCity. Changes to titles, colors, icons, and termini must be made there.

LineKeysColorHex colorIcon
EuroCity EC Basel-Milano   ff0000 SBB EC Logo.svg
EuroCity EC Frankfurt-Milano   ff0000 SBB EC Logo.svg
EuroCity EC Geneva-Milano   ff0000 SBB EC Logo.svg
EuroCity EC Hamburg-Interlaken   ff0000 SBB EC Logo.svg
EuroCity EC Hamburg-Zürich   ff0000 SBB EC Logo.svg
EuroCity EC Zürich-Graz   ff0000 SBB EC Logo.svg
EuroCity EC Zürich-Milano   ff0000 SBB EC Logo.svg
EuroCity EC Zürich-München   ff0000 SBB EC Logo.svg

InterCity and InterRegio

LineKeysColorHex colorIcon
IC 1 IC 1   e43d2e IC 1 logo.svg
IC 2 IC 2   8781bd IC 2 logo.svg
IC 3 IC 3   00984a IC 3 logo.svg
IC IC 4   c9a527 IC generic logo.svg
IC 5 IC 5   f7941d IC 5 logo.svg
IC 6 IC 6   8dc63f IC 6 logo.svg
IC 8 IC 8   009bdf IC 8 logo.svg
IC 21 IC 21   ffc80b IC 21 logo.svg
IC 51 IC 51   b01116 IC 51 logo.svg
IC 61 IC 61   ef59a1 IC 61 logo.svg
IC 81 IC 81   6aa2bb IC 81 logo.svg
IR 13 IR 13   2caeb3 IR 13 logo 2024.svg
IR 15 IR 15   11b895 IR 15 logo.svg
IR 16 IR 16   a07032 IR 16 logo.svg
IR 26 IR 26   af8889 IR 26 logo.svg
IR 27 IR 27   5b6e25 IR 27 logo.svg
IR 36 IR 36   ad227a IR 36 logo.svg
IR 37 IR 37   b8da89 IR 37 logo.svg
IR 55 IR 55   aba000 IR 55 logo.svg
IR 57 IR 57   7d8845 IR 57 logo.svg
IR 70 IR 70   f391bc IR 70 logo.svg
IR 75 IR 75   754c98 IR 75 logo.svg
IR 90 IR 90   007ca3 IR 90 logo.svg
IR 95 IR 95   842c71 IR 95 logo.svg

RegioExpress and Regio

LineKeysColorHex colorIcon
RE4 RE4   90b6e4 SBB RE Logo.svg
RE6 RE6 (AR)   548c9e SBB RE Logo.svg
RE6 RE6 (NE)   9d8a72 SBB RE Logo.svg
RE9 RE9   ce579f SBB RE Logo.svg
RE12 RE12   ff0000 SBB RE Logo.svg
RE24 RE24   6a7429 SBB RE Logo.svg
RE33 RE33   652400 SBB RE Logo.svg
RE37 RE37   f8a98e SBB RE Logo.svg
RE48 RE48   b8a770 SBB RE Logo.svg
RegioExpress RE Lausanne–St-Maurice   b14001 SBB RE Logo.svg
R13 R13   978ac2 SBB R Logo.svg
R16 R16   68ae43 SBB R Logo.svg
R20 R20   eed220 SBB R Logo.svg
R23 R23   8496ac SBB R Logo.svg
R41 R41   612082 SBB R Logo.svg
R42 R42   612082 SBB R Logo.svg

local ch = "%1 railway station (Switzerland)"
local hbf = "[[%1 Hauptbahnhof|%1 Hbf]]"
local stn = "%1 station"

local r = {
	["title"] = "[[Regio (Swiss railway train)|Regio]]",
	["icon"] = "[[File:SBB R Logo.svg|20px|link=Regio (Swiss railway train)]]",
}

local re = {
	["title"] = "[[RegioExpress]]",
	["icon"] = "[[File:SBB RE Logo.svg|20px|link=RegioExpress]]",
}

local p = {
	["system title"] = "[[Swiss Federal Railways|SBB CFF FFS]]",
	["system icon"] = "[[File:SBB logo simplified.svg|20px|link=Swiss Federal Railways]]",
	["system color"] = "ff0000",
	["station format"] = {
		"%1 railway station",
		["Altdorf"] = ch,
		["Biel/Bienne Bözingenfeld/Champ"] = "[[Biel/Bienne Bözingenfeld/Champ railway station|Biel/Bienne Bözingenfeld/​Champ]]",
		["Delle"] = stn,
		["Annemasse"] = stn,
		["Pontarlier"] = stn,
		["Frasne"] = stn,
		["Frankfurt (Main)"] = hbf,
		["Graz"] = hbf,
		["Meroux"] = "Belfort – Montbéliard TGV station",
		["München"] = hbf,
		["Rheinfelden"] = ch,
		["Sion"] = ch,
		["Stuttgart"] = hbf,
		["Zürich"] = "[[Zürich Hauptbahnhof|Zürich HB]]",
		["Zürich HB"] = "[[Zürich Hauptbahnhof|Zürich HB]]",
		["Zürich Hauptbahnhof"] = "%1",
	},
	["name format"] = "font-size:160%; font-family:Helvetica; font-weight:bolder; font-kerning:auto; font-stretch:expanded; color:#FFFFFF; background-color:#0E3984;  padding:0.5em 4px; text-align:center; align-items:center;",
	["header background color"] = "EB1A00",
	["header text color"] = "FFFFFF",
	["lines"] = {
		["_default"] = {
			["color"] = "ff0000",	
		},
		-- InterCity services
		["IC 1"] = {
			["title"] = "[[InterCity (Switzerland)|IC 1]]",
			["color"] = "e43d2e",
			["left terminus"] = "Geneva Airport",
			["right terminus"] = "St. Gallen",
			["icon"] = "[[File:IC 1 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 2"] = {
			["title"] = "[[InterCity (Switzerland)|IC 2]]",
			["color"] = "8781bd",
			["left terminus"] = "Zürich HB",
			["right terminus"] = "Lugano",
			["icon"] = "[[File:IC 2 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 3"] = {
			["title"] = "[[InterCity (Switzerland)|IC 3]]",
			["color"] = "00984a",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Chur",
			["icon"] = "[[File:IC 3 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		-- At least for 2023 the IC 4 lost its number
		["IC 4"] = {
			["title"] = "[[InterCity (Switzerland)|IC]]",
			["color"] = "c9a527",
			["left terminus"] = "Zürich HB",
			["right terminus"] = "Stuttgart",
			["icon"] = "[[File:IC generic logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 5"] = {
			["title"] = "[[InterCity (Switzerland)|IC 5]]",
			["color"] = "f7941d",
			["left terminus"] = "Lausanne",
			["right terminus"] = {"Zürich HB", "St. Gallen", "Rorschach"},
			["icon"] = "[[File:IC 5 logo.svg|40px|link=InterCity (Switzerland)]]",
			["types"] = {
				["St. Gallen"] = {
					["title"] = "",
					["right terminus"] = {"St. Gallen", "Rorschach"},
				},
				["Rorschach"] = {
					["title"] = "",
					["right terminus"] = "Rorschach",
				},
				["Zürich"] = {
					["title"] = "",
					["right terminus"] = {"Zürich HB", "St. Gallen"},	
				},
			}
		},
		["IC 6"] = {
			["title"] = "[[InterCity (Switzerland)|IC 6]]",
			["color"] = "8dc63f",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Brig",
			["icon"] = "[[File:IC 6 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 8"] = {
			["title"] = "[[InterCity (Switzerland)|IC 8]]",
			["color"] = "009bdf",
			["left terminus"] = "Brig",
			["right terminus"] = "Romanshorn",
			["icon"] = "[[File:IC 8 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 21"] = {
			["title"] = "[[InterCity (Switzerland)|IC 21]]",
			["color"] = "ffc80b",
			["text color"] = "000000",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Lugano",
			["icon"] = "[[File:IC 21 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 51"] = {
			["title"] = "[[InterCity (Switzerland)|IC 51]]",
			["color"] = "b01116",
			["left terminus"] = "Lausanne",
			["right terminus"] = "Basel SBB",
			["icon"] = "[[File:IC 51 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 61"] = {
			["title"] = "[[InterCity (Switzerland)|IC 61]]",
			["color"] = "ef59a1",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Interlaken Ost",
			["icon"] = "[[File:IC 61 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["IC 81"] = {
			["title"] = "[[InterCity (Switzerland)|IC 81]]",
			["color"] = "6aa2bb",
			["left terminus"] = "Interlaken Ost",
			["right terminus"] = "Romanshorn",
			["icon"] = "[[File:IC 81 logo.svg|40px|link=InterCity (Switzerland)]]",
		},
		["Zürich–Bern"] = {
			["title"] = "[[InterCity (Switzerland)|IC]]",
			["left terminus"] = "Bern",
			["right terminus"] = "Zürich HB",
			["icon"] = "[[File:SBB IC Logo.svg|20px|link=InterCity (Switzerland)]]",
		},	
		-- IR (InterRegio)
		["IR 13"] = {
			["title"] = "[[InterRegio|IR 13]]",
			["color"] = "2caeb3",
			["text color"] = "000000",
			["left terminus"] = "Zürich HB",
			["right terminus"] = "Sargans",
			["icon"] = "[[File:IR 13 logo 2024.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 15"] = {
			["title"] = "[[InterRegio|IR 15]]",
			["color"] = "11b895",
			["left terminus"] = "Geneva Airport",
			["right terminus"] = "Lucerne",
			["icon"] = "[[File:IR 15 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 16"] = {
			["title"] = "[[InterRegio|IR 16]]",
			["color"] = "a07032",
			["left terminus"] = "Bern",
			["right terminus"] = "Zürich HB",
			["icon"] = "[[File:IR 16 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 26"] = {
			["title"] = "[[InterRegio|IR 26]]",
			["color"] = "af8889",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Airolo",
			["icon"] = "[[File:IR 26 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 27"] = {
			["title"] = "[[InterRegio|IR 27]]",
			["color"] = "5b6e25",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Lucerne",
			["icon"] = "[[File:IR 27 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 36"] = {
			["title"] = "[[InterRegio|IR 36]]",
			["color"] = "ad227a",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Zürich Airport",
			["icon"] = "[[File:IR 36 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 37"] = {
			["title"] = "[[InterRegio|IR 37]]",
			["color"] = "b8da89",
			["text color"] = "000000",
			["left terminus"] = "Basel SBB",
			["right terminus"] = "Zürich HB",
			["icon"] = "[[File:IR 37 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 55"] = {
			["title"] = "[[InterRegio|IR 55]]",
			["color"] = "aba000",
			["left terminus"] = "Biel/Bienne",
			["right terminus"] = "Zürich HB",
			["icon"] = "[[File:IR 55 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 57"] = {
			["title"] = "[[InterRegio|IR 57]]",
			["color"] = "7d8845",
			["left terminus"] = "Geneva Airport",
			["right terminus"] = "Neuchâtel",
			["icon"] = "[[File:IR 57 logo.svg|40px|link=InterRegio#Switzerland]]",
		},	
		["IR 70"] = {
			["title"] = "[[InterRegio|IR 70]]",
			["color"] = "f391bc",
			["text color"] = "000000",
			["left terminus"] = "Lucerne",
			["right terminus"] = "Zürich HB",
			["icon"] = "[[File:IR 70 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 75"] = {
			["title"] = "[[InterRegio|IR 75]]",
			["color"] = "754c98",
			["left terminus"] = "Lucerne",
			["right terminus"] = "Konstanz",
			["icon"] = "[[File:IR 75 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 90"] = {
			["title"] = "[[InterRegio|IR 90]]",
			["color"] = "007ca3",
			["left terminus"] = "Geneva Airport",
			["right terminus"] = "Brig",
			["icon"] = "[[File:IR 90 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["IR 95"] = {
			["title"] = "[[InterRegio|IR 95]]",
			["color"] = "842c71",
			["left terminus"] = "Geneva Airport",
			["right terminus"] = "Brig",	
			["icon"] = "[[File:IR 95 logo.svg|40px|link=InterRegio#Switzerland]]",
		},
		["Brig–Domodossola"] = {
			["title"] = "[[InterRegio|IR]]",
			["left terminus"] = "Brig",
			["right terminus"] = "Domodossola",
			["icon"] = "[[File:SBB IR Logo.svg|20px|link=InterRegio#Switzerland]]",
		},

		-- R (Regio)
		["R13"] = {
			["title"] = "[[Regio (Swiss railway train)|R13]]",
			["color"] = "978ac2",
			["icon"] = r.icon,
			["left terminus"] = "Yverdon-les-Bains",
			["right terminus"] = "Biel/Bienne",					
		},
		["R16"] = {
			["title"] = "[[Regio (Swiss railway train)|R16]]",
			["color"] = "68ae43",
			["icon"] = r.icon,
			["left terminus"] = "Neuchâtel",
			["right terminus"] = "Biel/Bienne",					
		},
		["R20"] = {
			["title"] = "[[Regio (Swiss railway train)|R20]]",
			["color"] = "eed220",
			["icon"] = r.icon,
			["left terminus"] = "Le Locle",
			["right terminus"] = "La Chaux-de-Fonds",
		},
		["R23"] = {
			["title"] = "[[Regio (Swiss railway train)|R23]]",
			["color"] = "8496ac",
			["icon"] = r.icon,
			["left terminus"] = "Corcelles-Peseux",
			["right terminus"] = "Neuchâtel",					
		},
		["R41"] = {
			["title"] = "[[Regio (Swiss railway train)|R41]]",
			["color"] = "612082",
			["icon"] = r.icon,
			["left terminus"] = {"La Chaux-de-Fonds", "Moutier"},
			["right terminus"] = "Biel/Bienne",
			["types"] = {
				["La Chaux-de-Fonds"] = {
					["title"] = "",
					["left terminus"] = "La Chaux-de-Fonds",
				},
				["Moutier"] = {
					["title"] = "",
					["left terminus"] = "Moutier",
				},
			},
		},
		["R42"] = {
			["title"] = "[[Regio (Swiss railway train)|R42]]",
			["color"] = "612082",
			["icon"] = r.icon,
			["left terminus"] = {"Malleray-Bévilard", "Moutier"},
			["right terminus"] = "Biel/Bienne",
			["types"] = {
				["Moutier"] = {
					["title"] = "",
					["color"] = "00713e",
					["background color"] = "transparent",
					["left terminus"] = "Moutier",
					["right terminus"] = "Sonceboz-Sombeval",
				},
			},
		},	

		-- RE (RegioExpress)
		["RE4"] = {
			["title"] = "[[RegioExpress|RE4]]",
			["color"] = "90b6e4",
			["icon"] = re.icon,
			["left terminus"] = "La Chaux-de-Fonds",
			["right terminus"] = "Biel/Bienne",					
		},
		["RE6 (NE)"] = {
			["title"] = "[[RegioExpress|RE6]]",
			["short name"] = "RE6",
			["color"] = "9d8a72",
			["icon"] = re.icon,
			["left terminus"] = "Le Locle",
			["right terminus"] = "Neuchâtel",					
		},
		["RE6 (AR)"] = {
			["title"] = "[[RegioExpress|RE6]]",
			["color"] = "548c9e",
			["note-mid"] = "Limited service",
			["short name"] = "RE6",
			["icon"] = re.icon,
			["left terminus"] = "Olten",
			["right terminus"] = "Arth-Goldau",					
		},
		["RE9"] = {
			["title"] = "[[RegioExpress|RE9]]",
			["color"] = "ce579f",
			["icon"] = re.icon,
			["left terminus"] = "Frasne",
			["right terminus"] = "Neuchâtel",					
		},
		["RE12"] = {
			["title"] = "[[RegioExpress|RE12]]",
			["icon"] = re.icon,
			["left terminus"] = "Olten",
			["right terminus"] = "Wettingen",
		},
		["RE24"] = {
			["title"] = "[[RegioExpress|RE24]]",
			["icon"] = re.icon,
			["color"] = "6a7429",
			["left terminus"] = "Olten",
			["right terminus"] = "Lucerne",
		},
		["RE33"] = {
			["title"] = "[[RegioExpress|RE33]]",
			["color"] = "652400",
			["icon"] = re.icon,
			["left terminus"] = {"Annemasse", "Geneva Airport"},
			["right terminus"] = {"St-Maurice", "Martigny"},
			["types"] = {
				["Annemasse"] = {
					["title"] = "",
					["left terminus"] = {"St-Maurice", "Martigny"},
					["right terminus"] = "Annemasse",
				},
			},
		},
		["RE37"] = {
			["title"] = "[[RegioExpress|RE37]]",
			["icon"] = re.icon,
			["color"] = "f8a98e",
			["left terminus"] = "Aarau",
			["right terminus"] = "Zürich HB",
		},
		["RE48"] = {
			["title"] = "[[RegioExpress|RE48]]",
			["icon"] = re.icon,
			["color"] = "b8a770",
			["left terminus"] = "Zürich HB",
			["right terminus"] = "Schaffhausen",
		},
		["RE Lausanne–St-Maurice"] = {
			["title"] = re.title,
			["color"] = "b14001",
			["icon"] = re.icon,
			["left terminus"] = "Lausanne",
			["right terminus"] = "St-Maurice",	
			["note-mid"] = "Limited service",
		},

		-- S-bahn lines in Solothurn
		["S20"] = {
			["title"] = "S20",
			["color"] = "ec008c",
			["text color"] = "FFFFFF",
			["left terminus"] = {"Biel/Bienne", "Oberdorf SO"},
			["right terminus"] = "Olten",	
		},
		["S21"] = {
			["title"] = "S21",
			["color"] = "b23d00",
			["text color"] = "FFFFFF",
			["left terminus"] = "Oberdorf SO",
			["right terminus"] = "Solothurn",	
		},
		["S22"] = {
			["title"] = "[[Oensingen–Balsthal railway line|S22]]",
			["color"] = "3b6199",
			["text color"] = "FFFFFF",
			["left terminus"] = "Oensingen",
			["right terminus"] = "Balsthal",	
		},
		-- Seasonal service
		["Verbier Express"] = {
			["title"] = "''Verbier Express''",
			["left terminus"] = "Geneva Airport",
			["right terminus"] = "Le Châble VS",
		},
		["VosAlpes Express"] = {
			["title"] = "''VosAlpes Express''",
			["left terminus"] = "Fribourg/Freiburg",
			["right terminus"] = "Le Châble VS",
		},	
		-- Disambiguation entries
		["RE6"] = {
			["title"] = "[[RE6 (disambiguation)|RE6]]",
			["color"] = "999999",
		}
		
	},
	["aliases"] = {
		["r le locle–la chaux-de-fonds"] = "R20",
		["r la chaux-de-fonds/moutier–biel/bienne"] = "R41",
		["re la chaux-de-fonds–biel/bienne"] = "RE4",
	}
}

-- Import EuroCity services
local ec = require('Module:Adjacent stations/EuroCity')
local ec_lines = {
	"EC Basel-Milano",
	"EC Frankfurt-Milano",
	"EC Geneva-Milano",
	"EC Hamburg-Interlaken",
	"EC Hamburg-Zürich",
	"EC Zürich-Graz",
	"EC Zürich-Milano",
	"EC Zürich-München"
}

for k, v in pairs(ec_lines) do
	p["lines"][v] = ec["lines"][v]
	p["lines"][v]["icon"] = "[[File:SBB EC Logo.svg|20px|link=EuroCity]]"
	p["lines"][v]["color"] = "ff0000"
end

return p