Train Movement: Difference between revisions

From Open Rail Data Wiki
Gavco98uk (talk | contribs)
m Add clarification about reporting_stanox vs original_loc_stanox fields
 
(17 intermediate revisions by 7 users not shown)
Line 1: Line 1:
== Overview ==


== 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.


The Train Movement message is used to indicate a train has passed a particular reporting point, indicated by the <code>loc_stanox</code> field. The STANOX may represent a station or junction.  
Reports may be automatically generated, or manually entered.


== Example ==
== Data structure ==


<tt>
<pre>
{
{
    "header":
"header": {
    {
"msg_type": "0003",
        msg_type:"0003",
"source_dev_id": "VLA5",
        source_dev_id:"",
"user_id": "#QHPA026",
        user_id:"",
"original_data_source": "SDR",
        original_data_source:"SMART",
"msg_queue_timestamp": "1511528232000",
        msg_queue_timestamp:"1341391532000",
"source_system_id": "TRUST"
        source_system_id:"TRUST"
},
    },
"body": {
    "body":
"event_type": "DEPARTURE",
    {
"gbtt_timestamp": "",
        event_type:"DEPARTURE",
"original_loc_stanox": "",
        gbtt_timestamp:"",
"planned_timestamp": "1511524620000",
        original_loc_stanox:"",
"timetable_variation": "0",
        planned_timestamp:"1341393780000",
"original_loc_timestamp": "",
        timetable_variation:"22",
"current_train_id": "",
        original_loc_timestamp:"",
"delay_monitoring_point": "true",
        current_train_id:"",
"next_report_run_time": "9",
        delay_monitoring_point:"true",
"reporting_stanox": "52701",
        next_report_run_time:"1",
"actual_timestamp": "1511524620000",
        reporting_stanox:"52701",
"correction_ind": "false",
        actual_timestamp:"1341395100000",
"event_source": "MANUAL",
        correction_ind:"false",
"train_file_address": null,
        event_source:"AUTOMATIC",
"platform": "",
        train_file_address:,platform:"",
"division_code": "79",
        division_code:"21",
"train_terminated": "false",
        train_terminated:"false",
"train_id": "515G531I24",
        train_id:"521N16ME04",
"offroute_ind": "false",
        offroute_ind:"false",
"variation_status": "ON TIME",
        variation_status:"LATE",
"train_service_code": "25936005",
        train_service_code:"21939001",
"toc_id": "79",
        toc_id:"21",
"loc_stanox": "52701",
        loc_stanox:"52701",
"auto_expected": "true",
        auto_expected:"true",
"direction_ind": "",
        direction_ind:"DOWN",
"route": "",
        route:"1",
"planned_event_type": "DEPARTURE",
        planned_event_type:"DEPARTURE",
"next_report_stanox": "52226",
        next_report_stanox:"52226",
"line_ind": ""
        line_ind:"M"
}
    }
}
}
</tt>
</pre>
 
=== Header ===
 
{| class='wikitable'
!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.
 
{| class='wikitable'
!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
|-
|}
 
{{Navtable-DataFeeds}}
 
[[Category:Train Movement Data]]

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 TIPLOC Records 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 (BPLAN)