六、交通分配与OD反推

王致远

2020/01/16

交通分配是四阶段的最后一阶段,将各种出行方式的OD矩阵按一定的路径选择原则分配到交通网络中的各条道路上,求出各路段的流量及相关的交通指标。

OD矩阵反推,是通过路段观测交通量快速获取OD矩阵。

1. 基本原理与方法

1.1 基本概念

交通分配可归纳为问题形式

已知:

  • 交通网络的有向图表示形式;
  • 路段阻抗函数;
  • OD矩阵;

求解:

  • 网络中各路段的交通量及阻抗值

路段的阻抗函数能反应实际道路路段上行程时间与路段有两之间的关系

BPR阻抗函数

ta=ta(0)[1+α(VaCa)β]

  • ta路段a的行程时间;
  • Ca路段a的通行能力;
  • Va路段a的流量;
  • ta(0)路段a的零流时间;
  • α=0.15
  • β=4

1.2 Wardrop原理

第一原理:用户平衡UE

所有出行者独立地做出令自己行驶时间最小的决策,在所导致的网络流量分布状态里,同一OD对之间所有被使用的路径的时间是相等的,并不大于任何未被使用路径的时间。这样一种流量分布状态被称为用户平衡状态,在这种状态下,没有人能够通过单方面改变自己的路径来达到降低自己时间的目的。

第二原理:系统最优SO

所有人的出行能够令网络总时间最小。

在普通的交通网络中不可能出现第二原理所描述的状态。可以作为系统的评价指标。

1.3 非平衡分配算法

近似算法为非平衡分配算法。

  1. 全有全无算法:对于任意一个OD对,将全部出行量都加载到连接这个OD对的当前最短路径上,而其余路径上的加载量为零。这种方法没有考虑路段拥堵效应,所输入的出行时间为固定值。
  2. 容量限制算法:不断更新路段阻抗、反复调用全有全无算法,试图达到平衡状态的一种分配算法。无法收敛到平衡解,需要设置最大迭代次数。
  3. 增量分配算法:在每一步分配中,根据全有全无分配一定比例的总流量。每步分配后,根据路段流量重新计算出行时间。当采用的递增次数足够多时,该分配方法类似于平衡分配法。

1.4 随机分配方法

阻抗可被视为随机变量。SUE模型的分配结果比确定性的UE模型更接近显示,吸引力小的路径不会像UE方法总出现零流量。

TransCAD使用逐次平均法(MSA)来计算SUE。

STOCH分配方法,路径选择概率由Logit模型计算。时间越短的路径,被选择的概率越大。只分配到“合理”路段。一条合理路段使出行者离出行起点越来越远,离终点越来越近。STOCH出行时间输入的固定值,不随路段流量变化而变化,所以不是平衡算法,但计算速度较快。

1.5 OD矩阵反推

从路段观测交通量推算OD矩阵

需要数据:

  1. 路段观测流量数据:不需要全部路段,调查重要路段的断面车流量。
  2. 基本OD矩阵。最好是历史OD矩阵,如果没有则创建一个全值为1的矩阵。

2. 在TransCAD中进行交通分配

2.1 数据准备

  1. 出行分布矩阵

如果分布矩阵是全日的,需要乘以高峰小时比例系数,将其转换为高峰小时出行量。

  1. 交通网络地理文件

交通网络地理文件是一个线类型的地理文件,线图层数据表中至少要包括两个字段——路段零流行程时间,路段通行能力。

  1. 小区图层(面类型地理文件)

小区图层的作用是在OD矩阵和交通网络之间建立联系。因为OD矩阵的索引是基于小区的,路网节点有另外一套编号系统,OD矩阵无法直接加载到交通网络上。将小区图层作为中介,可以将以小区编号为索引的OD矩阵转换为以路网节点编号为索引的OD矩阵。

2.2 创建小区质心地理文件

  1. 打开小区图层-面类型地理文件;
  2. 工具-导出-导出地区地理文件;
  3. 选择Standard Geographic File,ID选ZoneID,勾选Exports as Centoid Point;
  4. 明明问Cent.dbd。

2.3 将质心连接到路网

  1. 打开Street.dbd,打开图层,将Node设置为可见;
  2. Add Layer-Cent.dbd;
  3. 将Zone置为当前图层,选Tools-Map Editing-Connect;
  4. 选Fill选项卡,在Node field后选INdex,并勾选IDs from Zone layer。

2.4 设置质心连接线属性

小区的出行量全部通过质心连接线进出路网,需要为质心连接线设置较大的通行能力和较小的行驶时间。

  1. Selection-Select by Condition;
  2. Enter a Condition:Time=null;
  3. 选择Time字段,Fill-Single Value输入0.1;
  4. Capacity输入100000;

2.5 创建网络

线类型地理文件只是一个包含了属性数据的地图,还需要在地理文件的基础上创建网络(Networks)文件。

  1. Street置为当前图层;
  2. Networkds/Paths-Create;左边列表框选择Time和Capacity。

2.6 生成小区间阻抗矩阵

因为只对质心之间的阻抗感兴趣,因此先选出质心。

  1. Node置为当前图层;
  2. Selection-Select by Condition- Index <> null;
  3. Networks/Paths-Multiple Paths-Multiple shortest Paths;
  4. Minimize选择Time/Length,From和To均选择Selection,勾选Matrix File,保存最短距离矩阵;

2.7 OD矩阵

需要对OD矩阵索引进行转换(小区编号转为交通网络节点ID)

  1. 选出质心点;
  2. 打开OD_Car;
  3. 右键-指数-弹出Matrix Indices;
  4. Add-Index-Add matrix Index;
  5. Field后选择INdex,下方的Field选择ID,Selection选择Selection;
  6. 在矩阵索引设置对话框中,Rows和Columns后均选择New;

2.8 运行交通分配模型

  1. 地图窗口设置为当前活动窗口;
  2. Planning-Traffic Assignment;
  3. Method选择交通分配方法;Matrix选择待分配矩阵;Time和CaPacity路段行驶时间和通行能力;
  4. Alpha和Beta是默认阻抗函数参数;
  5. 会自动弹出一个数据视图,是路段图层Street的属性表与路段流量表ASN_LinkFlow的连接。;
  6. 制作流量专题地图。

3. 在TransCAD中进行OD反推

OD反推是交通分配的逆过程,是根据路段流量推算可能的OD矩阵。

3.1 数据准备

运行OD反推功能,首先要准备一个含有路段流量的交通网络地理文件。

另外,为了给输出的OD矩阵设置尺寸,还需要准备与一个初始的OD矩阵,它的元素可以全为1。

3.2 运行OD反推模型

  1. 打开ODME.wrk;
  2. Planning-OD Matrix Estimation;
  3. Method后是各种交通分配方法,Matrix是初始矩阵,Time和Capacity是路段行驶时间和通行能力,Count是观测交通量;Alpha和Beta是默认阻抗函数;
  4. 弹出的两个表分别是路段流量表和反推的OD矩阵。