创建和使用包含公共交通数据的网络数据集

在 Standard 或 Advanced 许可等级下可用。

需要 Network Analyst 许可。

公共交通(例如公交和地铁)通过提供到达工作、教育、购物、医疗保健、娱乐等地点的途径为城市居民提供服务。 可使用 ArcGIS Network Analyst 扩展模块 回答以下问题:

  • 使用公共交通时,人们可以如何轻松到达重要目的地?
  • 公共交通系统如何为乘客提供优质服务?
  • 如果我希望我的客户、患者或员工乘坐公共交通,我的新设施点应坐落在哪里?
可将公共交通计划数据整合到公共交通是一种重要出行方式的密集城区分析中。

在本教程中,将基于 GTFS 公共交通数据和街道中心线创建一个启用公共交通的网络数据集。 您将使用此网络数据集创建服务区,以显示从起点位置乘坐公共交通和步行在时间限制内可到达的区域。

可以使用自己的 GTFS 数据和街道中心线执行本教程的步骤,也可以使用提供的辛辛那提都会区样本数据。 如果您使用自己的数据,则街道中心线应覆盖与 GTFS 数据相同的地理区域。 本教程中的各种注释和提示强调了您在使用自己的数据时的特殊注意事项,包括您使用 StreetMap Premium Custom Roads 产品 Routing_Streets 要素类中的数据时的其他提示。

教程数据以完整的网络数据集作为示例。

获取数据

本教程的数据可供下载。

  1. 请转至数据下载页面
  2. 单击下载按钮将文件保存到本地。
  3. 解压下载的文件。

检查输入数据

汇集输入数据并对其进行检查。

检查 GTFS 公共交通数据

GTFS 是公共交通数据的全球标准格式。 其中包括公交线路和停靠点的位置以及交通计划。 GTFS 数据集包含一组具有特定名称和字段的 CSV 文本文件。 如果您不熟悉 GTFS,请阅读有关它的一些详细信息

可通过将 GTFS 数据变换为 Network Analyst 公共交通数据模型以在网络数据集中使用。 您将在本教程的后面学习如何执行此操作。 首先,需要检查 GTFS 数据以识别潜在问题并在稍后做出明智的分析决策。

Network Analyst 允许使用分析日期和时间求解网络分析问题。 通常,可以选择一般工作日(例如星期三)或具体日期(例如,2019 年 5 月 22 日星期三)。但是,根据 GTFS 数据的配置,可能无法使用一般工作日。 在本部分中,需要检查 GTFS 数据集的日期配置,以确定是否可以使用一般工作日执行网络分析,或者是否需要使用具体日期。

您还需要检查 GTFS 数据集中的 stop_times.txt 文件,以确定是否已明确包含所有到达和离开时间。

  1. 在磁盘上查找 GTFS 数据。

    教程数据包含辛辛那提都会区的两个 GTFS 数据集。 这两个数据集由二者来自俄亥俄州西南地区交通管理局 (SORTA) 和北肯塔基州交通管理局 (TANK) 提供。 这些 GTFS 数据集位于教程 > 公共交通 > GTFS 的已解压教程数据文件夹中。。 SORTA 和 TANK 文件夹包含一组文本文件。

    注:

    如果要使用自己的 GTFS 数据,请在磁盘上查找这组 GTFS 文本文件。

  2. 检查每个 GTFS 数据集的 stop_times.txt 文件。

    stop_times.txt 文件用于定义公共交通服务访问每个公共交通停靠点时的确切时间。

    1. 在文本编辑器中打开 stop_times.txt 文件。
      注:

      有时,stop_times.txt 文件非常大。 可能超过某些文本编辑器允许的最大文件大小。

    2. 检查 arrival_timedeparture_time 字段,并确定这些字段是否有任何空白值。
      注:

      尽管 GTFS 允许这些字段使用空白值,但 Network Analyst 公共交通数据模型要求为所有停靠点提供明确的到达和离开时间。 您将在本教程的稍后部分中使用 GTFS 转公共交通数据模型地理处理工具,该工具可以使用简单的线性插值法来估计空白的到达和离开时间。 如果数据中包含任何空白值,则必须稍后使用该工具的插值选项,在运行该工具之前在 GTFS 数据中填充空白值,或使用其他 GTFS 数据集进行分析。

      本教程中提供的 GTFS 数据集的这两个字段没有任何空白值。

    3. 关闭 stop_times.txt 文件。
  3. 确定每个 GTFS 数据集是否具有 calendar.txt 文件和/或 calendar_dates.txt 文件。

    calendar.txt 文件用于定义定期发生的交通服务,calendar_dates.txt 用于定义常规服务的例外,例如假日和特殊事件。 某些交通机构选择仅使用其中一个文件,可以这样做。 打算使用的每个 GTFS 数据集必须至少包含其中一个文件。

    如果 GTFS 数据集仅包含 calendar_dates.txt 文件而不含 calendar.txt 文件,则该数据集无法定义定期发生的服务;所有服务将针对具体日期明确定义。 在此情况下,无法在分析中使用一般工作日。 必须使用具体日期。

    如果 GTFS 数据集仅包含 calendar.txt 或者包含这两个文件,则可以选择使用具体日期,并且您可以使用一般工作日。 在下一步中,需要进一步检查这些文件。

    如果 GTFS 数据集不含 calendar.txt 文件和 calendar_dates.txt 文件,则无法使用此 GTFS 数据集,因为该数据集无效。

    本教程中提供的 GTFS 数据集包含这两个文件。

  4. 在包含 calendar.txt 文件的所有 GTFS 数据集中检查该文件。
    1. 在文本编辑器中打开 calendar.txt 文件。
    2. 检查 start_dateend_date 字段中显示的日期范围。

      这两个字段表示 GTFS 数据有效时的日期范围。 如果在分析中使用具体日期,则该日期必须位于此日期范围内。

      注:

      如果要使用样本数据,则可能已超过这些日期范围,但这不会影响本教程。

    3. 确定是否存在任何非重叠日期范围以及日期范围与其他行的日期范围完全不重叠的行。

      当来自多个机构的数据已合并到一个文件中或当机构已在同一文件中包含多个季节(例如秋季和冬季)的服务时,便会发生这种情况。

      如果存在任何非重叠日期范围,则应在分析中使用具体日期而非一般工作日。 一般工作日包括服务而不考虑日期范围,因此在此情况下,来自这些非重叠日期范围的服务将全部包含在同一分析中。 如果机构在同一数据集中包含单独的秋季和冬季服务,则秋季服务和冬季服务都将包含在分析中,从而导致对可用服务计数两次。

      本教程中提供的两个 GTFS 数据集均不含非重叠日期范围。

    4. 检查工作日字段(mondaytuesday 等)。

      这些字段用于定义特定交通服务将在一周中的哪几天运行。 如果值为 1,则服务将在该工作日运行,如果值为 0,则服务不在该工作日运行。

      如果所有行的所有工作日字段均填充为 0,则机构可能正在使用 calendar_dates.txt 文件定义服务运行时的具体日期,因此需要在分析中使用具体日期而不是一般工作日。 如果此数据集不含 calendar_dates.txt 文件,GTFS 数据集可能无效,因为它实际上没有服务。

      本教程中提供的 GTFS 数据集的工作日字段包含 1 和 0 的组合。 用于定义定期工作日服务。

    5. 关闭 calendar.txt 文件。

