逻辑整理(光伏发电预测算法部署用的)

def main():while True:if is_true_month():  # 检查是否为每年的1月份、4月份、7月份、10月份的凌晨1:00,判断到minget_new_history_data  # 获取最新的3个月左右的历史数据train model # 进行模型训练save model # 保存模型 在之前模型保存的位置直接覆盖if is_21_oclock(): # 检查是否为晚上九点钟get_forecast_data # 通过API接口获取次日96点的预报气象数据save_forecast_data # 将预报的气象数据保存起来get_save_model and pv_predict获取保存的模型参数,对获取的预报气象数据进行光伏发电功率预测save predict pv_power # 保存预测的光伏发电功率time.sleep(3600*23) # 等待23h,避免重复光伏预测time.sleep(60) # 等待1min后再次检查if __name__ == "__main__":main()

有问题:

①问题在与要是进入每天晚上九点后,等待23小时,不管怎样都到不到这几个月1日凌晨1点的判断

②增加全局异常捕获,然后在等待,这样程序不不容易崩

修改:

import threading
import time
import pandas as pd
from sqlalchemy import create_engine
import requests
import joblib# 数据库连接配置
db_connection_str = 'dialect+driver://username:password@host:port/dbname'
engine = create_engine(db_connection_str)# 模型训练和保存
def train_model():try:# 获取最新的3个月历史数据df = pd.read_sql('SELECT * FROM history_data WHERE timestamp > NOW() - INTERVAL 3 MONTH', engine)# 模型训练逻辑# model = ...# model.fit(df.features, df.labels)# 保存模型joblib.dump(model, 'model.pkl')# 安排下一次训练threading.Timer(time_interval, train_model).start()except Exception as e:print(f"Error in train_model: {e}")# 获取预报气象数据
def get_forecast_data():try:response = requests.get(' ')data = response.json()# 保存预报数据df = pd.DataFrame(data)df.to_sql('forecast_data', engine, if_exists='append')# 安排下一次获取预报数据threading.Timer(one_day, get_forecast_data).start()except Exception as e:print(f"Error in get_forecast_data: {e}")# 光伏发电预测
def predict_pv_power():try:# 加载模型model = joblib.load('model.pkl')# 获取最新的预报数据df = pd.read_sql('SELECT * FROM forecast_data ORDER BY timestamp DESC LIMIT 1', engine)# 进行预测prediction = model.predict(df.features)# 保存预测结果df['prediction'] = predictiondf.to_sql('pv_predictions', engine, if_exists='append')# 安排下一次预测threading.Timer(one_day, predict_pv_power).start()except Exception as e:print(f"Error in predict_pv_power: {e}")# 定义时间间隔
time_interval = 3 * 30 * 24 * 60 * 60  # 3个月的秒数
one_day = 24 * 60 * 60  # 一天的秒数# 启动定时任务
train_model()
get_forecast_data()
predict_pv_power()

上述这种方式应该更好吧。

上述这种,程序容易崩,不建议用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/30818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三角形法恢复空间点深度

三角形法恢复空间点深度 如下图,以图 I 1 I_1 I1​为参考,图 I 2 I_2 I2​的变换矩阵为 T T T。相机光心为 O 1 O_1 O1​和 O 2 O_2 O2​。在图 I 1 I_1 I1​中有特征点 p 1 p_1 p1​,对应图 I 2 I_2 I2​中有特征点 p 2 p_2 p2​。理论上直…

战略网络优化:网络可观测性的综合方法

在网络成为运营支柱的时代,了解和优化网络性能至关重要。网络可观测性是了解网络性能的关键,它以一种全面、主动的方式超越了传统监控。本文说明了网络可观测性的变革力量,详细介绍了其优势、差异化因素及其在现代网络管理中的关键作用。 什…

vue学习(三)

