本期解读:

能耗数据清洗算法: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的更多相关文章

  1. 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案

    简介 本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发 ...

  2. Hybrid----优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案-备

    本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发送.接 ...

  3. itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景       像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...

  4. 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)

    腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1.  Basic Paxos 算法是为 ...

  5. Android MVP模式 谷歌官方代码解读

    Google官方MVP Sample代码解读 关于Android程序的构架, 当前(2016.10)最流行的模式即为MVP模式, Google官方提供了Sample代码来展示这种模式的用法. Repo ...

  6. msysGit管理GitHub代码

    msysGit管理GitHub代码   代码的管理,在日常开发中是很重要的环节,程序员的修炼三部曲——版本控制,单元测试,项目自动化. 本篇就简单的说说通过msysGit来管理GitHub中的代码,实 ...

  7. C/C++ 开源库及示例代码

    C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...

  8. Google免费的SVN服务器管理VS2010代码

    原文:Google免费的SVN服务器管理VS2010代码 前言 Google免费为我们提供了代码管理的SVN服务器.首先我这里用的Win7 64的电脑系统,用VS2010进行的代码开发.这里管理代码需 ...

  9. spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...

  10. weex官方demo weex-hackernews代码解读(上)

    一.介绍 weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.最新版本的weex已默认将vue.js作为前端框架,而weex-hac ...

随机推荐

  1. obs学习之1——概览

    先占个位置,未完待续... 最近需要用OBS来开发直播软件,特整理这个分类的学习教程,以记录遇到的各种问题.

  2. Springboot笔记<12>数据访问

    springboot数据访问 springboot整合JDBC JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用.JdbcTemplate是Spring的一部分.J ...

  3. Benchmark论文解读:Evaluating the Ripple Effects of Knowledge Editing in Language Models

      论文发表于自然语言处理顶刊TACL-2024(原文链接).目前模型编辑方法的评估主要集中在测试单个事实是否被成功注入,以及模型对其它事实的预测是否没有改变.作者认为这样的评估模式有限,因为注入一个 ...

  4. 告别手动码字!AI智能生成+文档下载,职场/学习效率翻倍攻略!

    一.写在前面 本文重点介绍如何将AI智能生成文字直接转换为word文档,支持下载,最终提升大家学习和职场办公的效率. 二.实操环境 1.Pandoc-api服务: 下载地址:https://githu ...

  5. 袋鼠云数栈基于CBO在Spark SQL优化上的探索

    原文链接:袋鼠云数栈基于CBO在Spark SQL优化上的探索 一.Spark SQL CBO选型背景 Spark SQL的优化器有两种优化方式:一种是基于规则的优化方式(Rule-Based Opt ...

  6. 开源共建 | TIS整合数据同步工具ChunJun,携手完善开源生态

    TIS整合ChunJun实操 B站视频: https://www.bilibili.com/video/BV1QM411z7w5/?spm_id_from=333.999.0.0 一.ChunJun ...

  7. DotTrace系列:7. 诊断 托管和非托管 内存暴涨

    一:背景 1. 讲故事 分析托管和非托管内存暴涨,很多人潜意识里都会想到抓dump上windbg分析,但我说可以用dottrace同样分析出来,是不是听起来有点让人惊讶,哈哈,其实很正常,它是另辟蹊径 ...

  8. MySQL核心知识学习之路(3)

    作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习<MySQL实战45讲>的总结笔记的第三篇,总结了MySQL的索引相关知识. 上一篇:MySQL核心知 ...

  9. 用部署的方法安装Project 2016

    公司有Project 2016和Microsoft 365,但这两个不能同时安装,因为安装方式不同(前者MSI,后者即点即用),网上查了资料,发现可以使用部署的方法安装Project 2016,就能成 ...

  10. .NET AI 模板

    引言 随着人工智能技术的快速发展,AI应用开发已成为开发者必备的技能之一.然而,对于许多.NET开发者来说,如何快速上手AI开发仍然是一个挑战.微软推出的.NET AI模板预览版正是为了解决这一问题而 ...