检查街道数据

行人必须能够步行到交通停靠点、乘坐交通并步行到目的地,因此除了公共交通停靠点和线路之外,还将在网络数据集中包含街道。 在网络数据集中使用的街道数据应具有良好质量,并且应包含指示是否允许行人在街道上行进的属性。

  1. 打开 ArcGIS Pro,然后使用地图创建一个工程。
  2. 向地图添加街道数据。

    提供的街道数据位于教程 > 公共交通 > StreetData.gdb > 街道的已解压教程数据文件夹中。

  3. 打开街道图层的属性表,熟悉数据中的字段和值。
  4. 找到 RestrictPedestrians 字段。

    此字段用于指示是否允许行人在街段上行进。 值 N 表示不限制行人在街道上行进;他们可以在街道上行进。 Y 值意味着行人受限;他们不能在街道上行进。 将在网络数据集中使用该字段构造限制属性,以防行人在高速公路和其他禁止行人通行的街道上行进。

    注:

    如果要使用自己的数据,则必须添加名为 RestrictPedestrians 的文本字段。 否则,稍后用于创建网络数据集的模板将不起作用。 创建字段后,使用 N 和 Y 值适当地进行填充。 也可以将字段值保留为空值;网络数据集会将具有空值的街道解释为不受限制(与值 N 相同)。

    如果您使用 StreetMap Premium Custom Roads 产品中的 Routing_Streets 要素类,则该字段称为 RST_PEDESTRIANS。 您应该将此字段保留为 is。 稍后,您将使用专门为此数据设计的单独网络数据集模板。

  5. 找到 ROAD_CLASS 字段。

    该字段用于指示道路类型,并在网络数据集中用于配置步行方向。 可能的值在配置方向中进行定义。

    注:

    如果要使用自己的数据,则必须添加名为 ROAD_CLASS 的短整型字段。 否则,稍后用于创建网络数据集的模板将不起作用。 创建字段后,使用道路类值适当地进行填充。 也可以将字段值保留为空值,并且网络数据集将在生成方向时使用默认行为。

    StreetMap Premium Custom Roads 中的 Routing_Streets 要素类已包含相应 ROAD_CLASS 字段。

  6. 关闭属性表。
  7. 使用浏览工具 浏览工具 检查地图中的街道数据。 单击几个街道要素并记下它们的起点和终点及其与其他要素的相交方式。

    有时,将在每个交叉点处将街道数据分割成不同的要素。 对于其他街道数据集包含的长连续街道要素,不会在此类要素与另一个要素相交的位置处对其进行分割,而是在此类点处具有折点。 记住街道数据的构造方式,因为这将影响稍后配置网络数据集的连通性策略的方式。

    将在每个交叉点处将提供的街道数据分割成不同的要素。

    注:

    将不会在交叉点处分割 StreetMap Premium Custom Roads 中的 Routing_Streets 要素类。

  8. 从地图中移除街道数据。

准备网络数据集源要素类和表

您将创建并准备要在网络数据集中使用的要素类和表。 您需要将 GTFS 数据数据转换为组成 Network Analyst 公共交通数据模型的要素类和表集,并且您将准备街道中心线以供在网络数据集中使用。

