You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python通过COM接口读取VISSIM节点油耗及排放结果失败如何解决

VISSIM节点油耗/排放结果Python获取方案

前置配置

首先你需要先在VISSIM GUI中开启对应统计项:

  • 进入Evaluation > Results > Node Results,勾选启用功能
  • 在指标配置页勾选你需要的燃油消耗、CO、NOx、VOC四个统计项,保存模型后再运行COM调用

错误代码原因说明

你之前的代码报错核心有两个问题:

  1. 节点结果属于仿真输出属性,不属于Vissim.Net下的静态网络对象属性,不能直接从Net.Nodes/Net.Movements调用
  2. 代码存在语法问题:属性名未加闭合引号、参数未包裹为字符串

正确实现代码

第一步:基础依赖导入与VISSIM连接

import win32com.client as com
import pandas as pd

# 连接VISSIM实例,版本根据你安装的调整,比如2024就是24.0
Vissim = com.Dispatch("Vissim.Vissim.24.0")
# 加载你的VISSIM模型
Vissim.LoadModel(r"你的模型路径.inpx", False)
# 配置仿真运行次数为1次
Vissim.Simulation.SetAttValue("NumRuns", 1)

第二步:运行仿真并提取结果

# 启动仿真
Vissim.Simulation.RunContinuous()

# 获取节点结果集
node_results = Vissim.Evaluation.Results.NodeResults
# 获取所有节点编号
all_node_keys = [node.GetAttValue("No") for node in Vissim.Net.Nodes.GetAll()]

# 存储结果的列表
result_list = []
for node_key in all_node_keys:
    # 按编号获取对应节点的结果对象
    current_node_res = node_results.ItemByKey(node_key)
    # 提取需要的指标
    res_item = {
        "节点编号": node_key,
        "燃油消耗": current_node_res.AttValue('FuelConsumption(Avg,Avg)'),
        "CO排放": current_node_res.AttValue('EmissionsCO(Avg,Avg)'),
        "NOx排放": current_node_res.AttValue('EmissionsNOx(Avg,Avg)'),
        "VOC排放": current_node_res.AttValue('EmissionsVOC(Avg,Avg)')
    }
    result_list.append(res_item)

# 打印结果
for item in result_list:
    print(item)

第三步:导出到Excel

# 转DataFrame后导出
df = pd.DataFrame(result_list)
df.to_excel(r"导出路径/节点排放结果.xlsx", index=False)

补充:如果你需要提取节点下各转向运动的排放/油耗结果,将上述代码中的Vissim.Evaluation.Results.NodeResults替换为Vissim.Evaluation.Results.MovementResults,属性名不需要修改。

常见异常排查

  • 若返回空值:确认仿真运行完成、节点结果统计已开启、对应指标已勾选
  • 若提示属性不存在:确认VISSIM版本对应的属性名拼写正确,不同版本属性名可能存在细微差异,可在COM帮助文档的Node Result Attributes章节查询对应版本的属性名
  • 若提示对象不存在:确认你查询的节点/转向编号在VISSIM模型中真实存在

内容的提问来源于stack exchange,提问作者Khadeja Hanif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:18:04