根据 GTFS 生成形状要素 (公共交通)

摘要

用于生成公共交通系统中车辆所行驶路径的预估。 该工具的输出可用于为 GTFS 公共交通数据集生成新的 shapes.txt 文件。

可选 GTFS shapes.txt 文件包含交通系统中交通车辆所采用地理路径的制图表达。 要在地图上正确显示公交路线,一个较好的 shapes.txt 文件对于基于 GTFS 的路径选择应用程序非常重要。 虽然许多交通机构都会使用其车辆上的 GPS 追踪器来生成其 shapes.txt 文件,但是其他缺少此硬件的交通机构可能无法创建此文件。

将此工具与要素转 GTFS 形状工具配合使用,可以基于现有 GTFS 数据集中的停靠点、路径和计划信息表创建 shapes.txt 文件。 该工具将为公交系统中车辆所使用的地理路径生成预估,并将输出写入要素类。 要素转 GTFS 形状工具可将形状导出到新的 shapes.txt 文件中,在运行该工具之前,可以查看并编辑这些线要素。

此工具可用于包含 3 个主要步骤的工作流中:

  1. 可以运行此工具以生成交通系统中车辆所使用地理路径的预估。
  2. 可以使用地图以检查每个预估形状,然后使用标准编辑工具进行校正。
  3. 运行要素转 GTFS 形状工具,为 GTFS 数据集创建 shapes.txt 文件。

注:

GTFS 形状转要素工具和根据 GTFS 生成形状要素工具用于不同的目的。 如果您的 GTFS 数据集包括现有的 shapes.txt 文件,且您希望将这些形状转换为要显示在地图中的要素类,请使用 GTFS 形状转要素。 如果您的 GTFS 数据集不包括现有的 shapes.txt 文件,且您希望根据 GTFS 数据集中包含的其他信息来估算形状并创建 shapes.txt 文件,请使用根据 GTFS 生成形状要素

使用情况

  • 针对数据中的每种交通模式,该工具将使用以下选项之一来预估公共交通网络的路径形状:

    • 直线 - 交通路径形状为连接相邻交通停靠点的直线。 这适用于地铁、轮渡或者其他不在街道上行驶的交通模式。
    • 使用道路网络生成的沿街路径 - 可以通过求解相邻停靠点之间的路径生成交通线形状,以模拟网络中沿道路行驶的车辆。
    可以选择针对数据中包含的每种公共交通模式使用的选项。 例如,可以使用网络为公交线路创建形状,并为地铁创建直线。 可以在网络的交通模式参数中进行配置。

    对于根据道路网络生成路径形状,系统提供两种选择:

    • 使用本地网络数据集 - 此选项需要 ArcGIS Network Analyst 扩展模块网络数据集
    • 使用门户服务 - 此选项需要具有路径选择权限和足够配额ArcGIS Online 账户或者已配置 ArcGIS Enterprise 路径选择服务的门户。 在运行此工具之前,您必须登录到该门户。

  • 在计算沿道路网络的路径形状时,Network Analyst 可能无法成功计算连接某些形状的停靠点的路径。 在这些情况下,由于无法创建网络形状,因此该工具将创建直线形状并返回一条警告消息,指示 shape_id 值受到影响。

  • 在检查并校正工具的输出时,可以使用定义查询以仅在地图上显示单个形状及其关联的停靠点。 可以在两个输出中使用 shape_id 字段以选择要显示的形状。 输出停靠点中的 sequence 字段可指示交通停靠点的访问顺序。

  • 注:

    此工具创建的输出形状要素是系统中交通车辆行驶的实际路径预估。 分别手动检查每个输出形状要素以确保该路径正确。

    在运行要素转 GTFS 形状工具之前,请检查此工具的形状要素输出,然后对形状几何进行校正。 由此可确保您的最终输出 shapes.txt 文件准确,并有助于避免 stop_times.txt 文件的 shape_dist_traveled 字段计算出现错误。

    除了对形状进行基本校正以准确表示行驶的路径之外,还可以对形状进行编辑以避免直接重叠线段。 如果公共汽车沿同一街道在两个方向上行驶并且在中心线上与自身重叠,则可以将形状线的每个方向稍微偏移到中心线的任一侧。

    可以使用修整编辑工具来校正形状几何。 要通过手动数字化地图中的形状来完全替换形状几何,请使用替换几何编辑工具。

    如果停靠点不在正确的位置,请使用 GTFS 停靠点转要素要素转 GTFS 停靠点工具对其进行校正,然后再次运行此工具。

  • 在检查和编辑工具输出时,可以编辑要素几何和属性,但是请勿删除任何行。 在运行要素转 GTFS 形状工具时,已删除的行可能会导致错误。

