com.google.transit.realtime.gtfs-realtime-NYCT.proto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of onebusaway-gtfs-realtime-api Show documentation
Show all versions of onebusaway-gtfs-realtime-api Show documentation
Java classes generated from the GTFS-realtime protocol buffer specification.
// Copyright 2012 Metropolitan Transportation Authority
//
// Protocol definition NYCT-specific extensions to GTFS-realtime.
//
// As originally posted at:
//
// https://groups.google.com/d/msg/gtfs-realtime/KWJhkXH0kBg/8rlRMxiL-ysJ
syntax = "proto2";
import "com/google/transit/realtime/gtfs-realtime.proto";
option java_package = "com.google.transit.realtime";
package transit_realtime;
message TripReplacementPeriod {
// The replacement period is for this route
optional string route_id = 1;
// The start time is omitted, the end time is currently now + 30 minutes for
// all routes of the A division
optional transit_realtime.TimeRange replacement_period = 2;
}
// NYCT Subway extensions for the feed header
message NyctFeedHeader {
// Version of the NYCT Subway extensions
// The current version is 1.0
required string nyct_subway_version = 1;
// For the NYCT Subway, the GTFS-realtime feed replaces any scheduled
// trip within the trip_replacement_period.
// This feed is a full dataset, it contains all trips starting
// in the trip_replacement_period. If a trip from the static GTFS is not
// found in the GTFS-realtime feed, it should be considered as cancelled.
// The replacement period can be different for each route, so here is
// a list of the routes where the trips in the feed replace all
// scheduled trips within the replacement period.
repeated TripReplacementPeriod trip_replacement_period = 2;
}
extend FeedHeader {
optional NyctFeedHeader nyct_feed_header = 1001;
}
// NYCT Subway extensions for the trip descriptor
message NyctTripDescriptor {
// The nyct_train_id is meant for internal use only. It provides an
// easy way to associated GTFS-realtime trip identifiers with NYCT rail
// operations identifier
//
// The ATS office system assigns unique train identification (Train ID) to
// each train operating within or ready to enter the mainline of the
// monitored territory. An example of this is 06 0123+ PEL/BBR and is decoded
// as follows:
//
// The first character represents the trip type designator. 0 identifies a
// scheduled revenue trip. Other revenue trip values that are a result of a
// change to the base schedule include; [= reroute], [/ skip stop], [$ turn
// train] also known as shortly lined service.
//
// The second character 6 represents the trip line i.e. number 6 train The
// third set of characters identify the decoded origin time. The last
// character may be blank "on the whole minute" or + "30 seconds"
//
// Note: Origin times will not change when there is a trip type change. This
// is followed by a three character "Origin Location" / "Destination
// Location"
optional string train_id = 1;
// This trip has been assigned to a physical train. If true, this trip is
// already underway or most likely will depart shortly.
//
// Train Assignment is a function of the Automatic Train Supervision (ATS)
// office system used by NYCT Rail Operations to monitor and track train
// movements. ATS provides the ability to "assign" the nyct_train_id
// attribute when a physical train is at its origin terminal. These assigned
// trips have the is_assigned field set in the TripDescriptor.
//
// When a train is at a terminal but has not been given a work program it is
// declared unassigned and is tagged as such. Unassigned trains can be moved
// to a storage location or assigned a nyct_train_id when a determination for
// service is made.
optional bool is_assigned = 2;
// The direction the train is moving.
enum Direction {
NORTH = 1;
EAST = 2;
SOUTH = 3;
WEST = 4;
}
// Uptown and Bronx-bound trains are moving NORTH.
// Times Square Shuttle to Grand Central is also northbound.
//
// Downtown and Brooklyn-bound trains are moving SOUTH.
// Times Square Shuttle to Times Square is also southbound.
//
// EAST and WEST are not used currently.
optional Direction direction = 3;
}
extend transit_realtime.TripDescriptor {
optional NyctTripDescriptor nyct_trip_descriptor = 1001;
}
// NYCT Subway extensions for the stop time update
message NyctStopTimeUpdate {
// Provides the planned station arrival track. The following is the Manhattan
// track configurations:
// 1: southbound local
// 2: southbound express
// 3: northbound express
// 4: northbound local
//
// In the Bronx (except Dyre Ave line)
// M: bi-directional express (in the AM express to Manhattan, in the PM
// express away).
//
// The Dyre Ave line is configured:
// 1: southbound
// 2: northbound
// 3: bi-directional
optional string scheduled_track = 1;
// This is the actual track that the train is operating on and can be used to
// determine if a train is operating according to its current schedule
// (plan).
//
// The actual track is known only shortly before the train reaches a station,
// typically not before it leaves the previous station. Therefore, the NYCT
// feed sets this field only for the first station of the remaining trip.
//
// Different actual and scheduled track is the result of manually rerouting a
// train off it scheduled path. When this occurs, prediction data may become
// unreliable since the train is no longer operating in accordance to its
// schedule. The rules engine for the 'countdown' clocks will remove this
// train from all schedule stations.
optional string actual_track = 2;
}
extend transit_realtime.TripUpdate.StopTimeUpdate {
optional NyctStopTimeUpdate nyct_stop_time_update = 1001;
}