创建文件地理数据库和要素数据集

在本部分中,您将创建文件地理数据库和要素数据集。 稍后,您将在此要素数据集中创建网络数据集。

  1. 创建文件地理数据库并将其放置在计算机上的任何位置。
  2. 在新地理数据库中使用所选的空间参考创建要素数据集

基于 GTFS 创建交通停靠点、线路和计划

在本部分中,您将使用 GTFS 转公共交通数据模型地理处理工具,将 GTFS 数据转换为将在网络数据集中使用的一组要素类和表。

  1. 地理处理窗格中,打开 GTFS 转公共交通数据模型工具。

    可在转换工具集的公共交通工具工具箱中或通过工具搜索栏找到此工具。

  2. 对于输入 GTFS 文件夹参数,选择包含 GTFS 文本文件的一个或多个文件夹。 如果要使用本教程提供的数据,请同时选择 SORTA 和 TANK 文件夹。

    来自所有输入 GTFS 数据集的数据将合并到同一组输出表和要素类中,当您想要对多个交通服务提供商在同一地理区域中运营的都会区进行建模时,此举非常有用。 SORTA 数据集用于服务俄亥俄州辛辛那提都会区部分,TANK 数据集在肯塔基州河流南部的辛辛那提都会区部分中提供服务。

  3. 对于目标要素数据集参数,选择之前创建的要素数据集。
  4. 使内插空白停止时间复选框保持未选中状态。
    注:
    如果您要使用自己的 GTFS 数据,并且已确定 stop_times.txt 文件的 arrival_timedeparture_time 字段中具有空白值,则请选中插值空白停止时间复选框。
  5. 运行该工具。

    该工具应成功完成,不会出现任何错误或警告,并且会向地图内容添加多个要素类和表。

    注:

    如果要使用自己的 GTFS 数据,请查看有关错误和警告的工具消息,以确保 GTFS 数据可以在网络数据集中使用。 该工具将执行一些数据验证,有时,GTFS 数据集具有必须在将数据用于网络数据集之前更正的数据问题。

  6. 检查地图和内容窗格中的输出。

    将显示两个要素类 StopsLineVariantElements 以及几个表。 这些表用于表示公共交通计划。 Stops 要素类用于表示交通停靠点的位置。 LineVariantElements 要素类用于表示交通线段。

    地图中“GTFS 转公共交通数据模型”工具的输出

    地图中的交通线路不随沿街道,看起来不像是交通系统的典型视觉表示。 LineVariantElements 要素并不用于表示公交车、火车或其他公共交通工具所行驶的实际地理路径,而是表示交通系统的逻辑连接。 网络数据集中的公共交通赋值器将使用公共交通计划来确定遍历 LineVariantElements 要素所需的行程时间,因此其形状和长度无关紧要。 有关这些要素类和表的更多详细信息,请参阅 Network Analyst 公共交通数据模型文档。

    您可能会注意到,LineVariantElements 要素类包含多条长直线。 这些直线用于表示连接城市中心和郊区停靠点的快速路径,没有中间停靠点。

将街道要素类复制到要素数据集中

由于街道将参与网络数据集,因此必须将街道要素类放在要创建网络数据集的要素数据集中。

  1. 找到街道要素类。 回想一下,提供的街道数据位于教程 > 公共交通 > StreetData.gdb > 街道的已解压教程数据文件夹中。
  2. 如果街道要素类和之前创建的要素数据集具有不同的空间参考,请使用投影工具将街道投影到要素数据集的空间参考中。 否则,只需将街道要素类复制到要素数据集中。
    注:

    如果要使用自己的数据,则必须重命名要素类 Streets,才能将其与提供的网络数据集模板一起使用。

    如果您使用 StreetMap Premium Custom Roads 产品中的 Routing_Streets 要素类,请保留名称 Routing_Streets。 请勿将其重命名为 Streets

    对于 Routing_Streets 要素类,需要考虑一些附加注意事项。 复制投影工具不适用于参与网络数据集的要素类。 此外,您可能希望裁剪 Routing_Streets 要素类以仅包含您正在分析的大都市区的街道。 最后,您需要另外裁剪 Routing_Streets_Override 要素类并将其复制到目标要素数据集中,以确保以后的正确连通性。

    复制和裁剪 Routing_StreetsRouting_Streets_Override 的最简单方法是将其添加到地图中,选择新公共交通网络将覆盖区域内的所有要素,然后针对每个图层运行要素类至要素类工具以导出所选要素。

    如果原始要素类和目标要素数据集具有不同的空间参考,则应创建中间输出要素类并运行投影工具,或者应设置要素类至要素类工具的输出坐标系地理变换环境设置。

    如果您在选择相关 Routing_Streets 要素的同时未选择相关 Routing_Streets_Override 点,则可以通过使用按位置选择图层工具选择与已提取和已复制的 Routing_Streets 要素相交的所有 Routing_Streets_Override 点来执行此操作。

将交通停靠点与街道连接

