MyEMS开源能源管理系统核心代码解读024
MyEMS开源能源管理系统适用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力企业集团、产业园区、能源运营商低碳发展!
本期解读:
空间能源产出汇总计算方法:myems-aggregation/space_energy_output_category.py
源代码链接:https://gitee.com/myems/myems/blob/master/myems-normalization/virtualpoint.py?sessionid=1992803748
总体概述
1.主函数 (main): ** 循环执行,首先从系统数据库中获取所有空间的列表,然后使用多进程池并行处理每个空间。
2.工作函数 (worker)* 为每个空间执行一系列步骤,包括获取与该空间相关的设备、子空间和能源数据,然后按小时和能源类别聚合这些数据。
主函数 (main) 详解
1.连接数据库: 尝试连接到系统数据库,获取所有空间信息。
2.获取空间列表: 从数据库中查询所有空间,并按ID排序。
3.多进程处理: 使用Python的multiprocessing.Pool创建进程池,并行调用worker函数处理每个空间。
4.错误处理和日志记录: 如果在处理过程中遇到错误,记录错误并继续处理其他空间。
5.休眠和重复: 每轮处理完成后,程序休眠一段时间(例如0秒),然后重复上述过程。
工作函数 (worker) 详解
1.获取与空间相关的设备: 查询与当前空间关联的所有组合设备和单独设备。
2.获取子空间: 查询当前空间的所有子空间。
3.确定聚合的时间范围: 确定开始和结束时间,用于聚合能源数据。
4.获取能源数据: 对于每个组合设备、单独设备和子空间,从能源数据库中获取相应的能源输出数据。
5.确定共同时间段: 确定所有设备共有的时间段,以便进行数据聚合。
6.数据聚合: 按小时和能源类别聚合能源数据。
7.保存聚合数据: 将聚合后的数据保存回能源数据库。
总体来说,这段代码是一个复杂的数据处理脚本,用于从多个来源收集和聚合能源数据,以便进行进一步的分析和报告。
MyEMS开源能源管理系统核心代码解读024的更多相关文章
- 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案
简介 本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发 ...
- Hybrid----优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案-备
本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发送.接 ...
- itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码
导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景 像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...
- 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)
腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1. Basic Paxos 算法是为 ...
- Android MVP模式 谷歌官方代码解读
Google官方MVP Sample代码解读 关于Android程序的构架, 当前(2016.10)最流行的模式即为MVP模式, Google官方提供了Sample代码来展示这种模式的用法. Repo ...
- msysGit管理GitHub代码
msysGit管理GitHub代码 代码的管理,在日常开发中是很重要的环节,程序员的修炼三部曲——版本控制,单元测试,项目自动化. 本篇就简单的说说通过msysGit来管理GitHub中的代码,实 ...
- C/C++ 开源库及示例代码
C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...
- Google免费的SVN服务器管理VS2010代码
原文:Google免费的SVN服务器管理VS2010代码 前言 Google免费为我们提供了代码管理的SVN服务器.首先我这里用的Win7 64的电脑系统,用VS2010进行的代码开发.这里管理代码需 ...
- spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装
导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...
- weex官方demo weex-hackernews代码解读(上)
一.介绍 weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.最新版本的weex已默认将vue.js作为前端框架,而weex-hac ...
随机推荐
- 洛谷题解:P12364 [蓝桥杯 2022 省 Python B] 寻找整数
注:可以在两分钟内跑出. 看到这题,暴力枚举跑不出来.如果你有没有充分的数学知识,那又怎么办呢? 减少枚举量 首先,注意到许多余数都是 \(11\),有图为证: 设这个数为 \(n\),则有: \[n ...
- WPF 使用GDI+提取图片主色调并生成Mica材质特效背景
先看效果,在浅色模式下: 在深色模式下: P.S. 此算法只是尽可能地接近Windows Mica效果,并非实际实现:主色调提取算法只能确保在绝大多数情况下适用. 测试项目在Github上开源: Tw ...
- 浅谈commons-collections4链
浅谈commons-collections4链 commons-collections4的背景: 由于commons-collections (3.x) 在架构设计和 API 上暴露出一些问题(例如接 ...
- AI智能体介绍与典型应用场景分析
一.什么是AI智能体 AI智能体(AI Agent)是一种软件,指能够接入AI,实现感知环境.进行自主决策并执行任务的系统.与AI大模型不同,AI智能体具备一定程度的自治性,能够根据输入的信息进行推理 ...
- 用AI工具ChatMoney一键创作,让你的公众号文章流量飙升!
本文由 ChatMoney团队出品 引言 想不想你的公众号文章一炮而红?是不是羡慕那些动不动就10W+的爆款文章?别眼红了,用ChatMoney,你也可以做到!这货可不是普通的写作工具,它是你的文章变 ...
- 关于MUI框架混合AS开发app项目中遇到的百度地图闪退,不显示地图问题的一次记录
才进入公司就让我解决MUI混合app出现的BUG,让只会纯纯原生的我有点崩溃,三天就要结果,不过幸不辱命,今天我把这个问题解决了. 这个BUG是:百度地图崩溃导致应用闪退 上图是H5+androidS ...
- C#学习日志
C#入门篇 EanoJiang/CSharp-: C#入门教程,自用 程序思维题: 两根不均匀的香,烧完一根是1h,怎么用来计时15min呢? 思路:一根香从两头同时点燃烧完是30min,只需再对半即 ...
- HyperWorks二维网格划分及拓扑改进
Step 01:载入模型 Exercise_3a.hm. Step 02:2D 网格划分. (1) 进入 automesh 面板. 图 3-13 设置 automesh 面板网格控制参数 (2) 指定 ...
- oracleINS-13001 环境不满足最低要求
使用windows10等系统安装oracle 11g等版本的数据库时,经常会发现开始安装时弹出[INS-13001 环境不满足最低要求]的提示,此时可以点击[是]继续安装. 也可以点击[否]结束安装, ...
- 【攻防世界】Web | wife_wife 详细题解WP
[攻防世界] | Web | wife_wife详细题解WP 进入题目环境,首先进入sign up创建一个admin用户,下方有勾选 is admin,打上勾 随便填写Invite Code,进行抓包 ...