ルート最新情報

ルート最新情報は時刻表の変動を表します。時刻表が作成されていてリアルタイム対応が可能なすべての旅程について、ルート最新情報を Google に提供していただくことになります。これらの更新情報では、ルート上の停車地での予想到着時刻または出発時刻を提示します。また、旅程の中止、時刻表への追加、さらにはルート変更など、より複雑な状況にも対応できます。

注: GTFS では、一定の時間に 2 回以上の停車を伴う移動行程を旅程といいます。

時刻表がある各旅程について、ルート最新情報は多くても 1 つしか存在しません。時刻表がある旅程のルート最新情報がない場合は、その旅程で利用できるリアルタイム データがないことになります。データの利用者は、その旅程が定刻どおり運行されていると考えてはいけません

停車時刻の更新情報

ルート最新情報は、車両の停車時刻の更新情報(複数可)で構成されます。この更新情報を StopTimeUpdate といいます。過去と未来の停車時刻の更新情報を提供できますが、過去の停車時刻については省略することもできます(省略しなくてもかまいません)。ただし、過去の StopTimeUpdate が、特定のルートについて時刻表の未来の到着時刻を指定した停車地を参照している場合は(車両が予定より早く停車地を通過した場合など)、その情報を省略しないようにしてください。そうしないと、この停車地の更新情報は 1 つもない、ということになるためです。

たとえば、GTFS-rt フィードに次のデータが表示されたとします。

  • 停車地 4 - 午前 10 時 18 分と予測(時刻表では午前 10 時 20 分 - 2 分早め)
  • 停車地 5 - 午前 10 時 30 分と予測(時刻表では午前 10 時 30 分 - 定刻どおり)

... バスが実際に停車地 4 を通過した時刻が午前 10 時 18 分だった場合でも、午前 10 時 21 分まで、この停車地に関する予測をフィードから省略することはできません。午前 10 時 18 分または午前 10 時 19 分にフィードから停車地 4 の StopTimeUpdate が省略され、時刻表の到着時刻が午前 10 時 20 分の場合、利用者は、その時点では停車地 4 に関するリアルタイムの情報がないものと見なして、GTFS の時刻表データを使用することになります。

StopTimeUpdate は停車地と 1 対 1で関連しています。通常は、GTFS の stop_sequence または GTFS の stop_id のいずれかを使用して関連を設定できます。ただし、GTFS の trip_id を使用しないで旅程の更新情報を提供する場合は、stop_sequence の値がないので必ず stop_id を指定してください。この stop_id は、GTFS の stop_id を参照する必要があります。ルートで同じ stop_id を複数回参照する場合は、すべての StopTimeUpdates で、そのルートの該当の stop_id に対して stop_sequence を指定する必要があります。

この更新情報では、StopTimeUpdatesStopTimeEvent を使用して、停車地の arrival または departure(あるいはその両方)について正確に時間を提供することができます。その際、time(絶対時間)または delay(予定時刻との時間差(秒単位))のいずれかを含める必要があります。delay(遅延時間)を使用できるのは、ルート最新情報が参照する対象が、運行間隔に基づく旅程ではなく時刻表のある GTFS の旅程である場合に限ります。この場合の時刻は、予定時刻に遅延時間を足した値と等しくなります。さらに StopTimeEvent では、予測の不確かさを示す uncertainty を指定することもできます。詳細については、このページの下の方にある不確実度のセクションをご覧ください。

どの StopTimeUpdate も、時刻表との関係(ScheduleRelationship)のデフォルト値は scheduled です(これは旅程についての ScheduleRelationship とは異なります)。この値は、停車地に停車しない場合は skipped に、一部の旅程のリアルタイム データしかない場合は no data に変更できます。

更新情報は、必ず stop_sequence に従って並び順が決まります(または旅程での stop_id の発生順で決まります)。

旅程の 1 つまたは複数の停車地が欠落している場合、更新情報はそれ以降のすべての停車地に反映されます。つまり、ある停車地の停車時刻が更新されると、その他の情報がないときは後続のすべての停車地も同様に更新されます。

