Train Movements: Difference between revisions

From Open Rail Data Wiki
m Added details of the names of topics
m Tidy-up
Line 1: Line 1:
== Overview ==
== Overview ==
=== What is this feed? ===
The Train Movements feed contains data from Network Rail's [http://en.wikipedia.org/wiki/TRUST TRUST] system.  This reports on the progress of trains along their journey.


=== Topics ===
=== Topics ===


TRUST messages are available on TOC-specific topics. These are named TRAIN_MVT_XX_TOC, where 'XX' represents the '''Business Code''' column from the [[TOC Codes]] page.  For example, CrossCountry has business code 'EH', and its topic is TRAIN_MVT_EH_TOC.
Messages are available on TOC-specific topics, as well as an 'ALL TOCs' topic.
 
Individual TOC topics are named TRAIN_MVT_XX_TOC, where 'XX' represents the Network Rail 'business code' from the [[TOC Codes]] page.  For example, CrossCountry has business code 'EH', and its topic is TRAIN_MVT_EH_TOC.


In addition, there are other topics which contain aggregated data from multiple TOCs:  
There are other topics which contain aggregated data from multiple TOCs:  


{| border="1"
{| border="1"
Line 18: Line 24:
|-
|-
|TRAIN_MVT_GENERAL
|TRAIN_MVT_GENERAL
|Messages not specific to a particular operator (very low-volume)
|Change of Identity messages for freight trains
|}
|}


=== Message types ===
=== Message types ===


The train movements feed contains messages produced by [[TRUST]].  These messages are one of eight types, all in JSON format:
The feed contains eight message types, all in JSON format:


* 0001 - [[Train Activation]]
* 0001 - [[Train Activation]]
Line 34: Line 40:
* 0008 - [[Change of Location]]
* 0008 - [[Change of Location]]


=== Lifecycle ===
An [[Activation]] message will always be the first message to be received for a train, after which any of the other message types may be received.
 
Before any action can be taken on a train, the schedule must be activated.  An [[Activation]] message will be received, which will link a schedule to a 10-character train identity.  This identity is referenced in all other message types, and there is no need to calculate it manually.
 
A train may be cancelled (either entirely or from a particular calling point onwards) through a [[Train Cancellation]] message, or start from a location other than the originating location through a [Change of Origin] message.  A train may be reinstated after cancellation through a [[Train Reinstatement]] message.
 
One point to note - the [[Change of Identity]] message type is rarely seen.  This is used when a train running under one class (e.g. a Class 4 freight with a train identity starting 4---) must run under a different class for some reason - usually because it must run at a lower speed due to the type of load it is carrying.


=== Format ===
=== Format ===

Revision as of 12:45, 17 January 2013

Overview

What is this feed?

The Train Movements feed contains data from Network Rail's TRUST system. This reports on the progress of trains along their journey.

Topics

Messages are available on TOC-specific topics, as well as an 'ALL TOCs' topic.

Individual TOC topics are named TRAIN_MVT_XX_TOC, where 'XX' represents the Network Rail 'business code' from the TOC Codes page. For example, CrossCountry has business code 'EH', and its topic is TRAIN_MVT_EH_TOC.

There are other topics which contain aggregated data from multiple TOCs:

Topic name Description
TRAIN_MVT_ALL_TOC All train operating companies
TRAIN_MVT_PASSENGER_TOC All passenger train operating companies
TRAIN_MVT_GENERAL Change of Identity messages for freight trains

Message types

The feed contains eight message types, all in JSON format:

An Activation message will always be the first message to be received for a train, after which any of the other message types may be received.

Format

Each message is represented as a JSON hash with two keys - 'header' and 'body'. Zero or more of these messages is sent out in a JSON list, either every five seconds or when there are 32 messages to be sent. It is perfectly legitimate to receive an empty array.

All timestamp values are in milliseconds since the UNIX epoch.