3 Commits

11 changed files with 1143 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
{
"yaml.schemas": {
"./static/mapFiles/yaml/mapFiles.schema.json": "static/mapFiles/yaml/*.yaml"
"./static/mapFiles/yaml/mapFiles.schema.json": "static/mapFiles/yaml/*.yaml",
"./static/stations/stationFiles.schema.json": "static/stations/*.yaml"
},
"yaml.format.enable": true,
"yaml.validate": true,

View File

@@ -33,8 +33,8 @@ routeDetail:
direction: down
name: Westbury Line Jn
description: to Oxford Road Jn
goto: "0201"
entryPoint: "oxford-road-jn"
goto: "0210"
entryPoint: "westbury-line-jn"
miles: 36
chains: 17
@@ -43,7 +43,7 @@ routeDetail:
direction: down
name: Caversham Road Jn
description: Reading Feeder Main/Relief diverge and pass under Reading Viaduct to Oxford Rd Jn
goto: "0201"
goto: "0210"
entryPoint: "oxford-road-jn"
miles: 36
chains: 22
@@ -65,7 +65,7 @@ routeDetail:
direction: up
name: Reading West Jn
description: to Oxford Road Junction (From relief lines only)
goto: "0201"
goto: "0210"
entryPoint: "oxford-road-jn"
miles: 37
chains: 17
@@ -445,6 +445,8 @@ routeDetail:
diverges: right
direction: up
description: Up/Dn Trowbridge towards Westbury
goto: "0260"
entryPoint: bathampton-jn
miles: 104
chains: 45

View File

@@ -0,0 +1,662 @@
routeStart: Westbury Line Jn
routeEnd: Cogload Jn
routeId: "0210"
updated: 2026-03-05
checked: 2026-03-05
signallerStart: TVSC Reading WS
signallerEnd: Exeter PSB
elecStart:
elec: 25kvac
eco: Didcot (TVSC)
elecEnd:
elec: none
routeDetail:
- type: continues
routeName: Reading - Bristol TM
routeId: "0002"
entryPoint: westbury-line-jn
- type: junction
name: Westbury Line Jn
diverges: left
direction: down
description: towards Didcot
goto: "0002"
entryPoint: westbury-line-jn
miles: 36
chains: 17
- type: signallerChange
from: TVSC Reading WS (T)
to: TVSC West Jn WS (T)
miles: 36
chains: 20
- type: junction
name: Oxford Road Jn
diverges: left
direction: up
description: to Caversham Rd Jn & Reading West Jn
goto: "0002"
entryPoint: caversham-road-jn
miles: 36
chains: 67
- type: station
name: Reading West
miles: 36
chains: 75
- type: junction
name: Southcote Jn
diverges: right
direction: down
description: to Basingstoke
miles: 37
chains: 62
- type: signallerChange
from: TVSC West Jn WS (T)
to: TVSC Newbury WS (T)
miles: 38
chains: 75
- type: crossing
name: Drakes No.2 Crossing
kind: uwc
miles: 40
chains: 63
- type: loop
name: Theale Goods Loop (Up & Dn BiDi)
position: left
miles: 41
chains: 27
- type: station
name: Theale
description: Temporary Platform 3 on Theale Goods Loop (OOU)
miles: 41
chains: 22
- type: siteof
name: Theale Sidings
description: Stone & Oil terminals
miles: 41
chains: 62
- type: crossing
name: Wigmore Lane Crossing
kind: foot
miles: 41
chains: 6
- type: loop
position: right
name: Down Towney Loop
miles: 43
chains: 50
- type: crossing
name: Towney Level Crossing
kind: uwc
miles: 44
chains: 11
- type: station
name: Aldermaston
miles: 44
chains: 61
- type: crossing
name: Wickham Knights Level Crossing
kind: omsl
miles: 46
chains: 16
- type: crossing
name: Midgham Level Crossing
kind: CCTV
description: CCTV by Colthrop
miles: 46
chains: 56
- type: station
name: Midgham
miles: 46
chains: 59
- type: crossing
name: Compeday Level Crossing
kind: uwc
miles: 47
chains: 8
- type: crossing
name: Crannel's Level Crossing
kind: uwc
miles: 47
chains: 47
- type: crossing
name: Colthrop Level Crossing
kind: mcb
miles: 48
chains: 75
- type: station
name: Thatcham
miles: 49
chains: 45
- type: crossing
name: Thatcham Level Crossing
miles: 49
chains: 51
kind: CCTV
description: CCTV by Colthrop
- type: crossing
name: Widemeads Crossing
kind: foot
miles: 51
chains: 1
- type: crossovers
name: Newbury Racecource GF
description: Newbury Loop line & Engineers Sidings
miles: 52
chains: 13
- type: station
name: Newbury Racecourse
miles: 52
chains: 31
- type: station
name: Newbury
miles: 53
chains: 6
- type: electrificationChange
from:
elec: 25kvac
eco: Didcot
to:
elec: none
miles: 53
chains: 42
- type: crossing
name: Hamstead Level Crossing
kind: CCTV
description: CCTV by Kintbury
miles: 56
chains: 9
- type: crossing
name: Wilderness Crossing
kind: foot
miles: 58
chains: 6
- type: station
name: Kintbury
miles: 58
chains: 38
- type: crossing
name: Kintbury Level Crossing
kind: mcb
miles: 58
chains: 42
- type: crossing
name: Brunsdon Lock Crossing
kind: foot
miles: 59
chains: 39
- type: loop
name: Hungerford Up Loop
position: left
miles: 60
chains: 50
- type: station
name: Hungerford
miles: 61
chains: 43
- type: crossing
name: Hungerford Level Crossing
kind: CCTV
description: CCTV by Kintbury
miles: 61
chains: 47
- type: crossing
name: Stadlers Crossing
kind: foot
miles: 62
chains: 70
- type: crossing
name: Fairfield Crossing
kind: uwc
miles: 64
chains: 67
- type: crossing
name: Wansdyke Crossing
kind: uwc
miles: 66
chains: 2
- type: crossing
kind: foot
name: Bedwyn Crossing
miles: 66
chains: 2
- type: station
name: Bedwyn
miles: 66
chains: 22
- type: junction
name: Bedwyn Turnback Siding
diverges: left
direction: down
miles: 66
chains: 40
- type: crossing
name: Church Crossing
miles: 66
chains: 55
kind: foot
- type: crossing
name: Beech Drive Crossing
kind: uwc
miles: 67
chains: 32
- type: crossing
name: Crofton Level Crossing
kind: r/g
miles: 68
chains: 4
- type: crossing
name: Ram Alley Crossing
kind: foot
miles: 71
chains: 25
- type: crossing
name: Milton Lilbourne Crossing
kind: foot
miles: 73
chains: 17
- type: crossing
name: Pewsey Crossing
kind: foot
miles: 75
chains: 0
- type: station
name: Pewsey
miles: 75
chains: 26
- type: crossing
name: Sharcott Crossing
kind: foot
miles: 76
chains: 33
- type: crossing
name: Manningford Crossing
kind: foot
miles: 76
chains: 69
- type: crossing
name: Frith Crossing
kind: foot
miles: 77
chains: 7
- type: crossing
name: Chard's Crossing
kind: foot
miles: 77
chains: 42
- type: crossing
name: Bottesford Crossing
miles: 78
chains: 43
kind: foot
- type: loop
position: both
name: Woodborough Goods Loops
description: Up Loop gives access to Sidings
miles: 79
chains: 0
- type: crossing
name: Beechingstoke Crossing
kind: foot
miles: 80
chains: 5
- type: crossing
name: Stoner Bridleway Crossing
kind: foot
miles: 82
chains: 4
- type: crossing
name: Stert Crossing
kind: foot
miles: 83
chains: 22
- type: crossing
name: Urchfont Crossing
kind: foot
miles: 83
chains: 43
- type: crossing
name: Easterton Crossing
kind: foot
miles: 85
chains: 42
- type: crossing
name: Parham Wood Crossing
kind: foot
miles: 85
chains: 59
- type: siteof
name: Lavington
description: Former station
miles: 86
chains: 50
- type: crossing
name: Edington Crossing
kind: foot
miles: 90
chains: 25
- type: signallerChange
from: TVSC Newbury WS (T)
to: Westbury PSB (W)
miles: 90
chains: 65
- type: crossing
name: Bratton Level Crossing
kind: uwc
miles: 92
chains: 56
- type: crossing
name: Bratton Crossing
kind: foot
miles: 93
chains: 12
- type: junction
name: Heywood Road Jn
diverges: left
direction: down
goto: "0260"
entryPoint: hawkeridge-jn
description: to East Loop Jn/Westbury North Jn/Hawkeridge Jn
miles: 94
chains: 45
- type: crossing
name: Penleigh Park
kind: msl
miles: 95
chains: 49
- type: crossing
name: Eden Vale Crossing
kind: foot
miles: 96
chains: 38
- type: junction
name: Fairwood Jn
description: to Westbury South Jn (Mileage Change)
diverges: left
direction: up
goto: "0260"
entryPoint: westbury-south-jn
miles: 97
chains: 2
- type: crossing
name: Masters Crossing
kind: uwc
miles: 111
chains: 53
- type: junction
name: Clink Road Jn
description: Frome Avoiding Lines to Blatchbridge Jn
miles: 114
chains: 44
diverges: right
direction: down
- type: junction
name: Frome North Jn
description: to Whatley Quarry
diverges: left
direction: down
miles: 115
chains: 19
- type: station
name: Frome
miles: 115
chains: 44
- type: crossing
name: River Frome Crossing
kind: foot
miles: 116
chains: 15
- type: junction
name: Blatchbridge Jn
diverges: right
direction: up
description: Frome Avoiding lines to Clink Road Jn
miles: 116
chains: 52
- type: crossing
name: Palmer's Lane Foot Crossing
kind: foot
miles: 118
chains: 45
- type: crossing
name: Singer's Foot Crossing
kind: foot
miles: 119
chains: 70
- type: junction
name: East Somerset Jn
diverges: left
direction: down
description: To Merehead Qurry & East Somerset Rly
miles: 120
chains: 73
- type: crossing
name: Denning's Crossing
kind: uwc
miles: 122
chains: 1
- type: crossing
name: Brewham Foot Crossing
kind: foot
miles: 123
chains: 60
- type: station
name: Bruton
miles: 126
chains: 9
- type: crossing
name: Ansford Foot Crossing
kind: foot
miles: 128
chains: 62
- type: station
name: Castle Cary
miles: 129
chains: 45
description: Plaftorm 3 to Yeovil Only
- type: junction
name: Castle Cary Jn
description: Up/Dn Weymouth to Yeovil
direction: down
diverges: right
goto: "2150"
entryPoint: castle-cary-jn
miles: 129
chains: 50
- type: crossing
name: Parsonage Farm Crossing
kind: uwc
miles: 117
chains: 10
- type: crossing
name: Lovington Foot Crossing
kind: foot
miles: 117
chains: 67
- type: crossing
name: Wheathill Foot Crossing
kind: foot
miles: 119
chains: 7
- type: crossing
name: Lydford-on-Fosse Foot Crossing
kind: foot
miles: 119
chains: 72
- type: junction
name: Somerton GF
diverges: left
direction: down
description: Siding
miles: 126
chains: 11
- type: crossing
name: Somerton No.1 Foot Crossing
kind: foot
miles: 126
chains: 15
- type: tunnel
name: Somerton Tunnel
tunnelType: whole
length: 0mi 1053yd
miles: 127
chains: 0
- type: signallerChange
from: Westbury PSB (W)
to: Exeter PSB (E)
miles: 127
chains: 27
- type: crossing
name: Windmill Lane Foot Crossing
kind: foot
miles: 128
chains: 50
- type: crossing
name: Somerton No.2 Foot Crossing
kind: foot
miles: 129
chains: 43
- type: crossing
name: Aller 1/1 Foot Crossing
kind: foot
miles: 132
chains: 16
- type: crossing
name: Holly Moor Crossing
kind: uwc
miles: 133
chains: 31
- type: crossing
kind: foot
name: Stanmoor Foot Crossing
miles: 133
chains: 70
- type: crossing
name: Athelney Level Crossing
kind: AHB
miles: 134
chains: 78
- type: crossing
name: Cutts Drove Crossing
kind: uwc
miles: 135
chains: 0
- type: crossing
name: Athelney Foot Crossing
kind: foot
miles: 135
chains: 21
- type: junction
name: Cogload Jn
diverges: left
direction: up
miles: 138
chains: 3
goto: "0003"
entryPoint: cogload-jn
- type: continues
routeName: Bristol TM - Exeter SD
routeId: "0003"
entryPoint: cogload-jn

View File

@@ -1 +0,0 @@
# Reading - Taunton (via Westbury Line Jn)

View File

@@ -241,11 +241,11 @@ routeDetail:
- type: junction
name: Westbury South Jn
diverges: left
diverges: right
direction: down
description: Up/Dn Main to Fairwood Jn
goto: "0210"
entryPoint: "fairwood-jn"
description: Up/Dn Salisbury towards Warminster
goto: "0261"
entryPoint: "westbury-south-jn"
miles: 110
chains: 7
@@ -256,6 +256,6 @@ routeDetail:
chains: 50
- type: continues
routeName: Westbury - Southampton Ctl
routeId: "0265"
entryPoint: westbury
routeName: to Fairwood Jn (Reading - Taunton)
routeId: "0210"
entryPoint: fairwood-jn

89
static/stations/bdw.yaml Normal file
View File

@@ -0,0 +1,89 @@
name: Bedwyn
crs: bdw
updated: 2026-03-11
checked: 2026-03-11
platforms:
- platformId: 1Dn
platformLength: 121
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,0]
- kind: IET9
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,0]
6: [0,0]
7: [0,0]
8: [0,0]
9: [0,0]
- kind: IET10
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,0]
6: [0,0]
7: [0,0]
8: [0,0]
9: [0,0]
10: [0,0]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- platformId: 2Up
platformLength: 123
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [0,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- kind: IET9
doors:
1: [0,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [0,0]
7: [0,0]
8: [0,0]
9: [0,0]
- kind: IET10
doors:
1: [0,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [0,0]
7: [0,0]
8: [0,0]
9: [0,0]
10: [0,0]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]

91
static/stations/hgd.yaml Normal file
View File

@@ -0,0 +1,91 @@
name: Hungerford
crs: hgd
updated: 2026-03-11
checked: 2026-03-11
platforms:
- platformId: 1Up
platformLength: 153
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- kind: IET9
doors:
1: [0,0]
2: [0,0]
3: [0,0]
4: [0,1]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,1]
9: [1,1]
- kind: IET10
doors:
1: [0,0]
2: [0,0]
3: [0,0]
4: [0,0]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,1]
9: [1,1]
10: [1,1]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
- platformId: 2Dn
platformLength: 150
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- kind: IET9
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,0]
7: [0,0]
8: [0,0]
9: [0,0]
- kind: IET10
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,0]
7: [0,0]
8: [0,0]
9: [0,0]
10: [0,0]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]

