SUMO中randomTrips.py高fringe-factor仍生成内部起点车辆问题咨询
问题原因
fringe-factor参数本质是调整边界边的采样权重,并非完全禁止内部边作为起终点。该参数仅会将识别到的边界边的被选中概率乘以你设置的系数,只要内部边的基础采样权重不为0,即使系数设置到极高值,只要路网内部边数量足够多,仍有概率被抽中作为起终点。- 若你从OSM导入的路网未正确标记边界边,部分实际位于路网边缘的通行边没有被SUMO识别为fringe边,会导致权重加成未覆盖全部预期的边界起终点,进一步提高了内部边被选中的概率。
解决方案
直接替换权重调整的逻辑,使用randomTrips自带的强制边界起终点参数,调整后的命令如下:
python3 /home/sumo/tools/randomTrips.py -n osm.net.xml -b 0 -e 2000 -p 2 --trip-attributes="departLane=\"best\" departSpeed=\"10.0\" departPos=\"base\"" --route-file trips.xml --fringe-start --fringe-end --validate
关键参数说明:
- 新增
--fringe-start:强制所有出行的起点只能从路网边界的边中选择 - 新增
--fringe-end:强制所有出行的终点只能从路网边界的边中选择 - 新增
--validate:自动过滤无法从起点行驶到终点的无效出行,避免后续仿真报错
如果调整后仍不符合预期,可以用netedit打开osm.net.xml,查看边属性中fringe字段的赋值,确认你期望作为起终点的边缘边被正确标记为true,同时对应边的通行权限包含你生成的车辆类型。
内容的提问来源于stack exchange,提问作者White_Sirilo
相关产品推荐
相关产品推荐