在网络数据集中,您希望确保旅行者可以沿街道步行,通过在停靠点(任何其他地方都不可以)进入或离开交通车辆使用交通系统,以及从最终停靠点步行至目的地。 因此,必须确保街道、交通停靠点和交通线路之间的连接完全可控。 在本部分中,您将使用将公共交通数据模型连接至街道工具形成此类连接。 该工具会将交通停靠点的副本捕捉到街道,并生成一条直线以将每个停靠点的原始位置与其与捕捉到的街道位置连接起来。 这些连接器在网络数据集中用于对街道和交通线路之间的行程进行建模。

  1. 地理处理窗格中,打开将公共交通数据模型连接至街道工具。 可在转换工具集的公共交通工具工具箱中或通过工具搜索栏找到此工具。
  2. 对于目标要素数据集参数,选择您在本教程的其余部分中使用的相同要素数据集。
  3. 对于输入街道要素参数,选择要素数据集中的街道要素类。
  4. 对于搜索距离参数,接受默认值或输入所选的值。

    不会将超出搜索距离的停靠点捕捉到街道要素,因此,此类停靠点不会连接到街道。 较小的搜索距离可确保停靠点不会错误地捕捉到极远处的街道,但是会增加停靠点在应进行捕捉时捕捉失败的可能性。 较大的搜索距离会增加停靠点可能的捕捉次数,但可能会导致误差,这些误差需要通过编辑街道数据来纠正。

    提示:

    使用按位置选择图层工具快速地提前确定哪些停靠点在您指定的搜索距离之外。 在运行将公共交通数据模型连接至街道工具之前,使用此信息对街道执行必要的编辑或根据需要调整搜索距离。

  5. 对于表达式参数,添加一个表达式,以便不会将交通停靠点捕捉到行人限行的街道。 使用表达式构建器构造表达式。 将字段设置为 RestrictPedestrians,where 子句设置为不等于,并将值设置为 Y。 或者,可使用 SQL 编辑器编写 RestrictPedestrians <> 'Y'

    如前所述,RestrictPedestrians 字段中的值 Y 表示街道限制行人通行。 在此步骤中构建的表达式可确保不会将公共交通停靠点捕捉到受限制的街道。 反过来可确保行人可以进入所有交通停靠点。

    注:

    如果 Streets 要素类没有 RestrictPedestrians 字段,则需要添加一个该字段,否则以后将无法根据提供的模板成功创建网络数据集。

    如果您使用自己的数据并且 RestrictPedestrians 字段具有空值,则请向表达式参数添加第二个子句以确保正确处理空值。 将运算符设置为 Or,将字段设置为 RestrictPedestrians,并将 Where 子句设置为 is null。 或者,可使用 SQL 编辑器编写 RestrictPedestrians <> 'Y' Or RestrictPedestrians IS NULL。 这样可以确保公共交通停靠点可以捕捉到 RestrictPedestrians 中具有空值的街道,因为空值被解释为允许行人进入。

    如果所有行的 RestrictPedestrians 字段均为空值,则您无需为 RestrictPedestrians 参数使用值,因为所有街道都允许行人进入。

    如果您使用 StreetMap Premium Custom Roads 产品中的 Routing_Streets 要素类,请为表达式参数使用 RST_PEDESTRIANS 字段,而非 RestrictPedestrians

  6. 运行该工具。

    该工具应成功完成,不会出现任何错误或警告,并且会向地图添加其他要素类。

    注:

    如果要使用自己的数据,请查看有关错误和警告的工具消息,以确保一切正常。

  7. 检查地图和内容窗格中的输出。

    将向地图添加两个新要素类 StopsOnStreetsStopConnectors。 街道要素类也可能已添加到地图中(如果之前尚未在地图中)。

  8. 放大到其中一个公共交通停靠点周围的区域并对其进行检查。

    您应该看到 Stops 要素(用于连接该 Stops 要素与街道的短直线段(StopConnectors 要素))和 StopsOnStreets 要素(位于街道与 StopConnectors 线要素的交叉点处)。 此要素组合可用于在网络数据集中的街道和公共交通线路之间定义良好、完全可控的连通性。 有关这些要素类的更多详细信息,请参阅 Network Analyst 公共交通数据模型文档。

    与街道连接的交通线路。

    注:

    如果 Stops 要素类包含父站点或入站口,您可能会看到稍微复杂的连接结构。 有关适用于这些情况的连接规则的更多详细信息,请参阅将公共交通数据模型连接至街道工具文档。

创建网络数据集

在本部分中,您将使用提供的网络数据集模板创建网络数据集。 提供的模板可确保网络数据集结构良好并且已配置最重要的设置。 在后面的步骤中,您将查看其中一些设置,并且您将有机会根据需求和数据对其进行更改。

基于模板创建网络数据集

使用提供的 XML 模板自动创建具有特定方案的网络数据集。

  1. 打开通过模板创建网络数据集工具。

    可在“网络数据集”工具集的“网络分析工具”工具箱中或通过工具搜索栏找到此工具。

  2. 对于网络数据集模板参数,在教程 > 公共交通 > TransitNetworkTemplate.xml 的已解压教程数据文件夹中选择提供的 XML 模板文件。
    注:

    即使要使用自己的数据而不是提供的教程数据,只要您按照教程说明重命名街道数据Streets 并添加 RestrictPedestriansROAD_CLASS 字段,此网络数据集模板就应该可以起作用。

    如果您使用 StreetMap Premium Custom Roads 产品中的数据,请使用 TransitNetworkTemplate_SMP_Custom_Roads.xml 网络数据集模板,而非 TransitNetworkTemplate.xml。 此备用模板考虑了此数据所需的特殊注意事项。

  3. 对于输出要素数据集参数,选择您在本教程的其余部分中使用的相同要素数据集。

    将在此要素数据集中创建网络数据集。

  4. 运行该工具。

    将在要素数据集中创建网络数据集。

    注:

    您可能需要在目录窗格中刷新要素数据集才能看到新的网络数据集。

