duarouter

概述#

duarouter 导入不同的需求定义,使用最短路径计算来计算 sumo 可能使用的车辆路径;当被迭代调用时,duarouter 会执行动态用户分配 (DUA)。这是通过工具 duaIterate.py 来实现的,该工具会收敛到一个均衡状态 (DUE)。

  • 目的:

    A) 根据需求定义构建车辆路径

    B) 在用户分配过程中计算路径

    C) 修复现有路径文件中的连接性问题

  • 系统: 可移植(已在 Linux/Windows 上测试);在命令行上运行

使用说明#

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

进一步的文档#