参数

标注说明数据类型
输入 GTFS 文件夹

一个文件夹,其中包含要为其新建 shapes.txt 文件的有效 GTFS 数据集。 该文件夹必须包含 GTFS stops.txttrips.txtroutes.txtstop_times.txt 文件。

Folder
输出交通形状线

一个线要素类,表示此工具计算的预估路径形状。 输出中的每行均表示此 GTFS 数据集所需的唯一形状。 可以编辑线几何,并使用此要素类作为要素转 GTFS 形状工具的输入。

Feature Class
输出形状停靠点

GTFS 交通停靠点的点要素类,其中 ID 可将其与该工具要创建的每个形状线相关联。 如果多个形状访问相同的 GTFS 停靠点,则此要素类将包含该停靠点的多个副本,一个副本对应于与该停靠点相关联的每个形状。 如果一次编辑一个形状线,则此要素类对定义查询非常有用。 可以使用此要素类作为要素转 GTFS 形状工具的输入。

注:

此输出要素类不等同于 GTFS 停靠点转要素工具的输出。 该工具将生成 GTFS 停靠点的要素类,这些要素类与原始数据集中的要素类完全相同;此工具可能会生成每个停靠点的多个副本,以将其与不同的形状相关联。 将此输出要素类与根据 GTFS 生成形状要素工具的其他输出配合使用以创建 shapes.txt 文件。

Feature Class
输出 GTFS 行程

输出 GTFS trips.txt 文件。 此文件将等同于输入 GTFS 文件夹中的 trips.txt 文件,但将包含添加的 shape_id 字段,已使用与输出交通形状线要素类中的 shape_id 字段对应的值填充该字段。

File
网络的交通模式
(可选)

指定将沿道路网络,而非直线生成线形状的交通模式。 将使用直线生成未选择的所有模式的形状。

通常,您应该选择在街道上运行的模式,例如公共汽车,因为道路网络可以最准确地表示这些模式。 请勿选择道路网络未进行模拟的模式。 例如,除非您的网络明确模拟渡轮车道,否则请勿使用网络来表示渡轮行驶的路径。

可以使用下表中的代码来指定模式。 这些模式对应于 GTFS 文档中的有效 GTFS routes.txt 文件的 route_type 字段值。

默认使用模式 3、5 和 11,

  • 有轨电车、地面电车、轻轨 (GTFS 0)有轨电车、地面电车、轻轨。 该模式对应于 GTFS route_type 0。
  • 地铁 (GTFS 1)地铁。 该模式对应于 GTFS route_type 1。
  • 铁路 (GTFS 2)铁路。 该模式对应于 GTFS route_type 2。
  • 公共汽车 (GTFS 3)公共汽车。 该模式对应于 GTFS route_type 3。
  • 渡轮 (GTFS 4)渡轮。 该模式对应于 GTFS route_type 4。
  • 缆道电车 (GTFS 5)缆道电车。 该模式对应于 GTFS route_type 5。
  • 空中缆车、缆索车、缆车、架空索道 (GTFS 6)空中缆车、缆索车、缆车、架空索道。 该模式对应于 GTFS route_type 6。
  • 索道 (GTFS 7)索道。 该模式对应于 GTFS route_type 7。
  • 无轨电车 (GTFS 11)无轨电车。 该模式对应于 GTFS route_type 11。
  • 单轨索道 (GTFS 12)单轨索道。 该模式对应于 GTFS route_type 12。
  • 其他交通模式此选项与其他选项未涵盖的任何公共交通模式相对应。
