MyEMS开源能源管理系统核心代码解读020
MyEMS开源能源管理系统适用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力企业集团、产业园区、能源运营商低碳发展!
官网 :https://myems.io
MyEMS开源社区版下载:https://gitee.com/myems/myems
本期解读:
空间能耗分类汇总计算方法:myems-aggregation/space_energy_input_category.py
这段代码是一个用于能源数据处理的Python脚本,主要功能是计算和聚合一个建筑空间内不同能源输入类别的小时能耗数据。它通过连接到MySQL数据库来获取空间、仪表、虚拟仪表、离线仪表、组合设备、设备、商铺、商店、租户和子空间的相关信息,并计算这些实体在特定时间段内的能耗。以下是对代码的详细解析:
总体流程
1.主循环: 脚本持续运行,定期(每5分钟)执行能耗数据的聚合计算。
2.获取空间列表: 从系统数据库中获取所有空间的列表。
3.多进程处理: 为每个空间创建一个进程,并行处理能耗数据的聚合。
4.数据聚合: 对于每个空间,聚合其下所有相关实体的能耗数据。
详细步骤
1.连接数据库: 连接到系统数据库和能源数据库。
2.获取空间列表: 查询系统数据库,获取所有空间的ID和名称。
3.随机化空间列表: 为了避免每次处理相同顺序的空间,将空间列表随机化。
4.多进程聚合: 使用Python的multiprocessing库,为每个空间创建一个进程进行数据聚合。
5.数据聚合流程(在每个空间上执行):
- 获取与空间关联的所有仪表、虚拟仪表、离线仪表、组合设备、设备、商铺、商店、租户和子空间。
- 确定聚合的起始和结束时间。
- 从能源数据库中获取每个实体在指定时间段内的能耗数据。
- 确定所有实体能耗数据的公共时间范围。
- 在公共时间范围内,按能源类别和小时聚合能耗数据。
- 将聚合后的数据保存回能源数据库。
关键点
- 错误处理: 在每个关键步骤中,都有异常处理来确保数据库连接的稳定性和错误的记录。
- 日志记录: 使用logger对象记录错误和重要的信息。
- 配置管理: 通过config模块管理数据库连接和其他配置信息。
- 性能优化: 通过多进程处理和数据聚合优化性能。
结论
这个脚本是一个复杂的数据处理工具,用于管理和聚合建筑空间内的能源消耗数据。它展示了数据库操作、多进程编程和数据处理的高级应用。

浙公网安备 33010602011771号