netconvert, netgenerate, 和 netedit 提供了一些额外的选项来描述网络应如何被导入。 某些选项的适用范围并不涵盖所有的导入类型。
设置默认值#
如前所述,边(edge)的参数可能会被省略,此时将使用默认值。可以使用以下选项为导入的边设置默认的车道数量、允许速度和优先级: --default.lanenumber <INT> (或简写 -L <INT>)、--default.speed <FLOAT> (或简写 -S <FLOAT>)、--default.priority <INT> (或简写 -P <INT>)。
添加掉头路径(Turnarounds)#
通常,掉头路径作为可能的边延续被添加,并在网络构建过程中发挥重要作用(参见 Publications#Krajzewicz_et_al2005_2)。 不过,有时可能不希望添加它们。在这种情况下,可以使用选项 --no-turnarounds 来禁止追加掉头路径。
移除几何节点#
在大多数输入网络中,可能会发现这样的节点:一条街道进入,另一条具有相同属性的街道离开;或者两条平行的边进入,两条(具有相同属性的)边离开。此类节点大多没有意义(除了提供额外的掉头可能性),可以被移除。移除此类节点可以提高仿真速度,因为每个时间步需要处理的边数减少了。 要移除此类节点并合并进出边,请使用 --geometry.remove。 移除节点时,通过在被移除节点的位置添加一个额外的几何点来保留边的几何形状。
使用 km/h 定义边的最大速度#
有些人不喜欢使用 m/s 来定义速度。如果您想以 km/h 为单位定义边上的允许速度,您应该向 netconvert 传递选项 --speed-in-kmh。
导入不含交通灯逻辑的网络#
一些支持的网络格式提供有关交通灯逻辑的信息,而其他格式则不提供。因此,我们必须自行计算交通灯。在这样做时,我们不仅要计算信号灯方案,还要计算哪些路口将设有交通灯。有几个选项可以控制此过程。首先,您必须告诉 netconvert/netgenerate 您希望程序猜测交通灯的位置。这是通过使用 --tls.guess 选项来完成的。
您还可以使用 --tls.set 将路口设置为受交通灯控制,或使用 --tls.unset 将其设置为不受控制。这两个选项都假定参数是由 ',' 分隔的节点名称列表。如果一个节点同时出现在两个列表中,其行为是未定义的。
在计算交通灯逻辑期间,我们需要猜测相位的持续时间。选项 --tls.green.time 和 --tls.yellow.time 允许您给出绿灯和黄灯的持续时间。这两个选项都假定持续时间以秒为单位的整数。红灯的持续时间取决于其他相位的数量及其绿灯和黄灯相位的持续时间。绿灯相位长度的默认值为 31 秒,如果未为此选项设置值,则黄灯使用下面描述的 --tls.yellow.min-decel 计算。
目前还没有计算或估计“绿波”(同步交通灯以允许一个方向连续通行)的可能性。您只能选择将计算出的相位偏移其持续时间的一半或四分之一。用于此的选项是:--tls.half-offset 和 --tls.quarter-offset。这两个选项都假定参数是由 ',' 分隔的节点名称列表。如果一个节点同时出现在两个列表中,或者该节点不打算由交通灯控制,其行为是未定义的。当然,您也可以在生成的网络文件中编辑偏移量(参见 Simulation/Traffic Lights)。
猜测匝道(On- and Off-Ramps)#
大多数导入的网络描述没有关于高速公路匝道的信息。这意味着匝道是直接连接到高速公路的,没有加速/减速车道。您可以强制 netconvert 猜测应在何处构建匝道。要启用此功能,请使用选项 --ramps.guess。该算法确保在具有一个进/出高速公路边和一个进/出次要边的高速路口添加加速车道和减速车道。仅当进车道总数与出车道总数不同时才添加车道。您可以使用 --ramps.min-highway-speed <FLOAT> 设置边的最小速度来约束高速公路的分类,并使用 --ramps.max-ramp-speed <FLOAT> 设置其最大速度来约束次要边的分类(这两个选项都假定速度单位为 m/s)。此外,--ramps.ramp-length 告诉 netconvert 添加的匝道长度应为多少米。
Note
通常,我们保持 --ramps.ramp-length 未设置,并让几何计算完成其余的工作。
路口内部交通#
如果您已经了解 SUMO,或者看过一些示例,您可能已经注意到车辆过去常常“跳过”路口而不是在上面行驶。这种行为对于模拟大型场景非常合适,因为在这些情况下仿真误差可以忽略不计(至少我们忽略了它)。自版本 0.10.0 起,SUMO 默认将以您在现实中所知的方式模拟路口上的交通。由于在路口内部插入内车道会显著增加网络的大小,您可能希望使用选项 --no-internal-links 恢复到旧行为。
修剪导入的网络#
netconvert 提供了一些可能性来限制读取的边,如果您有一个大型街道网络但只想模拟其中的一部分或仅模拟主要道路,这是非常有用的。限制输入的第一种方法是命名所有要保留的边。您可以直接在命令行/配置中使用 --keep-edges.explicit <ID>[,<ID>]* 来完成此操作,其中每个 <ID> 代表您要保留的边的 ID,由 ',' 分隔;或者您可以将此列表保存到一个文件中,每个 ID 存储在单独的一行中,然后让 netconvert 使用 --keep-edges.input-file <FILE> 读取该文件。如果您正在使用 --geometry.remove 合并边(参见“移除几何节点”),您可能还会对选项 --keep-edges.postload 感兴趣,它强制 netconvert 首先合并边,然后再移除不需要的边。
还可以通过给出边上的最小允许速度来限制导入的边,以便将该边包含在生成的网络中。为此请使用 --keep-edges.min-speed <FLOAT>,其中 <FLOAT> 是边必须允许的最小速度(单位为 m/s),以便被包含在输出中。