String
网络数据源
(可选)

网络数据集或服务,将用于计算沿道路网络的路径形状。 可以使用网络数据集的目录路径、网络数据集图层对象、网络数据集图层的字符串名称或网络分析服务的门户 URL。 网络必须包含至少一个出行模式

要使用门户 URL,您必须使用具有路径选择权限的账户登录门户。

如果使用 ArcGIS Online 作为网络数据源,则运行该工具将消耗配额

了解有关估算此工具的配额使用情况的详细信息

如果选择任何网络模式,则此参数为必需项。

注:

您选择的网络数据集应该适用于模拟在街道上行驶的交通车辆,例如公共汽车。 请勿使用经过配置的网络数据集,该网络数据集将公共交通数据与公共交通赋值器配合使用,因为此类型的网络将模拟乘坐公共交通的乘客,而非在街道上行驶的公共交通车辆。

Network Data Source
出行模式
(可选)

计算沿道路网络的路径形状时将使用的网络数据源上的出行模式。 可以指定出行模式作为出行模式的字符串名称,也可以作为 arcpy.nax.TravelMode 对象。

在沿道路网络行驶的交通系统中,可以使用最适用于模拟车辆的出行模式。

如果选择任何网络模式,则此参数为必需项。

注:

请勿将出行模式与使用公共交通赋值器的阻抗属性配合使用,因为该出行模式将模拟乘坐公共交通的乘客,而非在街道上行驶的交通车辆。

Network Travel Mode
车辆行驶的道路侧
(可选)

指定车辆在交通系统中行驶的道路侧。 这可用于确保访问正确道路侧上的停靠点。

  • 左侧车辆将行驶在道路左侧。
  • 右侧车辆将行驶在道路右侧。 这是默认设置。
String
方位角容差
(可选)

停靠点处交通车辆的预估行驶方向之间的最大允许角度以及该停靠点所在网络边的角度。 如果角度差值超过此值,则假设这并非要在其上定位停靠点的正确网络边,并且 Network Analyst 将继续搜索其他附近网络边以寻找更合适的网络边。

在计算沿道路网络的路径形状时,方位角和方位角容差可用于更精确地定位沿道路网络的交通停靠点。 根据当前停靠点与沿交通路径的上一个停靠点和下一个停靠点之间的角度,估算每个停靠点处交通车辆的方位角。

指定一个介于 0 到 180 之间的值,以度为单位。 默认值为 30。

Double
最大方位角差值
(可选)

上一个停靠点与当前停靠点站以及当前停靠点到下一个停靠点之间的最大允许方位角差。

根据当前停靠点与沿交通路径的上一个停靠点和下一个停靠点之间的角度,估算每个停靠点处交通车辆的方位角。 如果交通路径沿相对较直的道路,则此角度是方位角的良好表示。 但是,如果该路径出现转弯、调头、弯路或者改道进入停车场或旁路,则平均角度不是方位角的良好预估,使用此预估会导致要在网络上定位的停靠点远离其应有位置,并且会降低工具输出的质量。

如果上一个停靠点到当前停靠点以及当前停靠点到下一个停靠点的角度差值大于此参数中指定的值,则该工具将忽略方位角预估。 在这种情况下,停靠点将恢复为正常网络定位行为,并将捕捉到最近的非限制网络边。

指定一个介于 0 到 180 之间的值,以度为单位。 默认值为 65。

Double

arcpy.transit.GenerateShapesFeaturesFromGTFS(in_gtfs_folder, out_shape_lines, out_shape_stops, out_gtfs_trips, {network_modes}, {network_data_source}, {travel_mode}, {drive_side}, {bearing_tolerance}, {max_bearing_angle})
名称说明数据类型
in_gtfs_folder

一个文件夹,其中包含要为其新建 shapes.txt 文件的有效 GTFS 数据集。 该文件夹必须包含 GTFS stops.txttrips.txtroutes.txtstop_times.txt 文件。

Folder
out_shape_lines

