VISSIM&COM--Python

如何在Python中调用VISSIM中“节点”的结果呢?(想调用其中的“车辆平均延误”和《车辆数》

img


这样写,但是GetResult()报错了,应该用哪个函数呢?

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 文章:python利用VISSIM仿真数据计算车速 中也许有你想要的答案,请看下吧
  • 以下回答来自chatgpt:

    回答:

    要实现在Python中调用VISSIM节点的结果,可以使用COM技术。

    首先,需要安装VISSIM的COM组件。打开VISSIM的安装目录,找到Vissim.exe,在CMD中运行 vissim.exe /regserver 命令即可注册COM组件。

    然后,在Python中使用win32com模块连接VISSIM的COM组件。代码示例如下:

    import win32com.client
    
    # 连接VISSIM的COM组件,使用相应版本的VISSIM
    # 如果提示没有安装对应版本的VISSIM,需要先安装对应版本的VISSIM
    vissim = win32com.client.Dispatch("Vissim.Vissim.11")
    
    # 打开VISSIM仿真模型文件
    model_path = "D:\\Vissim\\Examples\\SignalizedIntersection.inpx"
    vissim.LoadNet(model_path)
    
    # 获取VISSIM节点对象的名字
    node_name = "1"
    
    # 获取节点的车辆平均延误
    delay = vissim.Net.NodeByNumber(node_name).AttValue("Delay(VEH)")
    
    # 获取节点的车辆数
    vehicle_count = vissim.Net.NodeByNumber(node_name).AttValue("NoOfVeh")
    
    print("节点%s的车辆平均延误为%.2f秒,车辆数为%d辆。" % (node_name, delay, vehicle_count))
    

    需要注意的是,在使用COM组件时,需要按照VISSIM的版本安装相应的Python第三方模块win32com,否则程序会出现一些错误。

    至此,我们可以成功地在Python中获取VISSIM节点的结果了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^