Перейти к содержанию

Маршруты, остановки и поездки


Маршруты

Маршруты являются основой работы маршрутных транспортных средств, поскольку они описывают географический охват транзитной сети. В GTFS определение маршрутов - это первый шаг к описанию работы транзитного агентства.

Первым шагом является добавление информации об агентстве, как показано в файле agency.txt ниже. Этот файл содержит высокоуровневую информацию об агентстве.

agency.txt

agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone
CT,Calgary Transit,http://www.calgarytransit.com,America/Edmonton,,403-262-1000

Calgary Transit управляет LRT, BRT, регулярным автобусным сообщением, паратранзитом и транспортом по требованию в Калгари, AB. В данном примере определены два маршрута, первый - автобусный, а второй - LRT. Используя файл routes.txt, каждому маршруту присваивается уникальный id, короткое и длинное название для удобства чтения.

routes.txt

agency_id,route_id,route_short_name,route_long_name,route_type,route_url,route_color,route_text_color
CT,303-20670,303,MAX Orange Brentwood/Saddletowne,3,www.calgarytransit.com/content/transit/en/home/rider-information/max.html,#ff8000,#ffffff
CT,202-20666,202,Blue Line - Saddletowne/69 Street CTrain,0,www.calgarytransit.com/content/transit/en/home/rider-information/lrt-and-bus-station-maps.html,#ff0000,#ffffff

Пятое поле (route_type) используется для различения типов маршрутов:

  • Первый - автобусный, следовательно, route_type=3.
  • Второй - LRT, следовательно, route_type=0.
  • Полный список значений для параметра route_type можно найти здесь.

Остальные поля содержат дополнительную информацию, такую как url, специфичный для маршрута, а также цвета, характерные для конкретного агентства, для представления услуг на карте.


Остановки

В GTFS остановки и станции описываются с помощью файла stops.txt, ниже, в первой записи определена автобусная остановка, а во второй - станция ЛРТ.

stops.txt

stop_id,stop_code,stop_name,stop_lat,stop_lon,location_type
8157,8157,44th Avenue NE (SB),51.091106,-113.958565,0
6810,6810,NB Marlborough CTrain Station,51.058990,-113.981582,1
  • stop_id - уникальный идентификатор
  • stop_code и stop_name обычно содержат информацию, ориентированную на пассажиров.
  • Точное местоположение предоставляется с помощью координат (stop_lat и stop_lon).
  • Шестое поле (location_type) используется для отличия остановок от станций.
  • Первая запись соответствует автобусной остановке, следовательно, location_type=0
  • Вторая запись соответствует станции, следовательно, location_type=1
  • Полный список значений для location_type можно найти здесь

Поездки

После описания маршрутов агентства теперь можно описать поездки, которые обслуживает каждый маршрут.

Сначала необходимо определить период обслуживания с помощью файла calendar.txt.

calendar.txt

service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
weekend_service,0,0,0,0,0,1,1,20220623,20220903

Здесь описывается услуга, которая работает только по субботам и воскресеньям, поэтому поля для этих дней заполнены 1, а поля для остальных дней заполнены нулями. Эта услуга работает с 23 июня 2022 года по 3 сентября 2022 года, как показано в полях start_date и end_date.

В этом примере файл trips.txt описывает 3 поездки по выходным, которые обслуживаются маршрутом MAX Orange, описанным выше.

trips.txt

route_id,service_id,trip_id,trip_headsign,direction_id,shape_id
303-20670,weekend_service,60270564,"MAX ORANGE SADDLETOWNE",0,3030026
303-20670,weekend_service,60270565,"MAX ORANGE BRENTWOOD",1,3030027
303-20670,weekend_service,60270566,"MAX ORANGE BRENTWOOD",1,3030027
  • В файле routes routes.txt указан route_id, соответствующий MAX Orange.
  • Перечислен service_id из calendar.txt, соответствующий выходным.
  • Каждая запись содержит уникальный id для каждой trip Представлен text заголовка, который обычно отображается на табличках внутри и снаружи автобуса.

  • Поле direction_id позволяет различать поездки по одному и тому же маршруту, следующие в разных направлениях. Например, различие между входящими и исходящими поездками - или поездками в южном направлении и поездками в северном направлении.

  • В данном случае поездки в направлении Saddletowne имеют direction_id=0, а поездки в направлении Brentwood - direction_id=1. Значения в direction_id не имеют собственного значения, они используются только для определения одного направления движения по сравнению с другим.
  • Для первой записи указан shape_id из shapes.txt, который соответствует маршруту MAX Orange в направлении Saddletowne, а для второй и третьей записей - для маршрута MAX Orange в направлении Brentwood.

shape_id=3030026 соответствует MAX Orange в направлении Saddletowne. В приведенном ниже файле содержится информация о точках, очерчивающих маршрут, а также расстояние между этими точками. С помощью этой информации можно нанести маршрут на карту для планирования trip или аналитических целей.

shapes.txt

shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence,shape_dist_traveled
3030026,51.086506,-114.132259,10001,0.000
3030026,51.086558,-114.132371,10002,0.010
3030026,51.086781,-114.132865,10003,0.052
3030026,51.086938,-114.133179,10004,0.080
3030026,51.086953,-114.133205,10005,0.083
3030026,51.086968,-114.133224,10006,0.085
3030026,51.086992,-114.133249,10007,0.088
3030026,51.087029,-114.133275,10008,0.093
3030026,51.087057,-114.133286,10009,0.096
3030026,51.087278,-114.133356,10010,0.121
3030026,51.087036,-114.132864,10011,0.165
3030026,51.086990,-114.132766,10012,0.173
3030026,51.086937,-114.132663,10013,0.183

Исключения услуг

Можно определить исключения для услуги, такие как added дни обслуживания (специальные дни) или УБРАННЫЕ дни обслуживания (например, отсутствие обслуживания в праздничные дни).

Например, если в воскресенье 17 июля 2022 года нет scheduled обслуживания - тогда эту дату можно удалить из weekend_service в calendar.txt, разбив обслуживание на две части:

Сервис начинать конец
weekend_service1 20220623 20220716
weekend_service2 20220718 20220903

Однако это усложняет файл, так как service_id разбивается на две части, и это разбиение будет каскадировать на trips.txt. Вместо этого можно сделать это более простым способом, используя calendar_dates.txt, как показано ниже:

calendar_dates.txt

service_id,date,exception_type
weekend_service,20220623,2
  • Указан service_id weekend_service
  • Дата удаленной или added услуги указывается под date (17 июля 2022 года).
  • Поле exception_type установлено в 2, что означает, что услуга удалена на этот день.

Пример источника