Difference between revisions of "Train Movement"

From Open Rail Data Wiki
Jump to navigation Jump to search
m (Reordered body table to order it appears in the feed)
m (Add clarification about reporting_stanox vs original_loc_stanox fields)
 
(7 intermediate revisions by 3 users not shown)
Line 6: Line 6:
  
 
== Data structure ==
 
== Data structure ==
 +
 +
<pre>
 +
{
 +
"header": {
 +
"msg_type": "0003",
 +
"source_dev_id": "VLA5",
 +
"user_id": "#QHPA026",
 +
"original_data_source": "SDR",
 +
"msg_queue_timestamp": "1511528232000",
 +
"source_system_id": "TRUST"
 +
},
 +
"body": {
 +
"event_type": "DEPARTURE",
 +
"gbtt_timestamp": "",
 +
"original_loc_stanox": "",
 +
"planned_timestamp": "1511524620000",
 +
"timetable_variation": "0",
 +
"original_loc_timestamp": "",
 +
"current_train_id": "",
 +
"delay_monitoring_point": "true",
 +
"next_report_run_time": "9",
 +
"reporting_stanox": "52701",
 +
"actual_timestamp": "1511524620000",
 +
"correction_ind": "false",
 +
"event_source": "MANUAL",
 +
"train_file_address": null,
 +
"platform": "",
 +
"division_code": "79",
 +
"train_terminated": "false",
 +
"train_id": "515G531I24",
 +
"offroute_ind": "false",
 +
"variation_status": "ON TIME",
 +
"train_service_code": "25936005",
 +
"toc_id": "79",
 +
"loc_stanox": "52701",
 +
"auto_expected": "true",
 +
"direction_ind": "",
 +
"route": "",
 +
"planned_event_type": "DEPARTURE",
 +
"next_report_stanox": "52226",
 +
"line_ind": ""
 +
}
 +
}
 +
</pre>
  
 
=== Header ===
 
=== Header ===
Line 17: Line 61:
 
|-
 
|-
 
|source_dev_id
 
|source_dev_id
|Where the movement is manually entered, set to the ID of the device that generated the movement message
+
|[[LATA]] or [[CICS Session]] of the inputting terminal
 +
|-
 +
|user_id
 +
|[[NCI signon]] of the inputting user
 
|-
 
|-
 
|source_system_id
 
|source_system_id
Line 23: Line 70:
 
|-
 
|-
 
|original_data_source
 
|original_data_source
|Set to "TRUST", "TRUST DA", "SDR" or "GPS" for a movement message
+
|Set to "GPS", "SDR", "SMART", "TOPS" or "TRUST DA" for a movement message
 +
|-
 +
|msg_queue_timestamp
 +
|
 
|}
 
|}
  
 
=== Body ===
 
=== Body ===
 +
 +
Fields marked with an asterisk may not be present in some messages and your code should not
 +
