MyEMS开源能源管理系统核心代码解读020

简介: MyEMS开源能源管理系统助力企业、园区实现低碳发展,支持电、水、气等数据采集与分析,涵盖光伏、储能、充电桩等多种功能。专业团队维护,提供长期支持。代码解析:空间能耗分类汇总计算实现方法。

MyEMS开源能源管理系统适用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力企业集团、产业园区、能源运营商低碳发展!
官网 :https://myems.io

MyEMS开源社区版下载:https://gitee.com/myems/myems

本期解读:
空间能耗分类汇总计算方法:myems-aggregation/space_energy_input_category.py
源代码链接:https://gitee.com/myems/myems/blob/master/myems-normalization/virtualpoint.py?sessionid=518010676
这段代码是一个用于能源数据处理的Python脚本,主要功能是计算和聚合一个建筑空间内不同能源输入类别的小时能耗数据。它通过连接到MySQL数据库来获取空间、仪表、虚拟仪表、离线仪表、组合设备、设备、商铺、商店、租户和子空间的相关信息,并计算这些实体在特定时间段内的能耗。以下是对代码的详细解析:

总体流程

1.主循环: 脚本持续运行,定期(每5分钟)执行能耗数据的聚合计算。

2.获取空间列表: 从系统数据库中获取所有空间的列表。

3.多进程处理: 为每个空间创建一个进程,并行处理能耗数据的聚合。

4.数据聚合: 对于每个空间,聚合其下所有相关实体的能耗数据。

详细步骤

1.连接数据库: 连接到系统数据库和能源数据库。

2.获取空间列表: 查询系统数据库,获取所有空间的ID和名称。

3.随机化空间列表: 为了避免每次处理相同顺序的空间,将空间列表随机化。

4.多进程聚合: 使用Python的multiprocessing库,为每个空间创建一个进程进行数据聚合。

5.数据聚合流程(在每个空间上执行):

  • 获取与空间关联的所有仪表、虚拟仪表、离线仪表、组合设备、设备、商铺、商店、租户和子空间。

  • 确定聚合的起始和结束时间。

  • 从能源数据库中获取每个实体在指定时间段内的能耗数据。

  • 确定所有实体能耗数据的公共时间范围。

  • 在公共时间范围内,按能源类别和小时聚合能耗数据。

  • 将聚合后的数据保存回能源数据库。

    关键点

  • 错误处理: 在每个关键步骤中,都有异常处理来确保数据库连接的稳定性和错误的记录。

  • 日志记录: 使用logger对象记录错误和重要的信息。

  • 配置管理: 通过config模块管理数据库连接和其他配置信息。

  • 性能优化: 通过多进程处理和数据聚合优化性能。

    结论

    这个脚本是一个复杂的数据处理工具,用于管理和聚合建筑空间内的能源消耗数据。它展示了数据库操作、多进程编程和数据处理的高级应用。

相关文章
|
IDE Linux 开发工具
Linux 实操篇-Linux 磁盘分区、挂载
Linux 实操篇-Linux 磁盘分区、挂载
502 0
|
SQL 分布式计算 Hadoop
|
消息中间件
RabbitMQ中的消息优先级是如何实现的?
RabbitMQ中的消息优先级是如何实现的?
794 0
|
5月前
|
数据可视化 开发工具
HarmonyOS NEXT实战:进度条
本教程介绍HarmonyOS中Progress组件的使用,涵盖进度条类型、样式设置及属性配置,通过实战示例ProgressBarDemoPage演示如何实现可视化进度展示,适用于教育和应用开发学习场景。
152 0
|
5月前
|
数据采集 人工智能 运维
甭再盯死日志了,AI已经悄悄替你盯着网络流量了
甭再盯死日志了,AI已经悄悄替你盯着网络流量了
243 0
|
4月前
|
分布式计算 DataWorks 大数据
阿里云ODPS的个人收获思考
在接触阿里云ODPS过程中,我深入了解了MaxCompute和DataWorks等产品。MaxCompute强大的数据处理能力显著提升了我的工作效率,而DataWorks的一站式开发与治理平台简化了数据流程管理。通过实践,我不仅掌握了高效的SQL编写与数据挖掘技巧,还提升了团队协作意识与大数据思维,为未来挑战打下了坚实基础。
104 3
|
5月前
|
JSON API 数据格式
淘宝商品评论API接口,json数据示例参考
淘宝开放平台提供了多种API接口来获取商品评论数据,其中taobao.item.reviews.get是一个常用的接口,用于获取指定商品的评论信息。以下是关于该接口的详细介绍和使用方法:
|
8月前
|
机器学习/深度学习 编解码 人工智能
SANA-Sprint:基于连续时间一致性蒸馏的单步扩散模型,0.1秒即可生成图像
Nvidia 提出的 SANA-Sprint 是一种混合蒸馏框架,结合连续时间一致性模型(sCM)与潜在对抗扩散蒸馏(LADD),实现快速高质量文本到图像生成。它支持 1-4 步推理,单步生成 FID 7.59、GenEval 0.74,H100 GPU 上 0.1 秒生成 1024×1024 图像,比 FLUX-Schnell 快 10 倍。通过无训练一致性变换和稳定训练技术,SANA-Sprint 克服传统方法局限,推动实时生成应用。
205 4
SANA-Sprint:基于连续时间一致性蒸馏的单步扩散模型,0.1秒即可生成图像
|
人工智能 IDE Java
MarsCode AI 一款免费的代码辅助工具,值得一试
MarsCode是由字节跳动旗下公司推出的AI编程工具,旨在提升编码效率和质量。它既是一个云端集成开发环境(IDE),也支持作为VS Code和JetBrains等IDE的智能扩展,提供代码补全、生成、优化等功能,并支持多种编程语言。通过AI助手,MarsCode帮助开发者减少重复劳动,提高代码质量和可维护性,同时支持跨平台使用,为开发者带来便捷高效的编程体验。
2003 1
|
安全 JavaScript
Vue3+Pinia实现Keycloak高效身份验证!
Vue3+Pinia实现Keycloak高效身份验证!