检查网络数据集的属性

已创建网络数据集,但您应检查其属性以确保您了解其工作原理以及其是否适用于您的需求。 在本部分中,您将检查网络数据集的连通性策略和出行属性。

  1. 从网络数据集所在的地图中将其移除。

    无法编辑位于地图中的某些网络数据集属性。

  2. 打开网络数据集的属性对话框
  3. 检查网络数据集的连通性策略。

    网络数据集的连通性策略已配置为防止公共交通线路和街道之间的意外换乘。 要在街道和公共交通线路之间换乘,旅行者必须使用指定的公共交通停靠点。 因此,街道和公共交通线路位于不同的连通性组中。

    了解有关网络数据集连通性组和策略的详细信息

    1. 在网络数据集的属性对话框中,选择源设置 > 组连通性

      将显示组连通性选项卡。

      “组连通性”选项卡列出要素类及其连通性策略和组。

    2. 检查要素类列表。

      交通线路 (LineVariantElements)、街道和连接器要素 (StopConnectors) 均作为边源包含在网络中。 交通停靠点 (Stops) 和已捕捉到街道的停靠点副本 (StopsOnStreets) 均作为交汇点源包含在网络中。

      注:

      如果您使用 StreetMap Premium Custom Roads 产品中的数据,您将看到 Routing_Streets,而非 Streets,并且 Routing_Streets_Override 将作为附加交汇点源包含在内。

    3. 检查连通性组。

      网络数据集具有三个连通性组。 街道位于第一个组中,连接线位于第二个组中,交通线路位于第三个组中。 StopsOnStreets 要素类参与第一个和第二个组,用于为旅行者提供在街道和连接线之间换乘的方法。 Stops 要素类参与第二个和第三个组,用于提供连接线与交通线路线之间的换乘方法。

      注:

      如果您使用 StreetMap Premium Custom Roads 产品中的数据,则 Routing_Streets_Override 将作为 Routing_Streets 参与同一连通性组。

    4. 检查边源的连通性策略。

      所有三个边源都具有端点连通性,这意味着仅当线要素的端点重合时,才会将其视为连接。 如果在其他点处接触或重叠,则不视为连接。

      LineVariantElementsStopConnectors 应始终使用端点连通性。

      在本教程的先前部分中,您检查了地图中的街道数据,以确定是否在每个交叉点处将其分割成单独的要素,或者它是否具有经过与其他街道的多个交叉点的长连续街道要素。 对于已在每个交叉点处分割的街道数据,正确的选择是端点连通性。 已在每个交叉点处将提供的街道数据分割成单独的要素,因此请将 Streets 的连通性策略保留为端点

      注:

      如果您使用自己的街道数据,并且您的街道包含较长的连续街道要素,而这些要素在每个交叉点处都未被分割,请将 Streets 连通性策略切换为任何顶点

      如果您使用 StreetMap Premium Custom Roads 产品中的数据,请保留将 Routing_Streets 的连通性策略设置为端点,即使未在每个交叉点处分割此街道数据也是如此。 Routing_Streets_Override 交汇点源及其覆盖的连通性策略用于确保这些交叉点处的正确连通性。

    5. 检查交汇点源的连通性策略。

      Stops 交汇点源的连通性策略为依边线连通,这意味着交通停靠点遵循与其连接的边源的连通性策略。

      StopsOnStreets 交汇点源的连通性策略为交点处连通,这意味着这些交汇点将覆盖其连接的边源的连通性策略。 在此情况下,StopsOnStreets 要素将在交汇点处与 Streets 要素连接,即使 Streets 连通性策略为端点。 这很重要,因为这意味着无需在交通停靠点的位置处分割街道要素即可确保网络连通性。

      保持交汇点源连通性策略不变。

  4. 检查网络数据集的成本属性。

    成本属性用于测量沿网络中的边行进时的成本或阻抗。 例如,成本属性可定义沿街段步行或沿交通线路行进所花费的行程时间。

    了解有关成本属性的详细信息

    1. 在网络数据集的属性对话框中,选择出行属性 > 成本
    2. 检查在对话框的上半部分中显示的成本属性列表。

      网络数据集具有三个成本属性:PublicTransitTimeWalkTimeLength

    3. 选择 PublicTransitTime 成本属性。

      PublicTransitTime 成本属性的属性将在对话框的下半部分中显示。

    4. 检查赋值器部分。

      赋值器定义的计算用于确定遍历网络中的特定边、交汇点或转弯的成本。 所有边、交汇点或转弯源可以使用不同类型的赋值器。 例如,可以使用不同的赋值器来计算行人沿街道和交通线路的行程时间。

      了解有关网络所使用的赋值器类型的详细信息

      LineVariantElements 边源使用公共交通赋值器。 此赋值器根据计划的公共交通服务计算沿公共交通线段的行程时间。 返回的行驶时间包括直到下一个计划公交行程开始之前的等待时间加上沿着公交线路段从一端到另一端的行驶时间。

      了解有关公共交通赋值器的详细信息

      StopConnectors 边源使用值为 0 的常量赋值器。 这意味着当行人使用 StopConnectors 要素在街道和交通线路之间行进时,不会产生任何行程时间。 由于通过将公共交通数据模型连接至街道工具创建的 StopConnectors 要素表示用于控制网络连通性的逻辑连接而不是实际地理路径,因此不产生任何行程时间很合理。 但是,如果要对穿过大型站点的路径进行建模,或者具有关于交通停靠点的典型上下车延迟的信息,则可以更改赋值器类型或值。

      Streets 边源使用函数赋值器将行程时间设置为等于针对 WalkTime 成本属性计算的沿街道的步行时间。 WalkTime 属性反过来根据街道的长度和可配置的步行速度参数计算步行时间。

      注:

      可通过在对话框的上半部分中选择 WalkTime 成本属性的赋值器对其进行检查。 此举会将对话框的下半部分切换为显示 WalkTime 属性的属性。

    5. 检查对话框的参数部分。 如有必要,可单击以将其展开。

      PublicTransitTime 成本属性配置有多个属性参数,可用于进一步控制公共交通赋值器的行为。

      了解有关公共交通赋值器的支持参数的详细信息

  5. 检查网络数据集的限制属性。

    限制属性用于防止在特定情况下沿网络的某些部分行进。 例如,限制属性可以定义不允许行人步行的街道,例如高速公路。

    了解有关限制属性的详细信息

    1. 在网络数据集的属性对话框中,选择出行属性 > 限制
    2. 检查在对话框的上半部分中显示的限制属性列表。

      网络数据集具有两个限制属性:PedestrianRestrictionWheelchairRestriction

    3. 选择 PedestrianRestriction

      这种限制可以防止行人在行人禁行的街道上步行。

      PedestrianRestriction 属性在对话框的下半部分中显示。

    4. 检查赋值器部分。

      对于 Streets 边源,特定边是否受限取决于 RestrictPedestrians 字段的值。 如果字段值为 Y,则街道视为受限。 否则,允许行人行进。

      注:

      如果您使用 StreetMap Premium Custom Roads 产品中的 Routing_Streets 要素类,则此限制将使用字段 RST_PEDESTRIANS,而非 RestrictPedestrians

      其他边源和交汇点源不定义此限制的任何行为。 始终允许行人在这些其他要素上行进。

    5. 在对话框的上半部分的限制属性列表中选择 WheelchairRestriction

      这种限制用于防止携带轮椅的旅行者在无法容纳轮椅的地方行进。

      WheelchairRestriction 属性在对话框的下半部分中显示。

    6. 检查赋值器部分。

      对于 StopConnectors 边源,特定边是否受限取决于满足公共交通数据模型定义的规则的 GWheelchairBoarding 字段值。 从而防止携带轮椅的旅行者在轮椅无法进入的停靠点处乘坐交通车辆。

      其他边源和交汇点源不定义此限制的任何行为。 始终允许在这些其他要素上乘坐轮椅出行。 如果街道包含有关轮椅可达性的信息,则可以通过针对 Streets 边源配置赋值器将该信息整合到此限制中。

      注:

      交通线路的轮椅可达性使用 PublicTransitTime 成本属性上的使用轮椅出行参数单独进行处理。 当此参数设置为 True 时,公共交通赋值器将确保在确定行程时间的计算中不使用轮椅无法进入的交通服务。 将使用成本属性上的参数而不是限制,因为交通线路的轮椅可达性通常与所使用的特定车辆而不是线路本身相关。

  6. 检查网络数据集的出行模式。

    出行模式表示可以应用于分析的网络数据集设置的集合,例如成本和限制属性。 出行模式通常表示一种特定的出行模式,例如行人步行和乘坐交通工具。

    了解有关出行模式的详细信息

    1. 在网络数据集的属性对话框中,选择出行属性 > 出行模式
    2. 在对话框上半部分的下拉列表中,检查出行模式列表。

      网络数据集具有两种出行模式:公共交通时间使用轮椅的公共交通时间

    3. 从列表中选择公共交通时间

      该出行模式表示行人在街道上步行和乘坐公共交通工具的行程时间。

      公共交通时间属性在对话框的下半部分中显示。

    4. 成本部分中,检查阻抗属性。

      将选择 PublicTransitTime 成本属性作为出行模式的阻抗属性,这意味着当将出行模式用于分析时,将使用该属性执行行程时间计算。

    5. 成本部分中,检查成本参数部分。

      将显示与成本属性关联的属性参数。 可选择在列表中显示的任何属性以展开相关参数并检查其值。 步行速度在此进行设置。

    6. 限制部分中,检查在分析中使用此出行模式时应用的限制列表。

      PedestrianRestriction 已打开,但是 WheelchairRestriction 没有,因为该出行模式不适用于对携带轮椅的旅行者进行建模。

    7. 从位于对话框上半部分的出行模式列表中,选择使用轮椅的公共交通时间

      该出行模式表示携带轮椅的旅行者沿街道和公共交通线路的行程时间。

      使用轮椅的公共交通时间属性在对话框的下半部分中显示。

    8. 成本部分中,检查成本参数部分。
    9. 在框中选择 PublicTransitTime 以展开与该成本属性关联的属性参数。

      对于该出行模式,使用轮椅出行参数值设置为 True,以覆盖默认值。

    10. 限制部分中,检查在分析中使用此出行模式时应用的限制列表。

      该出行模式的 PedestrianRestrictionWheelchairRestriction 均已打开。

  7. 在网络数据集属性对话框中,选择方向 > 常规以检查网络数据集的方向配置。

    ArcGIS Network Analyst 扩展模块 目前不支持适用于面向乘客的应用程序的公共交通出行的转向指示。

    未选中支持方向复选框。 目前,未配置此网络数据集以支持方向。 如果需要,可以选中此框并配置行步方向。

    了解有关配置方向的详细信息

  8. 关闭网络数据集属性。

