跳转至

路线、站点和行程


路由

路线是固定路线交通运营的核心,因为它们描述了交通网络的地理范围。在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 在AB省卡尔加里市经营轻轨、快速公交、普通公交、准公交和按需公交。在这个例子中,定义了两条线路,第一条是公共汽车,第二条是轻轨。使用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
  • 第二条是轻轨,因此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_codestop_name通常包含面向乘客的信息
  • 使用坐标(stop_latstop_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,其余日子的字段被填充为0。这项服务从2022年6月23日开始,到2022年9月3日结束,如字段start_dateend_date下所示。

在这个例子中,文件trips.txt描述了3个周末的行程,这些行程由上面描述的MAX橙色路线提供。

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.txt中列出了与MAX Orange对应的route_id
  • 列出了calendar.txt中与周末相对应的service_id
  • 每条记录都包含每个行程的唯一id提供车头标志文本,这就是通常显示在巴士内部和外部的标志上的内容。
  • direction_id字段允许区分同一路线上不同方向的车次。例如,区分进站和出站的车次,或南行和北行的车次。
  • 在这种情况下,往Saddletowne方向的车次,direction_id=0,往Brentwood方向的车次,direction_id=1。direction_id中的值没有内在的意义,它们只是用来指定一个旅行方向与另一个旅行方向。
  • shapes.txt中的shape_id,对应于往Saddletowne方向的MAX Orange路线,被列在第一条记录中,MAX Orange往Brentwood方向的路线被列在第二和第三条记录中。

shape_id=3030026对应于朝向Saddletowne的MAX Orange。下面的文件包括勾勒路线的点的信息以及这些点之间的距离。有了这些信息,就有可能在地图上绘制路线,用于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

服务例外

可以定义服务的例外情况,如额外服务日(特殊日子)或取消的服务日(如节假日不提供服务)。

例如,如果2022年7月17日星期日没有预定的服务--那么该日期可以通过将服务一分为二从calendar.txtweekend_service中删除。

服务 开始 结尾
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被列出。
  • 移除或额外服务的日期列在date下(2022年7月17日)。
  • 字段exception_type被设置为2,这意味着这一天的服务被取消。

例子来源