需要 Network Analyst 许可。
要在网络数据集中为基于计划的公共交通服务进行建模,则网络必须包含一组特定的表和要素类以及一个特定方案,其中该方案用于定义公共交通停靠点、线路和可使用公共交通服务的日期与时间。 这些表和要素类包含 Network Analyst 公共交通数据模型,且会在下文中进行介绍。
可以通过将基于时间的成本属性配置为使用公共交通赋值器,来在网络数据集中使用这些表和要素类。其中,公共交通赋值器将根据数据模型中定义的公共交通计划计算一天内特定时间沿各个公交线路的行驶时间。
注:
通过运行 GTFS 转公共交通数据模型和将公共交通数据模型连接至街道地理处理工具,可以根据通用交通数据规范 (GTFS) 公共交通数据自动创建一组有效的公共交通数据模型表和要素类。 创建此类网络数据集的完整工作流将在创建和使用具有公共交通数据的网络数据集中介绍。
Network Analyst 公共交通数据模型由四个要素类和七个表组成,其中,要素类必须位于将创建网络数据集的要素数据集中,表必须位于该要素数据集的父地理数据库中。 数据必须包含在文件地理数据库或企业级地理数据库中;公共交通数据模型不支持 shapefile。 此外,由于公共交通数据模型需要具有特定名称的要素类和表,因此不能在同一地理数据库中包含多组公共交通数据模型要素类和表。 可以在同一组要素类和表中包含来自多个公共交通机构的数据,但地理数据库中最多只能有一组单独的要素类和表。
下表汇总了数据模型要素类和表以及它们之间的关系:
公共交通数据模型要素类和表
名称 | 描述 | 类型 | 必需项 |
---|---|---|---|
定义公共交通停靠点的位置和特征。 Stops 要素类为数据模型所必需,从而可对公共交通系统进行充分建模;但是,该要素类不会直接用于公共交通赋值器。 | 要素类 | Y | |
定义乘客可从街道或人行道进入公共交通停靠点的位置。 此要素类的主要用途是确保街道和公共交通线路之间的适当网络连通性。 StopsOnStreets 要素类并非数据模型所必需,也不会用于公共交通赋值器,但它对于建立网络数据集连通性很有用。 | 要素类 | N | |
在停靠点及由此停靠点相关联的 StopsOnStreets 要素所定义的街道位置之间创建连接。 此要素类的主要用途是确保街道和公共交通线路之间的适当网络连通性。 StopConnectors 要素类并非数据模型所必需,也不会用于公共交通赋值器,但它对于建立网络数据集连通性很有用。 | 要素类 | N | |
用于定义公共交通线路的折线要素。 每个 LineVariantElements 要素直接连接一对相邻的停靠点。 在网络数据集中,LineVariantElements 边源应使用成本属性中的公共交通赋值器来根据计划的服务对实际公共交通行驶时间进行建模。 公共交通赋值器将通过查询各种公共交通数据模型表,根据公共交通计划计算在特定时间沿线变量元素的行驶时间。 线路变量元素的长度和形状不会用于公共交通赋值器,因此要素几何并不重要。 | 要素类 | Y | |
定义公共交通线路或路线的一般特征。 | 表格 | Y | |
定义线路的变化。 例如,公共交通线路可能有两个不同的终点站,某些行程会前往一个终点站,而其他行程前往另一个终点站。 其中每一个行程都是单独的线路变量。 每个线路变量由线路变量元素组成。 | 表格 | Y | |
定义与线路变量相关的唯一行驶时间模式。 例如,假设在高峰时段,公交车沿公交线路行驶,每次停靠间隔为五分钟,但在非高峰时段,每次停靠间隔只需三分钟。 Schedules 表将包含五分钟的条目和三分钟的另一个条目。 | 表格 | Y | |
定义沿每个线路变量元素的计划行驶时间,该线路变量元素是与计划相关联的线路变量的一部分。 计划元素的序列用于定义特定计划线路变量元素相应序列的行驶时间。 | 表格 | Y | |
使用特定计划定义的行驶时间模式定义公共交通行程开始服务时的特定起始时间。 | 表格 | Y | |
定义公共交通服务将在一周中的哪几天以及哪些日期范围内运行。 Calendars 表是必需的,但如果您不需要定义常规公共交通服务,则不必包含所有行。 如果该表为空,则必须填充 CalendarExceptions 表。 这些表也可以一起使用。 | 表格 | Y | |
定义常规服务的例外情况,例如将添加或删除公共交通服务的特定日期。 CalendarExceptions 表是必需的,但如果您不需要定义常规公共交通服务的所有例外情况,则不必包含所有行。 如果该表为空,则必须填充 Calendars 表。 这些表也可以一起使用。 | 表格 | Y |
要素类
数据模型中的要素类可用作网络数据集中的源要素类。 Stops 和 StopsOnStreets 要素类将是交汇点源,LineVariantElements 和 StopConnectors 要素类将是边源。 在网络数据集中,LineVariantElements 边源(代表公交线路段)应使用基于时间的成本属性中的公共交通赋值器来根据计划服务对公共交通行驶时间进行建模。 连接组可通过停靠点和连接器要素的形式控制街道和公共交通线路之间的行程。
停靠点
Stops 要素类用于定义公共交通停靠点的位置和特征。 它为数据模型所必需,从而可对公共交通系统进行充分建模;但是,该要素类不会直接用于公共交通赋值器。
Stops 要素类相当于 GTFS stops.txt 文件。
下表描述了 Stops 要素类的方案:
停靠点
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
Shape | 定义停靠点位置的点形状。 | 形状 | Y | N |
ID | 公共交通停靠点的唯一 ID。 | 长整型 | Y | N |
GStopID | 停靠点的 GTFS stop_id。 该字段仅用于提供信息。 | 文本 | N | Y |
GStopType | 指示此停靠点是表示常规公共交通停靠点(包含一个或多个常规站点的父站点),还是入站口。 可用的值如下所示:
如果停靠点位于站点内,则 ParentID 字段必须使用表示该停靠点父站点的另一个停靠点的 ID 值填充。 父站点要素的 GStopType 值必须为 1,停靠点的 GStopType 值必须为 0(或空)。 父站点不能是其他父站点的父项。 如果某个要素表示入站口 (GStopType 2),则 ParentID 字段必须存在,且必须使用表示以此要素为入口之父站点的另一个停靠点的 ID 值进行填充。 入站口不能使用常规停靠点作为其父站点。 仅父站点可以具有入站口。 如果 GStopType 字段不包含在表中,则所有停靠点都将被视为常规公共交通停靠点 (GStopType 0)。 在这种情况下,ParentID 字段内的所有值都将被忽略。 GStopType 字段相当于 stops.txt 文件中的 GTFS location_type 字段。 | 短整型 | N | Y |
ParentID | 当前停靠点或入站口父站点的 ID 值。 对于具有参考 ID 值的停靠点,其 GStopType 值应为 1。 | 长整型 | N | Y |
GStopParen | 停靠点或入站口父站点的 GTFS stop_id。 该字段仅用于提供信息。 | 文本 | N | Y |
GWheelchairBoarding | 指示停靠点、站点或入站口是否适合轮椅进入。 可用的值如下所示:
如果要素表示停靠点 (GStopType 0) 或入站口 (GStopType 2),且 GWheelchairBoarding 值为 0 或“空”,则要素会继承其从 ParentID 字段所指定父站点的 GWheelchairBoarding 值(如果有)。 GWheelchairBoarding 字段相当于 stops.txt 文件中的 GTFS wheelchair_boarding 字段。 | 短整型 | N | Y |
StopsOnStreets
StopsOnStreets 要素类定义乘客可从街道或人行道进入公共交通停靠点的位置。 StopsOnStreets 要素可以表示入站口的位置,或者也可表示与停靠点位置相交的街道或人行道的最近交点,以确保网络连通性。
StopsOnStreets 要素类并非数据模型所必需,但它有助于建立正确的网络数据集连通性,因为停靠点不太可能直接落在街道上。 如果打算对沿着街道行走并使用公共交通系统的旅行者进行建模,您需要采用某种方式以受控方式将公交线路与街道连接起来,因此建议使用此要素类。
StopsOnStreets 要素类没有必需的方案。 如果使用将公共交通数据模型连接至街道工具创建此要素类,它将具有与 Stops 要素类相同的方案。 但是,此要素类不会用于公共交通赋值器,因此,您可以使用最适用于正在建模的字段的内容。
StopConnectors
StopConnectors 要素类定义用于通过对应 StopsOnStreets 要素的方式使停靠点与街道相连接的折线要素。 此要素类的主要用途是确保街道和公共交通线路之间的适当网络连通性。 这允许旅行者沿着街道行走、进入公共交通停靠点,使用沿公共交通线路(LineVariantElements 要素)的计划公共交通服务,在另一个停靠点离开公共交通线路,然后返回街道继续步行到目的地。
StopConnectors 要素类并非数据模型所必需,且不会用于公共交通赋值器。 但是,由于停靠点不太可能直接落在街道上,因此建议使用连接器以确保公共交通线路和街道之间的连通性。
下表描述了 StopConnectors 要素类的方案:
StopConnectors
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
Shape | 要素的折线形状。 停靠点连接器要素的数字化方向应该是从停靠点到街道。 | 形状 | Y | N |
StopID | 通过此 StopConnectors 要素连接至街道的停靠点 ID 字段值。 | 长整型 | N | Y |
ConnectorType | 指示此要素在停靠点和街道之间建立的连接类型。 ConnectorType 值指示此连接线表示停靠点与街道之间的直接连接,从停靠点到其父站点的连接,还是从父站点到入站口的连接。 可用的值如下所示:
此字段并非必需,但其有助于在成本或限制属性上设置数赋值器。 例如,成本属性可能会根据 ConnectorType 字段值添加不同的步行时间成本。 | 短整型 | N | Y |
GWheelchairBoarding | 指示此连接线所表示的停靠点与街道之间的路径是否适合轮椅进入。 可用的值如下所示:
此字段有助于在网络数据集中创建限制属性,以模拟乘坐轮椅的乘客。 | 短整型 | N | Y |
LineVariantElements
LineVariantElements 要素类定义表示公共交通线路的折线。 每个线路变量元素表示沿两个相邻公共交通停靠点之间的公共交通线路行驶。
在网络数据集中,LineVariantElements 边源应使用成本属性中的公共交通赋值器来根据计划的服务对公共交通行驶时间进行建模。 公共交通赋值器通过查询各种公共交通数据模型表,根据公共交通计划计算在特定时间沿线变量元素的行驶时间。 线路变量元素的长度和形状不会用于公共交通赋值器,因此实际几何并不重要。
下表描述了 LineVariantElements 要素类的方案:
LineVariantElements
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
Shape | 交通线路段的折线形状。 公共交通赋值器不使用线路要素的长度和形状来计算行驶时间。 相反,行驶时间是从存储在数据模型表中的公共交通计划推导得出的。 因此,尽管线路变量元素必须具有形状才能模拟网络数据集中的连通性,但是特定形状与行驶时间计算无关。 如果使用 GTFS 转公共交通数据模型工具根据 GTFS 数据创建数据模型表,则线路变量元素将是连接相邻交通停靠点的简单直线,并且不代表交通系统中车辆行驶的地理路径。 | 形状 | Y | N |
LineVarID | 包含此线路变量元素的线路变量 ID 字段值。 线路变量由有序线路变量元素序列组成,其中线路变量元素是连接沿交通线路的交通停靠点的特定序列。 | 长整型 | Y | N |
SqIdx | 线路变量由有序线路变量元素序列组成,其中线路变量元素是连接沿交通线路的交通停靠点的特定序列。 SqIdx 字段表示沿此线路变量元素所在交通线路的序列,从 1 开始。 例如,如果一个线路变量包含 10 个线路变量元素,则 SqIdx 的第一个线路变量元素的值为 1。 线路变量中的第二个线路变量元素的 SqIdx 将为 2,且最后(第十个)线路变量元素的 SqIdx 将为 10。 ScheduleElements 表中的 SqIdx 值必须与此处为线路变量元素定义的 SqIdx 值相匹配。 | 短整型 | Y | N |
FromStopID | 线路变量元素表示沿两个相邻公共交通停靠点之间的公共交通线路行驶。 FromStopID 字段表示沿此线路变量元素的交通服务发生中断的停靠点 ID 字段值。 沿此线路变量元素的交通服务从 FromStopID 到 ToStopID。 | 长整型 | N | Y |
ToStopID | 线路变量元素要素表示沿两个相邻公共交通停靠点之间的公共交通线路行程。 ToStopID 字段表示沿此线路变量元素的交通服务已到达或将前往的停靠点 ID 字段值。 沿此线路变量元素的交通服务从 FromStopID 到 ToStopID。 | 长整型 | N | Y |
表
数据模型中的表定义了公共交通计划。 公共交通赋值器将使用这些表来确定沿 LineVariantElements 要素根据计划交通服务在一天内特定时间的行驶时间。
线
Lines 表用于定义交通线路或路线及其特征。 等同于 GTFS 路线的线路。
下表描述了 Lines 表的方案:
线
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
ID | 公交线路的唯一 ID。 | 长整型 | Y | N |
GRouteID | 线路的 GTFS route_id。 该字段仅用于提供信息。 | 文本 | N | Y |
GRouteType | 此线路表示的公共交通模式。 可用的值如下所示:
GRouteType 字段相当于 routes.txt 文件中的 GTFS route_type 字段。 | 短整型 | N | Y |
LineVariants
LineVariants 表定义了线路的变化。 例如,公共交通线路可能有两个不同的终点站,某些行程会前往一个终点站,而其他行程前往另一个终点站。 线路变量由有序线路变量元素序列组成,其中线路变量元素是连接沿交通线路的交通停靠点的特定序列。
下表描述了 LineVariants 表的方案:
LineVariants
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
ID | 相关联设施点的唯一 ID。 | 长整型 | Y | N |
LineID | 此线路变量所属 Lines 中行的 ID 字段值。 多个线路变量可以具有相同的 LineID,每一个变量表示属于给定线路的线路变量元素的不同模式。 | 长整型 | Y | N |
计划
Schedules 表定义与线路变量相关的唯一行驶时间模式。 例如,也许在高峰时段,公交车沿公交线路行驶,每次停靠间隔为五分钟,但在非高峰时段,每次停靠间隔只需三分钟。 Schedules 表将包含五分钟的条目和三分钟的另一个条目。 计划的各个组成部分将在 ScheduleElements 表中定义。 计划特定于线路变量。
下表描述了 Schedules 表的方案:
计划
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
ID | 计划的唯一 ID。 | 长整型 | Y | N |
LineVarID | 与此计划相关联的 LineVariants 表中行的 ID 字段值。 | 长整型 | Y | N |
ScheduleElements
ScheduleElements 表用于定义特定计划的每个线路变量元素的行驶时间。 计划元素的有序序列用于定义特定计划线路变量元素相应序列的行驶时间。 ScheduleElements 表必须包含 Schedules 表中每行的行序列。
下表描述了 ScheduleElements 表的方案:
ScheduleElements
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
ScheduleID | 此计划元素所属 Schedules 表中行的 ID 字段值。 计划由序列元素的有序序列组成。 | 长整型 | Y | N |
SqIdx | 计划由序列元素的有序序列组成,每个计划元素与 Schedules 表和 LineVariantElements 要素类引用的线路变量中相应线路变量元素相匹配。 SqIdx 字段表示沿此计划元素所属交通线路的线路变量元素的序列,从 1 开始。 例如,如果一个线路变量包含 10 个线路变量元素,则 SqIdx 的第一个线路变量元素的值为 1。 线路变量中的第二个线路变量元素的 SqIdx 将为 2,且最后(第十个)线路变量元素的 SqIdx 将为 10。 每个计划元素相应的 SqIdx 值必须与 LineVariantElements 要素类中的 SqIdx 值相匹配。 在上面的示例中,假设线路变量具有与之关联的特定计划。 该计划的第一个计划元素的 SqIdx 值必须为 1,第二个值必须为 2,而最后一个(第十个)的值必须为 10,如同线路变量元素一样。 如果上述线路变量具有与之相关的其他计划,则 ScheduleElements 表必须包含与定义附加计划相关行驶时间的 SqIdx 值具有相同序列的其他线路序列。 | 短整型 | Y | N |
Departure | 交通车辆依照与计划相同的 LineVarID 和本计划元素的 SqIdx 离开线路变量元素起始停靠点的分钟数(从 0 开始计)。 如果交通行程在离开整条线路的第一个停靠点 20 分钟后离开此停靠点,则 Departure 值为 20。 SqIdx 值为 1 的计划元素 Departure 值必须始终为 0。 | 双精度 | Y | N |
Arrival | 交通车辆依照与计划相同的 LineVarID 和本计划元素的 SqIdx 到达线路变量元素终点的分钟数(从 0 开始计)。 如果交通行程在离开整条线路的第一个停靠点 23 分钟后到达此路段的终点,则 Arrival 值为 23。 | 双精度 | Y | N |
Runs
Runs 表定义了交通行程沿线路变量元素的一个序列开始服务时的特定开始时间,使用特定计划定义的行驶时间。 Run 相当于 GTFS 行程。 Runs 表还定义了一天中此时间服务于此路线的特定交通车辆上是否可以携带轮椅和自行车。
下表描述了 Runs 表的方案:
Runs
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
ID | 运行的唯一 ID。 | 长整型 | Y | N |
ScheduleID | 此运行所属 Schedules 表中行的 ID 字段值。 本选项定义了此次运行将遵循的行驶时间模式。 | 长整型 | Y | N |
StartRun | 交通车辆自第一个停靠点出发后的分钟数,自午夜开始计算。 例如,如果运行于上午 8:00 开始,则 StartRun 值应为 480,因为自午夜开始,上午 8:00 为 8 小时,即 480 分钟。 | 双精度 | Y | N |
GTripID | 与此运行相关联的 GTFS trip_id。 该字段仅用于提供信息。 | 文本 | N | Y |
CalendarID | Calendars 表中行的 ID 字段值和 CalendarExceptions 表(该表用于定义此运行执行服务时的工作日或日期)中的相应 CalendarID 字段值。 | 长整型 | Y | N |
GWheelchairAccessible | 指示运行是否适合轮椅进入。 可用的值如下所示:
该字段为可选字段。 如果该字段不存在,公共交通赋值器会视为所有运行对于乘坐轮椅出行者均可用。 GWheelchairAccessible 字段相当于 trips.txt 文件中的 GTFS wheelchair_accessible 字段。 | 短整型 | N | Y |
GBikesAllowed | 指示此运行是否允许自行车。 可用的值如下所示:
该字段为可选字段。 如果该字段不存在,公共交通赋值器会视为所有运行对于自行车出行者均可用。 GBikesAllowed 字段相当于 trips.txt 文件中的 GTFS bikes_allowed 字段。 | 短整型 | N | Y |
Calendars
Calendars 表定义公共交通服务将在一周中的哪几天以及哪些日期范围内运行。
在使用特定日期求解网络分析时,公共交通赋值器会考虑由 Calendars 表中 StartDate 和 EndDate 字段定义的日期范围。 在使用一般工作日求解网络分析时,将忽略 StartDate 和 EndDate 字段,仅工作日字段(例如 Monday)用于定义在分析当天运行的运输服务。
此表是数据模型所必需的,但如果您不需要定义常规公共交通服务,则不必包含所有行。 但是,Calendars 或 CalendarExceptions 必须使用行进行填充。 如果 Calendars 和 CalendarExceptions 均已填充,则 CalendarExceptions 会修改在 Calendars 中定义的常规服务。
下表列出 Calendars 表的方案:
Calendars
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
ID | 日历的唯一 ID。 | 长整型 | Y | N |
GServiceID | 与此日历相关联的 GTFS service_id。 该字段仅用于提供信息。 | 文本 | N | Y |
Monday | 指示具有此 CalendarID 值的运行是否在星期一执行。 可用的值如下所示:
| 短整型 | Y | N |
Tuesday | 指示具有此 CalendarID 值的运行是否在星期二执行。 可用的值如下所示:
| 短整型 | Y | N |
Wednesday | 指示具有此 CalendarID 值的运行是否在星期三执行。 可用的值如下所示:
| 短整型 | Y | N |
Thursday | 指示具有此 CalendarID 值的运行是否在星期四执行。 可用的值如下所示:
| 短整型 | Y | N |
Friday | 指示具有此 CalendarID 值的运行是否在星期五执行。 可用的值如下所示:
| 短整型 | Y | N |
Saturday | 指示具有此 CalendarID 值的运行是否在星期六执行。 可用的值如下所示:
| 短整型 | Y | N |
Sunday | 指示具有此 CalendarID 值的运行是否在星期日执行。 可用的值如下所示:
| 短整型 | Y | N |
StartDate | 此数据集操作所描述的公共交通服务的日期范围的开始。 在使用特定日期求解网络分析时,如果分析日期在 StartDate 与 EndDate 日期范围内,则公共交通赋值器仅使用此 CalendarID 值运行。 在使用一般工作日求解网络分析并且仅使用工作日字段(例如 Monday)时,将会忽略 StartDate 和 EndDate 日期范围。 | 日期 | N | N |
EndDate | 此数据集操作所描述的公共交通服务的日期范围的结束。 EndDate 所描述的日期包含在日期范围内。 在使用特定日期求解网络分析时,如果分析日期在 StartDate 与 EndDate 日期范围内,则公共交通赋值器仅使用此 CalendarID 值运行。 在使用一般工作日求解网络分析并且仅使用工作日字段(例如 Monday)时,将会忽略 StartDate 和 EndDate 日期范围。 | 日期 | N | N |
CalendarExceptions
CalendarExceptions 表定义常规公共交通服务的例外情况,例如将添加或删除公共交通服务的特定日期。 如果网络分析配置为使用特定日期而非一般工作日,则公共交通赋值器仅使用此表中的例外日期。
此表是数据模型所必需的,但如果您不需要定义常规公共交通服务的任何例外,则不必包含所有行。 但是,Calendars 或 CalendarExceptions 必须使用行进行填充。 如果 Calendars 和 CalendarExceptions 均已填充,则 CalendarExceptions 会修改在 Calendars 中定义的常规服务。 如果 Calendars 表为空,所有公共交通服务都在 CalendarExceptions 中通过在特定日期显式添加服务的方式定义。 在这种情况下,必须在网络分析中使用特定日期,而不是一般工作日。
下表描述了 CalendarExceptions 表的方案:
CalendarExceptions
字段名 | 描述 | 类型 | 必需项 | 可为空 |
---|---|---|---|---|
ObjectID | 表行的 ObjectID。 | ObjectID | Y | N |
CalendarID | 可能也可能不会与 Calendars 表内 ID 字段中值相对应的例外 ID。 如果值出现在 Calendars 中,则例外会修改此处定义的常规服务。 此字段中的值不必是唯一的,而 CalendarID 和 ExceptionDate 的每一种唯一组合应该只出现一次。 | 长整型 | Y | N |
GServiceID | 与此 CalendarException 相关联的 GTFS service_id。 该字段仅用于提供信息。 | 文本 | N | Y |
ExceptionDate | 将添加或删除此例外所描述的交通服务的日期。 | 日期 | Y | N |
GExceptionType | 指示是否在 ExceptionDate 字段所描述的日期添加或删除交通服务。 可用的值如下所示:
GExceptionType 字段相当于 calendar_dates.txt 文件中的 GTFS exception_type 字段。 | 短整型 | Y | N |