MyEMS开源能源管理系统核心代码解读002
本期解读:
能耗数据清洗算法:myems/myems-cleaning/clean_energy_value.py
代码见底部截图
这段代码是一个用于清洁和标记能源数据质量的Python脚本,主要用于处理能源值数据,识别并标记出异常或“坏”的数据点。以下是对代码的概括性总结和详细解析:
总结
连接数据库:脚本首先尝试连接到历史数据数据库。
确定处理时间范围:确定需要清洁数据的时间范围。
识别异常数据:
步骤2:检查两类异常情况。第一类是基于预设的高限和低限的异常值;第二类是形状为凹形(concave)的异常数据模式。
步骤3:进一步检查凹形数据模式。
标记异常数据:将识别为异常的数据点的is_bad属性标记为1。
重置未检查的数据:将未检查的数据点的is_bad属性重置为0。
休眠与重试:处理完毕后休眠一段时间后继续执行。
详细解析
数据库连接:使用mysql.connector连接到MySQL数据库,处理任何连接错误。
确定时间范围:
从数据库中查询最后一个已检查(is_bad非空)和未检查(is_bad为空)的数据点的时间,以确定需要清洁的时间范围。
如果所有数据点都已检查,则从配置的起始日期时间开始。
异常数据检查:
步骤2:检查两类异常数据。第一类是超出高低限的数据点;第二类是形状为凹形的数据序列。
步骤3:对凹形数据进行更详细的检查,识别不符合正常趋势的数据点。
更新数据库:
将识别为异常的数据点的is_bad属性更新为1。
对于那些在处理时间范围内未被检查的数据点,将它们的is_bad属性重置为0。
错误处理和日志记录:在每一步骤中,如果遇到异常,记录错误信息,并在休眠后重试。
循环执行:脚本在完成一次清洁操作后休眠一段时间(例如15分钟),然后重新开始,确保持续监控和清洁数据。
注意事项
脚本使用配置文件(config模块)来获取数据库连接信息和其他设置。
异常检测逻辑依赖于特定的业务规则和数据特性,可能需要根据实际情况调整。
数据库操作包括读取数据点、更新数据点的状态等,需要确保数据库性能可以支持这些操作。

MyEMS开源能源管理系统核心代码解读002的更多相关文章
- 优秀开源代码解读之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 ...
随机推荐
- obs学习之1——概览
先占个位置,未完待续... 最近需要用OBS来开发直播软件,特整理这个分类的学习教程,以记录遇到的各种问题.
- Springboot笔记<12>数据访问
springboot数据访问 springboot整合JDBC JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用.JdbcTemplate是Spring的一部分.J ...
- Benchmark论文解读:Evaluating the Ripple Effects of Knowledge Editing in Language Models
论文发表于自然语言处理顶刊TACL-2024(原文链接).目前模型编辑方法的评估主要集中在测试单个事实是否被成功注入,以及模型对其它事实的预测是否没有改变.作者认为这样的评估模式有限,因为注入一个 ...
- 告别手动码字!AI智能生成+文档下载,职场/学习效率翻倍攻略!
一.写在前面 本文重点介绍如何将AI智能生成文字直接转换为word文档,支持下载,最终提升大家学习和职场办公的效率. 二.实操环境 1.Pandoc-api服务: 下载地址:https://githu ...
- 袋鼠云数栈基于CBO在Spark SQL优化上的探索
原文链接:袋鼠云数栈基于CBO在Spark SQL优化上的探索 一.Spark SQL CBO选型背景 Spark SQL的优化器有两种优化方式:一种是基于规则的优化方式(Rule-Based Opt ...
- 开源共建 | TIS整合数据同步工具ChunJun,携手完善开源生态
TIS整合ChunJun实操 B站视频: https://www.bilibili.com/video/BV1QM411z7w5/?spm_id_from=333.999.0.0 一.ChunJun ...
- DotTrace系列:7. 诊断 托管和非托管 内存暴涨
一:背景 1. 讲故事 分析托管和非托管内存暴涨,很多人潜意识里都会想到抓dump上windbg分析,但我说可以用dottrace同样分析出来,是不是听起来有点让人惊讶,哈哈,其实很正常,它是另辟蹊径 ...
- MySQL核心知识学习之路(3)
作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习<MySQL实战45讲>的总结笔记的第三篇,总结了MySQL的索引相关知识. 上一篇:MySQL核心知 ...
- 用部署的方法安装Project 2016
公司有Project 2016和Microsoft 365,但这两个不能同时安装,因为安装方式不同(前者MSI,后者即点即用),网上查了资料,发现可以使用部署的方法安装Project 2016,就能成 ...
- .NET AI 模板
引言 随着人工智能技术的快速发展,AI应用开发已成为开发者必备的技能之一.然而,对于许多.NET开发者来说,如何快速上手AI开发仍然是一个挑战.微软推出的.NET AI模板预览版正是为了解决这一问题而 ...