92
static/stations/kit.yaml Normal file
View File

@@ -0,0 +1,92 @@
name: Kintbury
crs: kit
--- INCOMPLETE --- NOTHING DONE BWLOW LINE
updated: 2026-03-11
checked: 2026-03-11
platforms:
- platformId: 1Up
platformLength: 153
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- kind: IET9
doors:
1: [0,0]
2: [0,0]
3: [0,0]
4: [0,1]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,1]
9: [1,1]
- kind: IET10
doors:
1: [0,0]
2: [0,0]
3: [0,0]
4: [0,0]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,1]
9: [1,1]
10: [1,1]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
- platformId: 2Dn
platformLength: 150
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- kind: IET9
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,0]
7: [0,0]
8: [0,0]
9: [0,0]
- kind: IET10
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,0]
7: [0,0]
8: [0,0]
9: [0,0]
10: [0,0]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]

93
static/stations/pew.yaml Normal file
View File

@@ -0,0 +1,93 @@
name: Pewsey
crs: pew
updated: 2026-03-11
checked: 2026-03-11
platforms:
- platformId: 1Dn
platformLength: 170
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- kind: IET9
doors:
1: [0,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,0]
9: [0,0]
- kind: IET10
doors:
1: [0,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,0]
9: [0,0]
10: [0,0]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
7: [1,1]
- platformId: 2Up
platformLength: 177
signal: true
dispatch: false
doorPattern:
- kind: IET5
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
- kind: IET9
doors:
1: [0,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,0]
9: [0,0]
- kind: IET10
doors:
1: [0,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
7: [1,1]
8: [1,0]
9: [0,0]
10: [0,0]
- kind: DMU
doors:
1: [1,1]
2: [1,1]
3: [1,1]
4: [1,1]
5: [1,1]
6: [1,1]
7: [1,1]

View File

@@ -0,0 +1,101 @@
{
"$schema": "https://json-schema.org/draft-07/schema#",
"type": "object",
"required": [],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The full name of the station"
},
"crs": {
"type": "string",
"description": "The CRS code of the station"
},
"updated": {
"type": "string",
"format": "date",
"description": "Date the data was last updated"
},
"checked": {
"type": "string",
"format": "date",
"description": "Date the data was last checked for accuracy"
},
"platforms": {
"type": "array",
"items": {
"platformInfo": {
"type": "object",
"properties": {
"platformId": {
"type": "string",
"description": "The number or letter of the platform"
},
"platformDescription": {
"type": "string",
"description": "Describe platforms location - Up/Dn line for example"
},
"platformStepFree": {
"type": "boolean",
"description": "Is step free access available to this platform"
},
"platformStepFreeNote": {
"type": "string",
"description": "Notes about step free access to this platform"
},
"platformLength": {
"type": "number",
"description": "Length of the platform in metres"
},
"carStop": {
"type": "array",
"items": {
"carStopDetail": {
"type": "string",
"trainType": {
"type": "string",
"description": "The type of train described in this entry"
},
"platformedCoaches": {
"type": "number",
"description": "The number of coaches fully platformed at the platform"
},
"platformedNotes": {
"type": "string",
"description": "Notes regarding platformed coaches, additional doors, front/rear etc."
}
}
}
},
"departUp": {
"type": "boolean",
"description": "Can a train depart in the Up direction"
},
"departDown": {
"type": "boolean",
"description": "Can a train depart in the down direction"
},
"signalUp": {
"type": "boolean",
"description": "Is there a starting signal in the Up direction"
},
"signalDown": {
"type": "boolean",
"description": "Is there a starting signal in the Down direction"
},
"dispatch": {
"type": "boolean",
"description": "Are dispatch staff present on this platform"
},
"dispatchNote": {
"type": "string",
"description": "Notes about dispatch arrangements"
}
}
}
}
},
"definitions": {}
}
}