构建网络数据集

可以将构建的网络数据集用于分析。

  1. 打开构建网络工具。

    可在“网络数据集”工具集的“网络分析工具”工具箱中或通过工具搜索栏找到此工具。

  2. 选择新的网络数据集,然后运行该工具。

    您可能会收到一条警告消息,指示遇见构建错误。

  3. 如果遇见构建错误,请打开消息文本中显示的构建错误消息文件,然后检查构建错误。

    构建错误用于指示网络数据集存在的问题或潜在问题。 有一些严重问题必须进行更正,然后网络数据集才能正常运行。 其他问题无关紧要,可以忽略。

    了解有关网络数据集构建错误的详细信息

    最可能遇到的构建错误是指示 StopConnectors 要素几何为空的错误。 在此情况下,常见的消息类似于 SourceName:StopConnectors,ObjectID:232,几何为空。 当 Stops 要素之一及其关联的 StopsOnStreets 要素空间重合时,通常会遇见此类错误,因为 StopsOnStreets 要素未成功捕捉到附近的街道。 因此,在两者之间产生的连接线没有长度。

    如果遇见此类构建错误,请检查受影响的 StopConnectors 要素。 可以使用 StopConnectors 中的 StopID 字段(即 StopsStopsOnStreets 中的 ID 字段)查找关联的 StopsStopsOnStreets 要素。 造成该错误的最可能原因是停靠点距最近街道的距离大于之前在将公共交通数据模型连接至街道工具中使用的搜索距离。 停靠点可能位于错误的位置,这表示原始 GTFS 数据中存在错误,或者街道数据可能缺少为停靠点提供服务的某些道路或车道。

    如果只有少数错误,并且它们不在对您的分析很重要的区域中,则可以放心地忽略它们。

    如果要更正问题,则需要手动移动 StopsOnStreets 要素并将其捕捉到街道的正确点,然后编辑 StopConnectors 要素以与其进行连接。 要更正空几何问题,最简单方法是使用替换几何编辑工具。 StopConnectors 要素的数字化方向应该是从停靠点到街道。 不应移动 Stops 要素,以防它与交通线路断开连接。 还可以编辑街道数据,以在编辑 StopsOnStreets 之前添加缺失的道路或车道。

    如果不想进行编辑,则可以使用较大的搜索距离值重新运行将公共交通数据模型连接至街道工具。

    当原始停靠点位置与街道在空间上已经重合或接近重合时,将发生您可能遇到的另外一个构建错误。 在这种情况下,Stops 要素和其关联的 StopsOnStreets 要素在空间上重合或接近重合,因为捕捉进程未将 StopsOnStreets 要素从其原始位置移开,且在其间生成的线没有长度或因长度过短而无法用于网络数据集。 在这种情况下,常见的消息类似于 SourceName:StopConnectors,ObjectID:232,边要素太小无法参与捕捉,并且可能无法连接到其他要素

    只要 Stops 要素及其关联的 StopsOnStreets 要素在空间上重合,即会保留正确的网络连通性,而网络将能够模拟旅行者在此停靠点处的上车和下车。 但是,如果您计划为 StopConnectors 要素添加阻抗以模拟上车和下车的时间成本,则此停靠点处的上车和下车很可能不会产生预期的时间成本阻抗,因为无需遍历连接器或连接器不包含在网络数据集中。

    如要更正此问题,您需要手动移动 Stops 要素和与之连接的所有 LineVariantElement 要素的端点,以使它们与街道在空间上不再重合。 然后,根据需要编辑 StopConnectors 要素以便正确连接 Stops 要素及其关联的 StopsOnStreets 要素。 StopConnectors 要素的数字化方向应该是从停靠点到街道。

    了解如何在移动要素时使用地图拓扑来保持要素间的连接

    警告:

    如果问题非常普遍,或者遇见其他构建错误,则可能需要花费时间来编辑街道要素类,或者干脆使用其他要素类。