14.监视属性watch 当被监视的属性发生变化时,回调函数立即调用,进行操作 监视的两种写法:直接配置或者通过vm添加 watch:{isHot:{immediate:true, //首次用到执行handler(newValue,oldValue){console.log("isHot 被修改了",newV…

python如何做报表系统

首先我们安装的python和PyQt5要保持一致,要么都是32位或者都是64位。 下载安装,安装完成之后我们记得要设置环境变量。 一路选择“下一步”就可以了。 安装完成之后我们需要验证是否成功。 pyqt5的安装直接安装就可以的,主要更改环境变量~~\p…

数据结构之B数

目录 1.概述 2.特点 3.诞生 4.优缺点 4.1.优点 4.2.缺点 5.应用场景 6.C语言中的B树实现例子 7.总结 1.概述 B树(B-tree)是一种自平衡的树数据结构,广泛应用于数据库和文件系统中,以便高效地进行顺序读取、写入以及查找…

使用 C# 进行面向对象编程:第 9 部分

使用 OOP 的用户活动日志 应用程序背后的关键概念 在这一部分中,我们将使用之前学到的一些 OOP 概念。我们将创建一个小型应用程序。在继续之前,请阅读我的文章user-activity-log-using-C-Sharp-with-sql-server/。在本课程中,我们将再次使…

测试人员遇到需求变更 4大处理技巧

测试人员有效的需求变更管理,可以确保即使在需求频繁变化的情况下,测试工作仍然能够覆盖所有必要的功能点,从而保障最终产品的质量。如果没有合理的需求变更处理技巧,可能会造成不必要的返工和重复测试,无法维持项目的…

平安养老险浙江分公司开展防范非法集资宣传,守护群众“钱袋子”

为进一步提高群众对非法集资的防范意识的鉴别能力,近期,平安养老保险股份有限(以下简称“平安养老险”)浙江分公司以“守住钱袋子、护好幸福家”为宣传主题,深入居民社区、办公职场等公共场所开展的宣传活动。 平安养老…

看完再买不后悔!希喂、小米、霍尼韦尔宠物空气净化器性价比比拼

在忙碌的工作之余,养一只猫真的能治愈一切的不快,让我们的心灵得到片刻的宁静。然而,这份宁静背后,却隐藏着一些不易察觉的烦恼——猫浮毛和异味。 猫浮毛,这个看似微不足道的小问题,实则给许多宠物主人带…

PS选不了颜色和路径描边?PS不知为何才能描边任意路径,这个办法让你秒懂

在选中路径的情况下,按图下操作,即可制作路径(不会让你选不了颜色和路径描边)

第4章 工程经济评价指标 作业

第4章 工程经济评价指标 作业 一单选题&#xff08;共27题&#xff0c;100分&#xff09; (单选题)利息备付率是指( )与应付利息费用的比值。 A. 息税前利润 B. 利润总额 C. 净利润 D. 营业收入 正确答案: A:息税前利润; (单选题)当净现值( )0时,该项目不可行。 A. < B. …

leetcode:557. 反转字符串中的单词 III(python3解法)

难度&#xff1a;简单 给定一个字符串 s &#xff0c;你需要反转字符串中每个单词的字符顺序&#xff0c;同时仍保留空格和单词的初始顺序。 示例 1&#xff1a; 输入&#xff1a;s "Lets take LeetCode contest" 输出&#xff1a;"steL ekat edoCteeL tsetnoc…

分布式光纤测温DTS使用的单模光纤与多模光纤有何区别?

分布式光纤测温DTS中使用的单模光纤和多模光纤之间存在着本质区别。单模光纤是一种在光纤通信中应用广泛的光纤类型&#xff0c;几乎所有的光纤入户和主干线通信都采用单模光纤。从通信的角度来看&#xff0c;单模光纤就好比一条单行道的高速铁路&#xff0c;而多模光纤则类似于…

Leetcode - 周赛401

目录 一&#xff0c;3178. 找出 K 秒后拿着球的孩子 二&#xff0c;3179. K 秒后第 N 个元素的值 三&#xff0c;3180. 执行操作可获得的最大总奖励 I 四&#xff0c;3181. 执行操作可获得的最大总奖励 II 一&#xff0c;3178. 找出 K 秒后拿着球的孩子 本题可以直接模拟&a…

新手必读:平面设计自学全攻略

据说平面设计的门槛很低&#xff0c;零基础也很容易上手。但是据我所知许多初学者在自学平面设计时面临以下瓶颈&#xff1a;为什么跟着大神自学平面设计帖子依旧学不会呢&#xff0c;明明报了许多平面设计自学课程&#xff0c;但仍然不会自主设计&#xff0c;初学者到底从哪里…

XMind 2024软件最新版下载及详细安装教程

​人所共知的是XMind 在公司和教育领域都有很广泛的应用&#xff0c;在公司中它能够用来进行会议管理、项目管理、信息管理、计划和XMind 被认为是一种新一代演示软件的模式。也就是说XMind不仅能够绘制思维导图&#xff0c;还能够绘制鱼骨图、二维图、树形图、逻辑图、组织结构…

数字乡村:绘就乡村振兴的智慧新画卷

在乡村振兴战略的宏伟蓝图下&#xff0c;“数字乡村”作为新时代农村现代化的重要抓手&#xff0c;正悄然改变着中国乡村的面貌。本文旨在深度剖析数字乡村建设的核心价值、关键技术、成功案例以及未来展望&#xff0c;为乡村振兴战略提供前瞻性的思考与启示。 数字乡村的核心价…

SAP PI/PO获取文件名及路径

Sender Adapter设置如下&#xff1a; UDF定义如下&#xff1a; DynamicConfiguration conf (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION); //get file name DynamicConfigurationKey keyFile…

什么是Amazon Relational Database Service(Amazon RDS)及实践体验

目录 前言亚马逊云服务免费体验中心三种优惠类型 Amazon RDS什么是Amazon RDS为什么选择 Amazon RDS&#xff1f;Amazon RDS 的优势关键功能详情工作原理Amazon RDSAmazon RDS CustomAmazon RDS on Amazon Outposts 实践创建并连接到 MySQL 数据库实例一、创建 EC2 实例二、创建…

SpringCloudAlibaba组件之间的版本兼容问题

我之前的SpringCloud项目以及使用的组件的版本是这些 但是我不知道具体的版本兼容问题&#xff0c;以及各种组件之间对应的版本 想要使用我们的springcloud和springcloudAlibaba组件&#xff0c;我们就要版本对应&#xff0c;不然就是一堆依赖报错&#xff0c;要不就是缺了这个…