实时流量
此帮助主题对实时流量的工作方式进行了概念性的介绍。有关流量的概述,请参阅什么是流量数据。有关配置实时流量的分步骤说明,请参阅在网络数据集中配置流量和教程练习 10。有关如何使用实时流量数据求解网络分析的说明,请参阅使用流量数据的网络分析和教程练习 11。
实时流量的工作方式
网络数据集从动态流量格式 (DTF) 文件中读取实时流量速度并使用流量消息通道 (TMC) 编码把速度和边关联起来。(TMC 编码是由包括流量数据供应商在内的各类组织所支持的标准的唯一标识符。)下图和文本说明并描述了此过程。
网络数据集查询边以获得当前行驶时间。当要求解网络分析图层或要在地图上绘制流量时,便会执行此查询。
使用标识源要素信息(源要素类、源要素和“自-至”和“至-自”位置)来查找一个或多个 TMC 值。使用上一次网络构建时的“街道-TMC 连接表”中的信息执行查找。(“街道-TMC 连接表”只是将街道关联到 TMC。在以下部分中将对此进行介绍。)
开始行动:图表中街道-TMC 连接表周围的红色方框用于高亮显示图表过于简化。在查询过程中,网络数据集不直接引用连接表;这样做速度会太慢。相反,连接表中的信息被嵌入到网络数据集中并在内部引用以使处理更快。因此,直到“街道-TMC”连接表重建时对其所做的更改才会加入网络。
网络数据集查找 DTF 文件,DTF 文件是一种为网络数据集而设计的二进制文件,读取行驶速度信息。该文件存储在一个目录中,网络数据集利用本地路径或 UNC 路径指向这个目录。(在新建网络数据集 向导的流量页面或网络数据集属性 对话框中输入路径。)
每个 DTF 文件都标记有有效时间范围并且包含 TMC 和它们在给定时间段内对应的行驶速度。仅当边的查询时间和日期在 DTF 文件的有效时间范围内时,该网络数据集才打开 DTF 文件。在很多情况下,多个 DTF 文件都有在被查询时间内的有效时间范围。这种情况出现在当实时流量包含给定深度的流量预测时;例如,包含下面 12 小时的流量预测时。如果对于查询时间存在多个有效文件,则会打开创建时间在查询时间之前且距离查询时间最近的文件。
开始行动:每次求解只打开一个 DTF 文件。也就是说,存在多个有效文件时,在整个求解过程中仅使用一个。每当求解程序对边查询文件时间范围之外的时间和日期时,它会试图从历史流量表中检索行驶时间。
如果 DTF 文件通过地理处理服务进行访问,那么会在 %AppData%\Roaming\ESRI\Local Caches\TrafficCache 中创建一个包含一个索引文件和下载的 DTF 文件的文件夹。该文件夹的名称与地理处理服务的名称类似,但经过修改以避免使用无效的文件路径字符。例如,文件夹名称以 http___ 开始而不是 http://,因为用下划线替换了冒号和斜杠。文件夹名称的其余部分与服务名称的其余部分类似。
打开 DTF 文件后,TMC 和它关联的行驶速度会与查询边的长度结合以决定实际的行驶时间。
如果无法找到有效的 TMC 值或 DTF 文件,网络数据集会回退到历史流量来检索行驶时间。如果历史行驶时间不存在,它会回退到一个特定于周末或工作日的成本属性,具体取决于对于边查询一周中的周几。回退顺序在基于流量的成本属性的边流量赋值器中设置。
创建 DTF 文件
上面插图的最右侧显示了 DTF 文件是如何生成的。流量源(一种 Web 服务并且通常由数据供应商提供)通过利用“更新流量数据”地理处理工具来访问。此工具从流量源中读取数据并把信息转换并存储成 DTF 文件,DTF 文件然后被存入文件系统文件夹。
DTF 文件中的行驶速度是创建文件时的当前值。为确保最新流量数据可用,可频繁运行“更新流量数据”或使 DTF 文件自动生成。可以通过创建一个运行更新流量数据的 Python 脚本,然后使用“Windows 任务计划程序”按固定时间间隔运行该脚本,就可以以固定时间间隔(例如每 5 分钟)自动生成新 DTF 文件。
存储 DTF 文件的文件夹可以通过 UNC 或本地路径进行本地共享和访问。
“街道-TMC”连接表
“街道-TMC”连接表提供将边关联到存储于 DTF 文件的速度值所需的信息。通常,此表会和街道数据一起由数据供应商提供。
下表列出了“街道-TMC”连接表中必填字段、字段名称示例、所允许的数据类型及简短描述。
Network Analyst 教程数据可在 ArcGIS.com 上找到,包括了带有街道-TMC 表的圣地亚哥网络数据集以供参考。下载和提取数据后,您可在 \Network Analyst\Tutorial\SanDiego.gdb 中找到圣地亚哥地理数据库。
字段 |
字段名称示例 |
数据类型 |
描述 |
---|---|---|---|
边要素类标识符 |
EdgeFCID 必须将该字段命名为 EdgeFCID。 |
长整型 |
标识用于存储街道要素的要素类。 |
边要素标识符 |
EdgeFID 必须将该字段命名为 EdgeFID。 |
长整型 |
标识街道要素。 |
边的起始位置 |
EdgeFrmPos 必须将该字段命名为 EdgeFrmPos。 |
双精度 |
与 EdgeToPos 结合使用,识别行驶方向或街道某侧。零(即 0)表明由线要素的数字化方向定义其起始位置。一(即 1)表明其另一侧位置。 例如,EdgeFrmPos 值为 0 同时 EdgeToPos 值为 1 标识了沿线要素的数字化方向行驶。在同一记录中列出的 TMC 值则仅表示了街道那侧。 任意十进制数都指定了沿要素数字化方向的某个位置,因此,在利用融合网络工具对各边进行融合之后,仍可保持正确的 TMC 值。 |
边的终止位置 |
EdgeToPos 必须将该字段命名为 EdgeToPos。 |
双精度 |
与 EdgeFrmPos 结合使用,识别行驶方向或街道某侧。 |
TMC 编码 |
TMC |
字符串 |
表示关联路段的 TMC 编码。 |
设置和更新实时流量数据概述
下表概述了设置实时流量之前所需的准备工作。
在地理数据库中准备好源要素和关联表,因为在 shapefile 工作空间中无法配置流量。
确保在“街道-TMC”连接表中将边源要素关联到 TMC 值。注意,不需要创建关系类;“街道 -TMC”连接表中的记录只需要标识 TMC 及其对应的源要素类、源要素(或要素)和沿要素的起始和终止位置。
因为设置实时流量必须要设置历史流量,因此必须确保历史流量有必要的表可用。
确保“更新流量数据”地理处理工具定期运行,以便实时流量保持最新。(此步可在创建网络数据集之前或之后完成。)
- 确保具备设置时区属性所需的正确信息。