运行服务区分析

在本部分中,您将使用在先前的部分中创建的网络数据集创建一个服务区,以显示在一天内的特定时间从起始位置乘坐公共交通和步行在 30分钟内可到达的区域。

了解有关服务区分析的详细信息

创建和配置服务区图层

服务区图层提供设置和求解服务区问题所需的结构和属性。 它还包含求解后的结果。

  1. 分析选项卡的工作流组中,单击网络分析 > 服务区 服务区

    服务区图层将被添加到内容窗格中。 它将包含相应子图层,这些子图层包含分析的输入和输出。

  2. 内容窗格中,单击服务区以选择图层组。

    服务区图层选项卡随即出现。

  3. 单击服务区图层以查看功能区上的可用设置。

    服务区功能区

    您将使用这些控件定义要生成的服务区。

    提示:

    仅当您在内容窗格中选择服务区图层后,才会显示服务区图层选项卡。 另外,如果您有多个服务区图层,则可以单独更改这些图层的设置,或选择多个图层来编辑所有选定图层(如果它们共享相同的网络数据源)的设置。每个图层都有其自己的选项卡。

  4. 服务区图层选项卡的出行设置组中,确保将模式控件设置为公共交通时间

    该出行模式是网络数据集的默认出行模式。 该出行模式表示乘坐公共交通和步行的行程。

  5. 服务区图层选项卡的出行设置组中,将中断值更改为 30

    此更改会使输出服务区面表示在 30 分钟的行程时间内可到达的区域。

    了解有关服务区域中断选项的详细信息

  6. 日期和时间组中,将到达/离开日期-时间类型下拉列表值更改为星期

    必须指定服务区分析的时间,才能使用网络数据集中的公共交通计划。 如果没有时间,则所有交通线路均视为受限,因为公共交通赋值器无法在没有具体时间的情况下计算行程时间。

    了解有关到达/离开日期-时间类型选项的详细信息

    注:

    如果您要使用自己的 GTFS 数据并且之前已确定需要在分析中使用具体日期而不是一般工作日,请选择日期和时间,而非星期

    时间日期控件现在可用。

  7. 日期值更改为所选的工作日。
    注:

    如果指定了日期和时间,而非星期,请将日期控件更改为所选的日期,该日期位于 GTFS 数据的 calendar.txtcalendar_dates.txt 文件的日期范围内。

  8. 当交通服务可能正在运行时,将时间值更改为所选的时间,例如下午 5:15。
  9. 输出几何组中,单击排除边源按钮 排除边源 以显示下拉菜单。

    LineVariantElements 边源默认从面生成中排除。 这意味着不会在 LineVariantElements 要素周围生成服务区面,即使可能在分析中遍历这些要素。 这是所需行为。 乘坐公共交通工具的旅行者只能在停靠点下车,因此,除非旅行者可以在停靠点下车并沿着街道步行到达该区域,否则服务区面不应将交通线路周围的区域显示为可到达。

  10. 关闭排除边源下拉菜单,而不作出任何更改。