一个线要素类,表示此工具计算的预估路径形状。 输出中的每行均表示此 GTFS 数据集所需的唯一形状。 可以编辑线几何,并使用此要素类作为要素转 GTFS 形状工具的输入。

Feature Class
out_shape_stops

GTFS 交通停靠点的点要素类,其中 ID 可将其与该工具要创建的每个形状线相关联。 如果多个形状访问相同的 GTFS 停靠点,则此要素类将包含该停靠点的多个副本,一个副本对应于与该停靠点相关联的每个形状。 如果一次编辑一个形状线,则此要素类对定义查询非常有用。 可以使用此要素类作为要素转 GTFS 形状工具的输入。

注:

此输出要素类不等同于 GTFS 停靠点转要素工具的输出。 该工具将生成 GTFS 停靠点的要素类,这些要素类与原始数据集中的要素类完全相同;此工具可能会生成每个停靠点的多个副本,以将其与不同的形状相关联。 将此输出要素类与根据 GTFS 生成形状要素工具的其他输出配合使用以创建 shapes.txt 文件。

Feature Class
out_gtfs_trips

输出 GTFS trips.txt 文件。 此文件将等同于输入 GTFS 文件夹中的 trips.txt 文件,但将包含添加的 shape_id 字段,已使用与输出交通形状线要素类中的 shape_id 字段对应的值填充该字段。

File
network_modes
[network_modes,...]
(可选)

指定将沿道路网络,而非直线生成线形状的交通模式。 将使用直线生成未选择的所有模式的形状。

通常,您应该选择在街道上运行的模式,例如公共汽车,因为道路网络可以最准确地表示这些模式。 请勿选择道路网络未进行模拟的模式。 例如,除非您的网络明确模拟渡轮车道,否则请勿使用网络来表示渡轮行驶的路径。

可以使用下表中的代码来指定模式。 这些模式对应于 GTFS 文档中的有效 GTFS routes.txt 文件的 route_type 字段值。

默认使用模式 3、5 和 11,

  • 0有轨电车、地面电车、轻轨。 该模式对应于 GTFS route_type 0。
  • 1地铁。 该模式对应于 GTFS route_type 1。
  • 2铁路。 该模式对应于 GTFS route_type 2。
  • 3公共汽车。 该模式对应于 GTFS route_type 3。
  • 4渡轮。 该模式对应于 GTFS route_type 4。
  • 5缆道电车。 该模式对应于 GTFS route_type 5。
  • 6空中缆车、缆索车、缆车、架空索道。 该模式对应于 GTFS route_type 6。
  • 7索道。 该模式对应于 GTFS route_type 7。
  • 11无轨电车。 该模式对应于 GTFS route_type 11。
  • 12单轨索道。 该模式对应于 GTFS route_type 12。
  • OTHER此选项与其他选项未涵盖的任何公共交通模式相对应。
String
network_data_source
(可选)

网络数据集或服务,将用于计算沿道路网络的路径形状。 可以使用网络数据集的目录路径、网络数据集图层对象、网络数据集图层的字符串名称或网络分析服务的门户 URL。 网络必须包含至少一个出行模式

要使用门户 URL,您必须使用具有路径选择权限的账户登录门户。

如果使用 ArcGIS Online 作为网络数据源,则运行该工具将消耗配额

了解有关估算此工具的配额使用情况的详细信息

如果选择任何网络模式,则此参数为必需项。

注:

您选择的网络数据集应该适用于模拟在街道上行驶的交通车辆,例如公共汽车。 请勿使用经过配置的网络数据集,该网络数据集将公共交通数据与公共交通赋值器配合使用,因为此类型的网络将模拟乘坐公共交通的乘客,而非在街道上行驶的公共交通车辆。

Network Data Source
travel_mode
(可选)

计算沿道路网络的路径形状时将使用的网络数据源上的出行模式。 可以指定出行模式作为出行模式的字符串名称,也可以作为 arcpy.nax.TravelMode 对象。

在沿道路网络行驶的交通系统中,可以使用最适用于模拟车辆的出行模式。

如果选择任何网络模式,则此参数为必需项。

注:

