Маршруты, остановки и поездки¶
Маршруты¶
Маршруты являются основой работы маршрутных транспортных средств, поскольку они описывают географический охват транзитной сети. В GTFS определение маршрутов - это первый шаг к описанию работы транзитного агентства.
Первым шагом является добавление информации об агентстве, как показано в файле 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, короткое и длинное название для удобства чтения.
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, ниже, в первой записи определена автобусная остановка, а во второй - станция ЛРТ.
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.
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, описанным выше.
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 или аналитических целей.
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, как показано ниже:
service_id,date,exception_type
weekend_service,20220623,2
- Указан
service_id
weekend_service
- Дата удаленной или added услуги указывается под
date
(17 июля 2022 года). - Поле
exception_type
установлено в 2, что означает, что услуга удалена на этот день.