概述#
duarouter 导入不同的需求定义,使用最短路径计算来计算 sumo 可能使用的车辆路径;当被迭代调用时,duarouter 会执行动态用户分配 (DUA)。这是通过工具 duaIterate.py 来实现的,该工具会收敛到一个均衡状态 (DUE)。
-
目的:
A) 根据需求定义构建车辆路径
B) 在用户分配过程中计算路径
C) 修复现有路径文件中的连接性问题
- 系统: 可移植(已在 Linux/Windows 上测试);在命令行上运行
-
输入(必需):
A) 通过 netconvert 或 netgenerate 生成的路网,参见构建路网
B) 需求定义,参见需求建模
- 输出: 车辆、车辆类型和路径的定义,可被 sumo 使用
- 编程语言: C++
使用说明#
Duarouter 有两个主要用途:直接计算最快/最优路径,以及在动态用户分配 (DUA) 的背景下进行迭代计算。
输出#
Duarouter 的主要输出是一个 .rou.xml 文件,其名称由选项 -o 指定。此外,还会生成一个与 .rou.xml 文件同名前缀的 .rou.alt.xml 文件。这个路径备选文件包含每个车辆的路径分布。这种路径分布在动态用户分配 (DUA) 期间使用,但也可以直接加载到 sumo 中。
选项#
您可以使用 XML 模式定义文件来设置 duarouter 配置: duarouterConfiguration.xsd。
配置#
SUMO 套件的所有应用程序都以相同的方式处理配置选项。这些选项在基础/使用命令行应用程序#配置文件中讨论。
| 选项 | 描述 |
|---|---|
| -c <FILE> --configuration-file <FILE> |
启动时加载指定的配置文件 |
| -C <FILE> --save-configuration <FILE> |
将当前配置保存到文件 |
| --save-configuration.relative <BOOL> | 保存配置时强制使用相对路径;默认值: false |
| --save-template <FILE> | 将配置模板(空)保存到文件 |
| --save-schema <FILE> | 将配置模式保存到文件 |
| --save-commented <BOOL> | 向保存的模板、配置或模式添加注释;默认值: false |
输入#
| 选项 | 描述 |
|---|---|
| -n <FILE> --net-file <FILE> |
使用文件作为 SUMO 路网进行路径规划 |
| -a <FILE> --additional-files <FILE> |
从文件读取附加路网数据(交通分区、公交站点) |
| -r <FILE> --route-files <FILE> |
从文件读取 sumo 路径、备选路径、流量和行程 |
| --phemlight-path <FILE> | 确定从何处加载 PHEMlight 定义;默认值: ./PHEMlight/ |
| --phemlight-year <INT> | 在 PHEMlight5 中使用给定的参考年份启用车队年限建模;默认值: 0 |
| --phemlight-temperature <FLOAT> | 设置环境温度以校正 PHEMlight5 中的 NOx 排放;默认值: 1.79769e+308 |
| -w <FILE> --weight-files <FILE> |
从文件读取路网权重 |
| --lane-weight-files <FILE> | 从文件读取基于车道的路网权重 |
| -x <STRING> --weight-attribute <STRING> |
给出边权重的 xml 属性名称;默认值: traveltime |
| --junction-taz <BOOL> | 为每个交叉口初始化一个 TAZ,以使用 toJunction 和 fromJunction 属性;默认值: false |
输出#
| 选项 | 描述 |
|---|---|
| -o <FILE> --output-file <FILE> |
将生成的路径写入文件 |
| --vtype-output <FILE> | 将使用的车辆类型写入单独的文件 |
| --keep-vtype-distributions <BOOL> | 写入车辆及其类型时保留 vTypeDistribution id;默认值: false |
| --emissions.volumetric-fuel <BOOL> | 以(旧)单位 l 而不是 mg 返回燃料消耗值;默认值: false |
| --named-routes <BOOL> | 写入通过其 id 引用路径的车辆;默认值: false |
| --write-license <BOOL> | 将许可证信息包含到每个输出文件中;默认值: false |
| --write-metadata <BOOL> | 写入可解析的元数据(配置等)而不是注释;默认值: false |
| --output-prefix <STRING> | 应用于所有输出文件的前缀。特殊字符串 'TIME' 将被当前时间替换。 |
| --precision <INT> | 定义浮点输出的小数点后位数;默认值: 2 |
| --precision.geo <INT> | 定义经度、纬度输出的小数点后位数;默认值: 6 |
| --output.compression <STRING> | 定义标准压缩算法(目前仅适用于 parquet 输出) |
| --output.format <STRING> | 如果无法从文件名推导,则定义标准输出格式('xml', 'csv', 'parquet');默认值: xml |
| --output.column-header <STRING> | 如何根据属性名推导列头('none', 'tag', 'auto', 'plain');默认值: tag |
| --output.column-separator <STRING> | CSV 输出中的分隔符;默认值: ; |
| -H <BOOL> --human-readable-time <BOOL> |
将时间值写为 小时:分钟:秒 或 天:小时:分钟:秒,而不是秒;默认值: false |
| --alternatives-output <FILE> | 将生成的路径备选方案写入文件 |
| --intermodal-network-output <FILE> | 将边分割和连接性写入文件 |
| --intermodal-weight-output <FILE> | 将多模式边及其长度和行驶时间写入文件 |
| --write-trips <BOOL> | 写入行程而不是车辆(用于验证行程输入);默认值: false |
| --write-trips.geo <BOOL> | 写入带地理坐标的行程;默认值: false |
| --write-trips.junctions <BOOL> | 写入带 fromJunction 和 toJunction 的行程;默认值: false |
| --write-costs <BOOL> | 在路径输出中包含成本属性;默认值: false |
| --exit-times <BOOL> | 写入每条边的离开时间(权重);默认值: false |
| --route-length <BOOL> | 在输出中包含总路径长度;默认值: false |
处理#
| 选项 | 描述 |
|---|---|
| --max-alternatives <INT> | 将备选方案数量修剪为 INT;默认值: 5 |
| --with-taz <BOOL> | 在输入和输出中使用起始和目的地区域(分区);默认值: false |
| --unsorted-input <BOOL> | 假设输入是未排序的;默认值: false |
| -s <TIME> --route-steps <TIME> |
提前加载未来多少秒的路径;默认值: 200 |
| --no-internal-links <BOOL> | 禁用(交叉口)内部链接;默认值: false |
| --randomize-flows <BOOL> | 为流量输入生成随机出发时间;默认值: false |
| --remove-loops <BOOL> | 移除路径内的环路;移除路径起点和终点的掉头;默认值: false |
| --repair <BOOL> | 尝试纠正错误的路径;默认值: false |
| --repair.from <BOOL> | 尝试通过使用第一个可用边来纠正无效的起始边;默认值: false |
| --repair.to <BOOL> | 尝试通过使用最后一个可用边来纠正无效的目的地边;默认值: false |
| --repair.max-detour-factor <FLOAT> | 如果绕行距离超过间隙的 FACTOR 倍,则回溯路径;默认值: 10 |
| --mapmatch.distance <FLOAT> | 将输入坐标(fromXY 等)映射到路网时的最大距离;默认值: 100 |
| --mapmatch.junctions <BOOL> | 将位置匹配到交叉口而不是边;默认值: false |
| --mapmatch.taz <BOOL> | 将位置匹配到 taz 而不是边;默认值: false |
| --bulk-routing <BOOL> | 聚合具有相同起点的路径查询;默认值: false |
| --routing-threads <INT> | 用于路径规划的并行执行线程数;默认值: 0 |
| --routing-algorithm <STRING> | 在路径规划算法中选择 ['dijkstra', 'astar', 'CH', 'CHWrapper'];默认值: dijkstra |
| --restriction-params <STRING[ ]> | 用于比较附加限制的参数键的逗号分隔列表 |
| --weights.interpolate <BOOL> | 在区间边界处插值边权重;默认值: false |
| --weights.expand <BOOL> | 将最后加载的权重区间的末尾扩展到无穷大;默认值: false |
| --weights.minor-penalty <FLOAT> | 在计算次要链接内部车道的路径规划成本时应用给定的时间惩罚;默认值: 1.5 |
| --weights.tls-penalty <FLOAT> | 在计算跨交通信号灯的路径规划成本时应用给定的时间惩罚;默认值: 0 |
| --weights.turnaround-penalty <FLOAT> | 在计算掉头内部车道的路径规划成本时应用给定的时间惩罚;默认值: 5 |
| --weights.reversal-penalty <FLOAT> | 在计算列车反转的路径规划成本时应用给定的时间惩罚。负值表示禁用反转;默认值: 60 |
| --weights.random-factor <FLOAT> | 路径规划的边权重会受到从 [1,FLOAT) 均匀抽取的随机因子的动态干扰;默认值: 1 |
| --weight-period <TIME> | 给定权重文件的聚合周期;触发收缩层次结构的重建;默认值: 3600 |
| --weights.priority-factor <FLOAT> | 除行驶时间外,还考虑边的优先级,权重为因子;默认值: 0 |
| --astar.all-distances <FILE> | 从给定文件初始化 astar 的查找表(由 marouter --all-pairs-output 生成) |
| --astar.landmark-distances <FILE> | 从给定文件初始化 astar ALT 变体的查找表 |
| --astar.save-landmark-distances <FILE> | 将 astar ALT 变体的查找表保存到给定文件 |
| --scale <FLOAT> | 按给定因子缩放需求(通过丢弃或复制车辆);默认值: 1 |
| --scale-suffix <STRING> | 为克隆车辆创建 id 时要添加的后缀;默认值: . |
| --gawron.beta <FLOAT> | 使用 FLOAT 作为 Gawron 的 beta;默认值: 0.9 |
| --gawron.a <FLOAT> | 使用 FLOAT 作为 Gawron 的 a;默认值: 0.5 |
| --keep-all-routes <BOOL> | 保存概率接近零的路径;默认值: false |
| --skip-new-routes <BOOL> | 仅重用输入中的路径,不计算新路径;默认值: false |
| --keep-route-probability <FLOAT> | 保留旧路径的概率;默认值: 0 |
| --ptline-routing <BOOL> | 规划所有公共交通输入的路径;默认值: false |
| --keep-flows <BOOL> | 写入流量而不是将其扩展为车辆;默认值: false |
| --route-choice-method <STRING> | 选择路径选择方法:gawron, logit, 或 lohse;默认值: gawron |
| --logit <BOOL> | 使用 c-logit 模型(已弃用,建议使用 --route-choice-method logit);默认值: false |
| --logit.beta <FLOAT> | 使用 FLOAT 作为 logit 的 beta;默认值: -1 |
| --logit.gamma <FLOAT> | 使用 FLOAT 作为 logit 的 gamma;默认值: 1 |
| --logit.theta <FLOAT> | 使用 FLOAT 作为 logit 的 theta(负值表示自动估计);默认值: -1 |
| --persontrip.walkfactor <FLOAT> | 在多模式路径规划中,使用 FLOAT 作为行人最大速度的因子;默认值: 0.75 |
| --persontrip.walk-opposite-factor <FLOAT> | 使用 FLOAT 作为逆车辆行驶方向行走速度的因子;默认值: 1 |
| --persontrip.transfer.car-walk <STRING[ ]> | 允许从汽车模式切换到步行模式的地点(可能的值:'parkingAreas', 'ptStops', 'allJunctions' 及其组合);默认值: parkingAreas |
| --persontrip.transfer.taxi-walk <STRING[ ]> | 出租车可以放下乘客的地点('allJunctions', 'ptStops') |
| --persontrip.transfer.walk-taxi <STRING[ ]> | 出租车可以接载乘客的地点('allJunctions', 'ptStops') |
| --persontrip.taxi.waiting-time <TIME> | 出租车接载的预计时间;默认值: 300 |
| --persontrip.ride-public-line <BOOL> | 仅使用预定的公共交通线路,而不是任何停靠目的地的替代线路;默认值: false |
| --railway.max-train-length <FLOAT> | 在初始化铁路路由器时使用 FLOAT 作为最大列车长度;默认值: 1000 |
默认值#
| 选项 | 描述 |
|---|---|
| --departlane <STRING> | 分配默认出发车道 |
| --departpos <STRING> | 分配默认出发位置 |
| --departspeed <STRING> | 分配默认出发速度 |
| --arrivallane <STRING> | 分配默认到达车道 |
| --arrivalpos <STRING> | 分配默认到达位置 |
| --arrivalspeed <STRING> | 分配默认到达速度 |
| --defaults-override <BOOL> | 默认值将覆盖给定值;默认值: false |
时间#
| 选项 | 描述 |
|---|---|
| -b <TIME> --begin <TIME> |
定义开始时间;之前的行程将被丢弃;默认值: 0 |
| -e <TIME> --end <TIME> |
定义结束时间;之后的行程将被丢弃;默认为 SUMO 可表示的最大时间;默认值: -1 |
报告#
SUMO 套件的所有应用程序都以相同的方式处理大多数报告选项。这些选项在基础/使用命令行应用程序#报告选项中讨论。
| 选项 | 描述 |
|---|---|
| -v <BOOL> --verbose <BOOL> |
切换到详细输出;默认值: false |
| --print-options <BOOL> | 在处理前打印选项值;默认值: false |
| -? <BOOL> --help <BOOL> |
打印此屏幕或选定主题;默认值: false |
| -V <BOOL> --version <BOOL> |
打印当前版本;默认值: false |
| -X <STRING> --xml-validation <STRING> |
设置 XML 输入的模式验证方案("never", "local", "auto" 或 "always");默认值: local |
| --xml-validation.net <STRING> | 设置 SUMO 路网输入的模式验证方案("never", "local", "auto" 或 "always");默认值: never |
| --xml-validation.routes <STRING> | 设置 SUMO 路径输入的模式验证方案("never", "local", "auto" 或 "always");默认值: local |
| -W <BOOL> --no-warnings <BOOL> |
禁用警告输出;默认值: false |
| --aggregate-warnings <INT> | 当相同类型的警告超过 INT 时进行聚合;默认值: -1 |
| -l <FILE> --log <FILE> |
将所有消息写入文件(隐含 verbose) |
| --message-log <FILE> | 将所有非错误消息写入文件(隐含 verbose) |
| --error-log <FILE> | 将所有警告和错误写入文件 |
| --log.timestamps <BOOL> | 在所有消息前写入时间戳;默认值: false |
| --log.processid <BOOL> | 在所有消息前写入进程 ID;默认值: false |
| --language <STRING> | 消息中使用的语言;默认值: C |
| --ignore-errors <BOOL> | 如果无法构建路径则继续;默认值: false |
| --stats-period <INT> | 定义打印统计信息的频率;默认值: -1 |
| --no-step-log <BOOL> | 禁用路径解析步骤的控制台输出;默认值: false |
随机数#
SUMO 套件的所有应用程序都以相同的方式处理随机化选项。这些选项在基础/使用命令行应用程序#随机数选项中讨论。
| 选项 | 描述 |
|---|---|
| --random <BOOL> | 使用当前系统时间初始化随机数生成器;默认值: false |
| --seed <INT> | 使用给定值初始化随机数生成器;默认值: 23423 |