请勿将出行模式与使用公共交通赋值器的阻抗属性配合使用,因为该出行模式将模拟乘坐公共交通的乘客,而非在街道上行驶的交通车辆。

Network Travel Mode
drive_side
(可选)

指定车辆在交通系统中行驶的道路侧。 这可用于确保访问正确道路侧上的停靠点。

  • LEFT车辆将行驶在道路左侧。
  • RIGHT车辆将行驶在道路右侧。 这是默认设置。
String
bearing_tolerance
(可选)

停靠点处交通车辆的预估行驶方向之间的最大允许角度以及该停靠点所在网络边的角度。 如果角度差值超过此值,则假设这并非要在其上定位停靠点的正确网络边,并且 Network Analyst 将继续搜索其他附近网络边以寻找更合适的网络边。

在计算沿道路网络的路径形状时,方位角和方位角容差可用于更精确地定位沿道路网络的交通停靠点。 根据当前停靠点与沿交通路径的上一个停靠点和下一个停靠点之间的角度,估算每个停靠点处交通车辆的方位角。

指定一个介于 0 到 180 之间的值,以度为单位。 默认值为 30。

Double
max_bearing_angle
(可选)

上一个停靠点与当前停靠点站以及当前停靠点到下一个停靠点之间的最大允许方位角差。

根据当前停靠点与沿交通路径的上一个停靠点和下一个停靠点之间的角度,估算每个停靠点处交通车辆的方位角。 如果交通路径沿相对较直的道路,则此角度是方位角的良好表示。 但是,如果该路径出现转弯、调头、弯路或者改道进入停车场或旁路,则平均角度不是方位角的良好预估,使用此预估会导致要在网络上定位的停靠点远离其应有位置,并且会降低工具输出的质量。

如果上一个停靠点到当前停靠点以及当前停靠点到下一个停靠点的角度差值大于此参数中指定的值,则该工具将忽略方位角预估。 在这种情况下,停靠点将恢复为正常网络定位行为,并将捕捉到最近的非限制网络边。

指定一个介于 0 到 180 之间的值,以度为单位。 默认值为 65。

Double

代码示例

GenerateShapesFeaturesFromGTFS 示例 1(Python 窗口)

以下脚本演示了如何通过本地网络数据集在 Python 窗口中使用 GenerateShapesFeaturesFromGTFS 函数。

arcpy.transit.GenerateShapesFeaturesFromGTFS(
    r"C:\Data\GTFS",
    r"C:\Data\GTFSShapes\GTFSShapes.gdb\Shapes",
    r"C:\Data\GTFSShapes\GTFSShapes.gdb\Stops",
    r"C:\Data\GTFSShapes\trips_new.txt",
    ["3", "5", "11"],
    r"C:\Data\NetworkDatasets\Network.gdb\Routing\Routing_ND",
    "Bus Driving Time", "Right", 30, 65
)
GenerateShapesFeaturesFromGTFS 示例 2(Python 窗口)

以下脚本演示了如何通过 ArcGIS Online 服务在 Python 窗口中使用 GenerateShapesFeaturesFromGTFS 函数,以生成某些交通模式的形状。

arcpy.transit.GenerateShapesFeaturesFromGTFS(
    r"C:\Data\GTFS",
    r"C:\Data\GTFSShapes\GTFSShapes.gdb\Shapes",
    r"C:\Data\GTFSShapes\GTFSShapes.gdb\Stops",
    r"C:\Data\GTFSShapes\trips_new.txt",
    ["0", "3", "5", "11", "OTHER"],
    "https://www.arcgis.com/",
    "Driving Time", "Right", 30, 65
)
GenerateShapesFeaturesFromGTFS 示例 3(Python 窗口)

以下脚本演示了如何使用 network_modes 参数的空列表为所有交通模式生成直线形状:

arcpy.transit.GenerateShapesFeaturesFromGTFS(
    r"C:\Data\GTFS",
    r"C:\Data\GTFSShapes\GTFSShapes.gdb\Shapes",
    r"C:\Data\GTFSShapes\GTFSShapes.gdb\Stops",
    r"C:\Data\GTFSShapes\trips_new.txt",
    []
)

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题