이동경로 업데이트

이동경로 업데이트는 시간표의 변동을 나타냅니다. 예정된 모든 이동경로에 대한 이동경로 업데이트를 실시간으로 받아볼 수 있습니다. 이 업데이트는 경로를 따라 있는 정류장에 대한 예상 도착 시간 또는 출발 시간을 제공합니다. 또한 이동경로 업데이트는 이동경로가 취소되거나 일정에 추가되거나 경로가 변경되는 보다 복잡한 시나리오를 제공할 수도 있습니다.

알림: GTFS에서 이동경로는 특정 시간에 발생하는 두 개 이상의 정류장의 순서입니다.

예정된 각 이동경로에 대해 최대 하나의 이동경로 업데이트가 있어야 합니다. 예정된 이동경로에 대한 이동경로 업데이트가 없는 경우 이동경로에 대한 실시간 데이터가 없는 것으로 결론을 내릴 수 있습니다. 데이터 사용자는 이동경로가 일정에 따라 진행되고 있다고 가정하지 않아야 합니다

정차 시간 업데이트

이동경로 업데이트는 StopTimeUpdates라고 하는 차량 정차 시간에 대한 하나 이상의 업데이트로 구성됩니다. 이는 과거 및 미래의 정차 시간에 대해 제공될 수 있습니다. 과거 정차 시간을 삭제할 수 있지만 반드시 그럴 필요는 없습니다. 주어진 이동경로에 대해 미래의 예정된 도착 시간이 있는 정류장인 경우(즉, 차량이 일정보다 먼저 정류장을 지나간 경우) 이전 StopTimeUpdate을(를) 삭제하지 않아야 합니다. 삭제하면 이 정류장에 대한 업데이트가 없는 것으로 간주됩니다.

예를 들어 GTFS-rt 피드에 다음 데이터가 나타나는 경우:

  • 정류장 4: 10:18am에 예측됨(10:20am에 예정됨, 2분 먼저)
  • 정류장 5: 10:30am에 예측됨(10:30am에 예정됨, 정시)

버스가 실제로 10:18am에 정류장을 통과하더라도 10:21am까지는 정류장 4에 대한예측 시간을 피드에서 삭제할 수 없습니다. 10:18am 또는 10:19am에 정류장 4에 대한 StopTimeUpdate이(가) 삭제되고 예정된 도착 시간이 10:20am인 경우, 해당 시간에 정류장 4에 대한 실시간 정보가 없다고 가정하고 GTFS의 일정 데이터를 사용해야 합니다.

StopTimeUpdate는 정류장과 연결됩니다. 대개 GTFS stop_sequence 또는 GTFS stop_id를 사용하여 이 작업을 수행할 수 있습니다. 그러나 GTFS trip_id가 없는 이동경로에 대한 업데이트를 제공하는 경우 stop_sequence에 값이 없으므로 stop_id를 지정해야 합니다. stop_id는 GTFS의 stop_id를 계속 참조해야 합니다. 이동 중에 동일한 stop_id를 두 번 이상 방문하면 해당 이동 시 stop_id에 대한 모든 StopTimeUpdate에 stop_sequence가 제공되어야 합니다.

이 업데이트는 StopTimeEvent를 사용하여 StopTimeUpdates에서 정류장의 정확한 도착출발 시간을 제공할 수 있습니다. 여기에는 절대 시간 또는 지연(예: 초 단위의 예정된 시간 오프셋)이 포함되어야 합니다. 지연은 빈도 기반 이동경로와 달리 이동경로 업데이트가 예정된 GTFS 이동경로를 가리키는 경우에만 사용할 수 있습니다. 이 경우 시간은 예정된 시간 + 지연 시간과 동일해야 합니다. StopTimeEvent와 함께 예측의 불확실성을 지정할 수도 있습니다. 이에 대해서는 페이지 하단의 Uncertainty 섹션에서 자세히 설명합니다.

StopTimeUpdate에 대해 기본 일정 관계는 scheduled입니다. 이는 이동경로에 대한 일정 관계와 다릅니다. 정류장에서 정차하지 않은 경우 skipped로 변경할 수 있고 일부 이동경로에 대한 실시간 데이터만 있는 경우 no data로 변경할 수 있습니다.

업데이트는 stop_sequence(또는 이동경로에서 발생하는 순서대로 stop_ids에 따라)에 따라 정렬해야 합니다.