绘制设施点

服务区设施点是分析的起点。 服务区面将显示从此设施点在服务区图层选项卡的中断控件中指定的时间限制内可到达的区域。 在本部分中,您将在地图中绘制服务区设施点。

注:

要将现有点作为设施点导入,还可以单击服务区图层选项卡上的导入设施点按钮 导入设施点

  1. 输入数据部分中,单击创建要素 创建要素 按钮。

    随即出现创建要素窗格,其中会显示可供编辑的图层列表。

  2. 服务区:设施点下,单击设施点以激活默认编辑模板。
  3. 使用工具 点 在地图上靠近许多公共交通停靠点的区域(例如在市中心)中创建一个设施点。
  4. 编辑选项卡中,单击保存 保存编辑内容 保存编辑内容。

求解服务区并检查结果

完成创建并配置服务区图层以及添加设施点后,即可对服务区进行求解。 在本部分中,您将对服务区进行求解并检查结果。

  1. 服务区图层选项卡上,单击运行 运行

    在地图中生成服务区面。 如果旅行者从所指定的时间开始,此面表示在 30 分钟的行程时间内从设施点乘坐公共交通工具和步行可到达的区域。 它应该从设施点沿系统中的某些公共交通线路进行延伸。

    您的输出服务区多边形可能包括多部分要素,其中显示交通停靠点或站点周围看似断开连接的区域。 这是预期结果,且该结果是正确的。 如果您正在创建一个 30 分钟服务区,出行者可以乘车行进 25 分钟,然后在步行 5 分钟后在某一站点下车离开,或者也可以继续行驶并在 28 分钟后在下一站点下火车,然而此时将只有 2 分钟的步行时间。 但是,由于火车行驶速度通常比人的步行速度更快,所以,步行出行者无法在不超出 30 分钟出行时间限制的情况下到达两个站点之间的所有区域。 因此,30分钟内只能到达每个站点周围的一小块区域,而站点之间的大部分区域无法到达,并且 30 分钟服务区多边形将包含可到达站点周围的每个断开连接的区域。

    下午 5:15 的公共交通服务区

  2. 服务区图层选项卡的到达/离开时间组中,将时间值更改为所选的其他时间。 例如,在可用公共交通服务较少的非高峰时段中选择时间,例如下午 2:00。
    注:

    如果服务区图层选项卡不可见,则在内容窗格中单击服务区以选择图层组。

  3. 服务区图层选项卡上,单击运行 运行

    服务区面随即发生更改。 如果旅行者从所指定的新时间开始,则服务区现在表示可到达的区域。 由于在一天内不同时间可用的公共交通服务不同,因此旅行者使用该公共交通服务可到达的区域将不同。

    下午 2:00 的公共交通服务区