assume they will always be populated.
  
 
{| class='wikitable'
 
{| class='wikitable'
Line 35: Line 88:
 
|The type of event - either "ARRIVAL" or "DEPARTURE"
 
|The type of event - either "ARRIVAL" or "DEPARTURE"
 
|-
 
|-
|gbtt_timestamp
+
|gbtt_timestamp*
 
|The planned GBTT (passenger) date and time that the event was due to happen at this location
 
|The planned GBTT (passenger) date and time that the event was due to happen at this location
 
|-
 
|-
|original_loc_stanox
+
|original_loc_stanox*
|If the location has been revised, the STANOX of the location in the schedule at activation time
+
|If the location has been changed after activation, the original STANOX where this train was due to report.  If the reporting_stanox field not 00000, this field may not be present
 +
|-
 +
|original_loc_timestamp*
 +
|The planned time associated with the original location
 
|-
 
|-
 
|planned_timestamp
 
|planned_timestamp
Line 47: Line 103:
 
|The number of minutes variation from the scheduled time at this location.  Off-route reports will contain "0"
 
|The number of minutes variation from the scheduled time at this location.  Off-route reports will contain "0"
 
|-
 
|-
|original_loc_timestamp
+
|current_train_id*
|The planned departure time associated with the original location
 
|-
 
|current_train_id
 
 
|Where a train has had its identity changed, the current 10-character unique identity for this train
 
|Where a train has had its identity changed, the current 10-character unique identity for this train
 
|-
 
|-
Line 56: Line 109:
 
|Set to "true" if this is a delay monitoring point, "false" if it is not.  Off-route reports will contain "false"
 
|Set to "true" if this is a delay monitoring point, "false" if it is not.  Off-route reports will contain "false"
 
|-
 
|-
|next_report_run_time
+
|next_report_run_time*
 
|The running time to the next location
 
|The running time to the next location
 
|-
 
|-
|reporting_stanox
+
|reporting_stanox*
|The STANOX of the location that generated this report. Set to "00000" for manual and off-route reports
+
|If 00000, the STANOX to which this report refers is in the original_loc_stanox field
 
|-
 
|-
 
|actual_timestamp
 
|actual_timestamp
Line 71: Line 124:
 
|Whether the event source was "AUTOMATIC" from SMART, or "MANUAL" from TOPS or TRUST SDR
 
|Whether the event source was "AUTOMATIC" from SMART, or "MANUAL" from TOPS or TRUST SDR
 
|-
 
|-
|train_file_address
+
|train_file_address*
 
|The TOPS train file address, if applicable
 
|The TOPS train file address, if applicable
 
|-
 
|-
|platform
+
|platform*
 
|Two characters (including a space for a single character) or blank if the movement report is associated with a platform number
 
|Two characters (including a space for a single character) or blank if the movement report is associated with a platform number
 
|-
 
|-
Line 101: Line 154:
 
|The STANOX of the location at which this event happened
 
|The STANOX of the location at which this event happened
 
|-
 
|-
|auto_expected
+
|auto_expected*
 
|Set to "true" if an automatic report is expected for this location, otherwise "false"
 
|Set to "true" if an automatic report is expected for this location, otherwise "false"
 
|-
 
|-
|direction_ind
+
|direction_ind*
 
|For automatic reports, either "UP" or "DOWN" depending on the direction of travel
 
|For automatic reports, either "UP" or "DOWN" depending on the direction of travel
 
|-
 
|-
|route
+
|route*
|A single character (or blank) to indicate the exit route from this location
+
|A number or blank to indicate the exit route from this location.  A value of 'F' indicates the train failed to stop here
 
|-
 
|-
 
|planned_event_type
 
|planned_event_type
 
|The planned type of event - one of "ARRIVAL", "DEPARTURE" or "DESTINATION"
 
|The planned type of event - one of "ARRIVAL", "DEPARTURE" or "DESTINATION"
 
|-
 
|-
|next_report_stanox
+
|next_report_stanox*
 
|The STANOX of the location at which the next report for this train is due
 
|The STANOX of the location at which the next report for this train is due
 
|-
 
|-
|line_ind
+
|line_ind*
 
|A single character (or blank) depending on the line the train is travelling on, e.g. F = Fast, S = Slow
 
|A single character (or blank) depending on the line the train is travelling on, e.g. F = Fast, S = Slow
 
|-
 
|-

Latest revision as of 08:57, 17 November 2023

Overview

A train movement message is sent whenever a train arrives, passes or departs a location monitored by TRUST. It records the time at which the event happens.

Reports may be automatically generated, or manually entered.

Data structure

{
	"header": {
		"msg_type": "0003",
		"source_dev_id": "VLA5",
		"user_id": "#QHPA026",
		"original_data_source": "SDR",
		"msg_queue_timestamp": "1511528232000",
		"source_system_id": "TRUST"
	},
	"body": {
		"event_type": "DEPARTURE",
		"gbtt_timestamp": "",
		"original_loc_stanox": "",
		"planned_timestamp": "1511524620000",
		"timetable_variation": "0",
		"original_loc_timestamp": "",
		"current_train_id": "",
		"delay_monitoring_point": "true",
		"next_report_run_time": "9",
		"reporting_stanox": "52701",
		"actual_timestamp": "1511524620000",
		"correction_ind": "false",
		"event_source": "MANUAL",
		"train_file_address": null,
		"platform": "",
		"division_code": "79",
		"train_terminated": "false",
		"train_id": "515G531I24",
		"offroute_ind": "false",
		"variation_status": "ON TIME",
		"train_service_code": "25936005",
		"toc_id": "79",
		"loc_stanox": "52701",
		"auto_expected": "true",
		"direction_ind": "",
		"route": "",
		"planned_event_type": "DEPARTURE",
		"next_report_stanox": "52226",
		"line_ind": ""
	}
}

Header

Field Description
msg_type Set to '0003' for a movement message
source_dev_id LATA or CICS Session of the inputting terminal
user_id NCI signon of the inputting user
source_system_id Set to "TRUST" for a movement message
original_data_source Set to "GPS", "SDR", "SMART", "TOPS" or "TRUST DA" for a movement message
msg_queue_timestamp

Body

Fields marked with an asterisk may not be present in some messages and your code should not assume they will always be populated.

Field Description
event_type The type of event - either "ARRIVAL" or "DEPARTURE"
gbtt_timestamp* The planned GBTT (passenger) date and time that the event was due to happen at this location
original_loc_stanox* If the location has been changed after activation, the original STANOX where this train was due to report. If the reporting_stanox field not 00000, this field may not be present
original_loc_timestamp* The planned time associated with the original location
planned_timestamp The planned date and time that this event was due to happen at this location
timetable_variation The number of minutes variation from the scheduled time at this location. Off-route reports will contain "0"
current_train_id* Where a train has had its identity changed, the current 10-character unique identity for this train
delay_monitoring_point Set to "true" if this is a delay monitoring point, "false" if it is not. Off-route reports will contain "false"
next_report_run_time* The running time to the next location
reporting_stanox* If 00000, the STANOX to which this report refers is in the original_loc_stanox field
actual_timestamp The date and time that this event happened at the location
correction_ind Set to "false" if this report is not a correction of a previous report, or "true" if it is
event_source Whether the event source was "AUTOMATIC" from SMART, or "MANUAL" from TOPS or TRUST SDR
train_file_address* The TOPS train file address, if applicable
platform* Two characters (including a space for a single character) or blank if the movement report is associated with a platform number
division_code Operating company ID as per TOC Codes
train_terminated Set to "true" if the train has completed its journey, or "false" otherwise
train_id The 10-character unique identity for this train at TRUST activation time
offroute_ind Set to "false" if this report is for a location in the schedule, or "true" if it is not
variation_status One of "ON TIME", "EARLY", "LATE" or "OFF ROUTE"
train_service_code Train service code as per schedule
toc_id Operating company ID as per TOC Codes
loc_stanox The STANOX of the location at which this event happened
auto_expected* Set to "true" if an automatic report is expected for this location, otherwise "false"
direction_ind* For automatic reports, either "UP" or "DOWN" depending on the direction of travel
route* A number or blank to indicate the exit route from this location. A value of 'F' indicates the train failed to stop here
planned_event_type The planned type of event - one of "ARRIVAL", "DEPARTURE" or "DESTINATION"
next_report_stanox* The STANOX of the location at which the next report for this train is due
line_ind* A single character (or blank) depending on the line the train is travelling on, e.g. F = Fast, S = Slow


Network Rail Open Data Feeds
Data Feeds About the Feeds Account States Durable Subscriptions Example Code ( PHP / C# / Java / Ruby / Node.js) • Advanced UsesFAQ Release Notes
RTPPM RTPPM Feed
Train Movements Train Movements Feed Train Activation Train Cancellation Train Movement Train Reinstatement Change of Origin Change of Identity Change of Location TSPEED Field Planned Cancellations Cancellation Codes
TD TD Feed C-Class Messages S-Class Messages Train Describers TD Berths
VSTP VSTP Feed
TSR TSR Feed Route Codes
SCHEDULE SCHEDULE Feed Schedule and Location Records Association Records CIF Codes How Scheduling Works Allowances
Reference Data Reference Data Feed TOC Codes CIF Codes Delay Attribution Codes Identifying Locations (STANOX, TIPLOC, NLC and 3-Alpha Codes) STANOX Geographical Areas Train Planning data