콘텐츠로 이동

Trip Updates

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

알림: GTFS 에서 이동은 특정 시간에 발생하는 두 번 이상의 경유지 시퀀스입니다.

예정된 각 여행에 대해 최대 하나의 여행 업데이트가 있어야 합니다. 예정된 여행에 대한 여행 업데이트가 없는 경우 해당 여행에 대한 실시간 데이터가 없는 것으로 간주됩니다. 데이터 소비자는 여행이 정시에 진행되고 있다고 가정해서는 됩니다.

차량이 동일한 블록 내에서 여러 이동을 제공하는 경우(이동 및 블록에 대한 자세한 내용은 GTFS trips.txt 참조):

  • 피드에는TripUpdate 위해여행 현재 서비스 중인차량 . 생산자는 현재 이후 하나 이상의 여행에 대해 TripUpdates를 포함하는 것이 좋습니다.여행 이것에차량 생산자가 이러한 미래에 대한 예측의 품질을 확신하는 경우 의 블록여행 (에스). 동일한 항목에 대한 여러 TripUpdate 포함차량 라이더에 대한 예측 "팝인"을 방지합니다.차량 하나에서 전환여행 하류 여행에 영향을 미치는 지연에 대해 라이더에게 사전 통지합니다(예: 알려진지연 여행 사이에 예정된 경유 시간을 초과함).
  • 각각의TripUpdate 엔터티는 필요하지 않습니다.추가 같은 순서로 피드에예정 블록에서. 예를 들어 trip_ids 가 1, 2, 3인 여행이 있고 모두 하나의 블록에 속하는 경우차량 여행기여행 1, 그럼여행 2, 그리고 나서여행 3,trip_update 엔티티는 임의의 순서로 나타날 수 있습니다(예: 추가여행 2, 그럼여행 1, 그리고 나서여행 3이 허용됩니다.

StopTimeUpdate

이동 업데이트는 StopTimeUpdates 라고 하는 차량 정차 시간에 대한 하나 이상의 업데이트로 구성됩니다. 과거 및 미래의 정지 시간에 대해 제공될 수 있습니다. 정지 시간을 지나서 취소할 수 있지만 필수는 아닙니다. 생산자는 주어진 여행에 대해 미래에 예정된 도착 시간이 있는 정류장을 참조하는 경우(예: 차량이 일정보다 앞서 정류장을 통과한 경우) 과거 StopTimeUpdate 를 삭제해서는 안 됩니다. 이 정류장.

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

  • 정류장 4 - 오전 10시 18분 예상 (오전 10시 20분 예정 - 2분 일찍)
  • 정류장 5 – 오전 10시 30분 예상 (오전 10시 30분 예정 – 정시)

...버스가 실제로 오전 10시 18분에 정류장을 통과하더라도 오전 10시 21분까지는 피드에서 4번 정류장에 대한 예측을 삭제할 수 없습니다. 정류장 4에 대한 StopTimeUpdate 가 오전 10:18 또는 오전 10:19에 피드에서 삭제되고 예정된 도착 시간이 오전 10:20인 경우 소비자는 해당 시간에 정류장 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에 대한 모든 StopTimeUpdates에 stop_sequence를 제공해야 합니다.

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

StopTimeUpdate 에 대해 기본 일정 관계는 예약 됩니다. (이는 여행 일정 관계와 다릅니다). 정류장이 정차하지 않는 경우 건너뛰기 로 변경하거나 일부 여행에 대한 실시간 데이터만 있는 경우 데이터 없음 으로 변경할 수 있습니다.

업데이트는 stop_sequence(또는 여행에서 발생한 순서대로 stop_id)별로 정렬해야 합니다 .

이동 중에 하나 이상의 경유지가 누락된 경우 업데이트로 인한 delay (또는 업데이트에 time 만 제공된 경우 시간을 GTFS 일정 time 과 비교하여 계산된 지연)이 모든 후속 경유지에 전파됩니다. 즉, 특정 정류장의 정류장 시간을 업데이트하면 다른 정보가 없을 때 모든 후속 정류장이 변경됩니다. SKIPPED 일정 관계가 있는 업데이트는 지연 전파를 중지하지 않지만 SCHEDULED (일정 관계가 제공되지 않은 경우 기본값) 또는 NO_DATA 일정 관계가 있는 업데이트는 중지합니다.

예 1

20개의 정류장이 있는 이동의 경우 현재 정류장의 stop_sequence에 대한 도착 지연 및 출발 지연이 0( StopTimeEvents )인 StopTimeUpdate 는 이동이 정시에 정확히 있음을 의미합니다.

예 2

동일한 이동 인스턴스에 대해 세 가지 StopTimeUpdate 가 제공됩니다.

  • stop_sequence 3에 대한 300초 지연
  • stop_sequence 8에 대한 60초 지연
  • stop_sequence 10에 대한 NO_DATAScheduleRelationship 관계

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

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

TripDescriptor

TripDescriptor에서 제공하는 정보는 업데이트 중인 여행의 일정 관계에 따라 다릅니다. 설정할 수 있는 여러 가지 옵션이 있습니다.

논평
Scheduled 이 이동은 GTFS 일정에 따라 실행 중이거나 여전히 연결할 수 있을 만큼 가깝습니다.
Added 이 여행은 예정되지 않았으며 추가되었습니다. 예를 들어, 수요에 대처하거나 고장난 차량을 교체하기 위해.
Unscheduled 이 이동은 실행 중이며 일정과 연결되지 않습니다. 예를 들어 일정이 없고 버스가 셔틀 서비스로 운행되는 경우입니다.
Canceled 이 여행은 예정되어 있었지만 지금은 삭제되었습니다.
Duplicated 이 새 여행은 서비스 시작 날짜 및 시간을 제외하고 정적 GTFS에 있는 기존 여행의 사본입니다. 새 여행은 TripProperties에 지정된 서비스 날짜 및 시간에 실행됩니다.

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

trip_id가 반복되는 시스템

반복적인 trip_id를 사용하는 시스템의 경우(예: 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시 5분쯤 우리는 여행이 10시 10분이 아니라 10시 13분에 시작된다는 것을 갑자기 알게 됩니다. 새로운 실시간 피드에서 여전히 이 여행을 식별할 수 있지만(T, 2015-05-25, 10:10:00) 첫 번째 정류장에서 출발하는 StopTimeUpdate를 10:13:00에 제공합니다.

대체 여행 매칭

빈도 기반이 아닌 여행은 다음 조합을 포함하여 aTripDescriptor에 의해 고유하게 식별될 수도 있습니다.

  • route_id
  • direction_id
  • start_time
  • start_date

여기서 start_time은 제공된 ID 조합이 고유한 이동으로 확인되는 한 정적 일정에 정의된 예정된 시작 시간입니다.

Uncertainty

Uncertainty은 StopTimeUpdate 의 시간과 지연 값 모두에 적용됩니다. Uncertainty은 실제 지연의 예상 오류를 초 단위의 정수로 대략적으로 지정합니다(그러나 정확한 통계적 의미는 아직 정의되지 않음). 예를 들어 컴퓨터 타이밍 제어 하에 운행되는 열차의 경우 uncertainty이 0이 될 수 있습니다.

예를 들어 4분의 오류 창(즉, +2/-2분) 내에 다음 정류장에 도착하는 데 15분의 지연이 예상되는 장거리 버스의 uncertainty 값은 240입니다.