例 1

停車地が 20 か所ある旅程について、現在の停車地に関する StopTimeUpdate の stop_sequence で到着と出発の遅延時間(StopTimeEvents)が 0 の場合、定刻どおりに運行されていることを意味します。

例 2

上記と同じ旅程インスタンスについて、次の 3 つの StopTimeUpdates が指定されています。

  • stop_sequence 3 に対し 300 秒の遅延
  • stop_sequence 8 に対し 60 秒の遅延
  • stop_sequence 10 に対し遅延時間の指定なし

この指定は次のように解釈されます。

  • stop_sequences 1、2 の遅延時間は不明である。
  • stop_sequence 3、4、5、6、7 は 300 秒の遅延が発生している。
  • stop_sequence 8、9 は 60 の遅延が発生している。
  • stop_sequence 8、9 は 60 の遅延が発生している。

旅程記述子

旅程記述子により提供される情報は、更新対象となる旅程の時刻表との関係によって変わります。次に示すように、設定できるオプションはいくつかあります。

説明
Scheduled(時刻指定あり) この旅程は GTFS の時刻表に従って、またはそれとほぼ同じスケジュールで進行しています。
Added(追加) この旅程は元々予定されておらず追加されたものです。たとえば、需要に対応するためや、故障した車両の代わりとして、などの場合があります。
Unscheduled(時刻指定なし) この旅程は運行中ですが時刻表はありません。たとえば、時刻が決まっていないシャトル バスの場合などです。
Canceled(中止) この旅程は時刻表がありましたが、現在は削除されています。

ほとんどの場合、この更新情報が関連する、時刻表のある GTFS の旅程の trip_id を指定する必要があります。

同じ trip_id を繰り返し使用するシステム

たとえば frequencies.txt を使用して識別するルート(定期運行のルート)など、重複する trip_id を使用しているシステムの場合、trip_id は時刻の情報が抜けているため、それだけでは特定の旅程の一意の識別子として利用できません。TripDescriptor でそうしたルートを一意に識別するには、次の 3 つ一組の識別子を使用する必要があります。

  • trip_id
  • start_time
  • start_date

start_time は最初に設定したものを継続して使用し、その後のフィードの更新で同じ旅程を表す場合は、必ず同じ start_time を使用する必要があります。時刻の調整には StopTimeUpdates を使用します。start_time は最初の駅からの出発時刻に正確に合わせる必要はありませんが、ずれは最小限に抑える必要があります。

たとえば、trip_id=T のルートの start_time は 10 時 10 分にすることを 2015 年 5 月 25 日の 10 時に決定し、この情報をリアルタイム フィードで 10 時 1 分に送信するとします。そして、10 時 5 分の段階で、このルートの出発が 10 時 10 分ではなく 10 時 13 分に変わることが急に判明します。最新のリアルタイム フィードでは、このルートはまだ「T, 2015-05-25, 10:10:00」となっていますが、StopTimeUpdate を使用すれば、最初の駅からの出発が 10 時 13 分になることを通知できます。

代替ルートのマッチング

定期運行ではないルートは、以下の組み合わせを含む TripDescriptor で一意に識別することもできます。

  • route_id
  • direction_id
  • start_time
  • start_date

ここでは、指定された ID の組み合わせでルートが識別される限り、start_time は静的な時刻表で定義されている予定出発時刻です。

不確実度

不確実度は、StopTimeUpdate の時刻(time)と遅延時間(delay)のどちらの値にも適用されます。不確実度では、実際の遅延時間で予想される誤差を秒単位の整数で大まかに指定します(正確な統計的意味はまだ定義されていません)。不確実度を 0 にすることもあり得ます。コンピュータによる時間制御の下で運転されている列車の場合などです。

一例として、ある長距離バスが次の停車地に 15 分遅れで到着すると予測され、その誤差が 4 分(つまりプラスマイナス 2 分)だとします。この場合の Uncertainty の値は 240 となります。