이동경로를 따라 하나 이상의 정류장이 누락된 경우 업데이트가 모든 후속 정류장에 전달됩니다. 즉, 특정 정류장에 대한 정차 시간을 업데이트하면 다른 정보가 없는 경우 모든 후속 정류장이 변경됩니다.

예 1

정류장이 20개인 이동경로의 경우, StopTimeUpdate에서 현재 정류장의 stop_sequence에 대한 도착 지연 및 출발 지연이 0(StopTimeEvents)이면 이동경로가 정확히 일정에 따라 운행되고 있음을 의미합니다.

예 2

동일한 이동경로 인스턴스의 경우 3개의 StopTimeUpdates가 제공됩니다.

  • stop_sequence 3의 경우 300초 지연
  • stop_sequence 8의 경우 60초 지연
  • stop_sequence 10의 경우 지연 시간 미지정

이는 다음과 같이 해석됩니다.

  • stop_sequences 1,2의 지연 시간은 알 수 없습니다.
  • stop_sequences 3,4,5,6,7의 지연 시간은 300초입니다.
  • stop_sequences 8,9의 지연 시간은 60초입니다.
  • stop_sequences 10, .., 20의 지연 시간은 알 수 없습니다.

이동경로 설명자

이동경로 설명자가 제공하는 정보는 업데이트 중인 이동경로의 일정 관계에 따라 다릅니다. 다음과 같은 다양한 옵션을 설정할 수 있습니다.

설명
Scheduled GTFS 일정에 따라 운행되거나 연결할 이동경로와 가장 유사한 이동경로입니다.
Added 예정되지 않았지만 추가된 이동경로입니다. 예를 들어 수요에 대처하거나 부서진 차량을 교체하는 경우입니다.
Unscheduled 운행 중이지만 일정과 관련이 없는 이동경로입니다. 예를 들어 일정이 없고 셔틀 서비스로 버스가 운행되는 경우입니다.
Canceled 예정되었지만 지금은 삭제된 이동경로입니다.

대부분의 경우 이 업데이트와 관련된 GTFS에서 예정된 이동경로의 trip_id를 제공해야 합니다.

trip_ids를 반복해서 사용하는 시스템

trip_ids를 반복해서 사용하는 시스템(예: frequencies.txt를 사용하여 모델링된 이동경로)은 빈도 기반 이동경로이므로 trip_id 자체는 특정 시간 구성 요소가 없기 때문에 단일 여정의 고유 식별자가 아닙니다. TripDescriptor 내에서 이러한 이동경로를 고유하게 식별하려면 세 가지 식별자를 제공해야 합니다.

  • trip_id
  • start_time
  • start_date

start_time이 처음 게시되어야 하고 이후의 피드 업데이트는 동일한 여정을 언급할 때 동일한 start_time을 사용해야 합니다. 조정을 표시하려면 StopTimeUpdates를 사용해야 합니다. start_time은 첫 번째 역의 출발 시간과 매우 가까울지라도 해당 시간과 정확하게 일치할 필요는 없습니다.

예를 들어 2015년 5월 25일 10:00에 trip_id=T인 이동경로를 start_time=10:10:00에 시작하기로 결정하고 10:01에 실시간 피드를 통해 이 정보를 제공한다고 가정해 보겠습니다. 10:05에 갑자기 이동경로가 10:10이 아닌 10:13에 시작한다는 사실을 알게 될 경우, 새로운 실시간 피드에서 이 이동경로를 (T, 2015-05-25, 10:10:00)으로 식별할 수 있지만 첫 번째 정류장의 출발 시간이 10:13:00인 StopTimeUpdate를 제공합니다.

대체 이동경로 일치

빈도를 기반으로 하지 않는 이동경로는 다음 조합을 포함한 TripDescriptor로 고유하게 식별할 수 있습니다.

  • route_id
  • direction_id
  • start_time
  • start_date

제공된 id의 조합으로 고유한 이동경로를 식별하는 경우 start_time은 정적 일정에 정의된 예정된 시작 시간입니다.

불확실성

불확실성은 StopTimeUpdate의 시간 값과 지연 값 모두에 적용됩니다. 불확실성은 실제 지연에서 예상되는 오류를 대략적으로 지정합니다(단, 정확한 통계적 의미는 아직 정의되지 않았음). 예를 들어 컴퓨터 타이밍 제어에 따라 구동되는 열차의 경우 불확실성이 0일 수 있습니다.

예를 들어 4분(즉, +2/-2분)의 오류 범위 내에서 다음 정류장에 15분 지연되어 도착할 것으로 예측되는 장거리 버스는 불확실성 값이 240입니다.