当前位置: 首页 > article >正文

SARIMA-LSTM融合模型对太阳黑子数量预测分析|附智能体数据代码

全文智能体链接:https://tecdat.cn/?p=41969

分析师:Peng Fan

本研究以太阳黑子活动数据为研究对象,旨在帮助客户探索其未来走势并提供预测分析。首先,通过对数据的清洗和处理,包括离群值的识别与处理以及时间序列的建立,确保了数据的质量和可靠性点击文末“阅读原文”获取完整智能体、代码、数据、文档)。

根据发电机模型,研究太阳黑子的规律并揭示了太阳黑子活动数据的特征,太阳的功率谱密度大概为0.09,具有周期性规律具有11年周期规律,再通过季节性分解出真正的趋势和残差。建立SARIMA模型和LSTM模型,通过单位根得到差分一次数据就较为平缓,通过相关参数进行了数据拟合,利用残差序列进行LSTM模型拟合。通过可视化手段展示了预测结果,并结合常见的评价指标如均方根误差和平均绝对误差等对预测性能进行了评估和分析。最终判断SARIMA模型与LSTM模型的融合模型超过SARIMA模型和LSTM模型。

SARIMA-LSTM融合模型相对于单个模型有什么优势和劣势?

智能体:

SARIMA-LSTM融合模型相较于单个模型具有显著的优势。首先,SARIMA模型擅长捕捉时间序列中的线性趋势和季节性特征,而LSTM模型则能够有效处理非线性关系和长期依赖性。通过将两者结合,融合模型能够同时利用SARIMA的线性预测能力和LSTM的非线性处理能力,从而提高预测的准确性和稳定性。例如,在太阳黑子数量预测中,融合模型的均方根误差(RMSE)和平均绝对误差(MAE)均低于单独的SARIMA和LSTM模型,表明其在预测精度上更具优势。

然而,融合模型也存在一些劣势。其复杂性增加,导致训练时间可能较长,并且在模型调参过程中需要同时优化两个模型的参数,增加了调参的难度。此外,融合模型的解释性相对较弱,不如单一模型直观。因此,在选择使用融合模型时,需权衡其优势与劣势。

研究背景与意义

在 2024 年元旦当日,太阳竟然爆发了 X5.0 级强耀斑,进而导致太平洋、大洋洲以及南美多地的短波通信中断将近 1 小时。而此事件恰好在太阳黑子数量峰年的附近,国家空间天气监测预警中心表明,当前太阳活动正处于第 25 周峰值的区间(预计在 2024 - 2025 年达到峰值)。而太阳黑子,它作为太阳活动的核心标志,其数量是直接能反映太阳活跃程度以及耀斑爆发概率的。

黑子数量持续攀升,预示着太阳活动进入高发阶段。太阳活动引发的空间天气事件对航天、导航、通信等领域构成威胁,其辐射可干扰高频通信系统,甚至影响地基技术设备可靠性。

太阳黑子不仅是太阳磁场活动的集中体现,更是预测太阳活动趋势的关键指标。通过研究黑子数的准周期变化,可预判太阳活动周期整体态势,进而为空间天气预警、电离层监测及短波通信保障提供科学依据。随着地球通信系统向高频段升级,太阳活动对技术系统的影响愈发显著。太阳黑子数量预测具有双重价值:既深化对恒星活动规律的认识,又为应对空间环境挑战提供技术支撑[1]。

国内外研究现状

几十年来,研究人员一直在试图预报太阳黑子的出现,并且试图在黑子出现之前能在太阳内部探测到其上浮的过程,从而为更好地预测空间天气服务。

2011年,中美科学家团队在《科学》杂志发表突破性研究成果,首次揭示太阳黑子形成前的深层磁场活动规律。赵俊伟博士团队通过局部日震学方法分析卫星观测数据,发现大型太阳黑子浮现前约两天,太阳内部6万公里深处即出现磁场浮现现象,该磁场以声波形式传播并导致p型声波加速约十秒。进一步研究表明,磁场浮现速度在初始探测后一两天内显著加快,最终形成可见黑子。这项基于SOHO(太阳和日光层观测卫星)/MDI(米歇尔森多普勒成像仪)和SDO(太阳动力学天文台)/HMI(日光磁成像仪)数据的创新研究,不仅建立了太阳活动区浮现的预测方法,为空间天气预报提供关键依据,更深化了对太阳磁场生成机制与黑子形成过程的理解,标志着太阳物理研究的重要进展。随着时间的推移,后面的研究人员深入研究了相关数据[2]。

数据收集

太阳黑子的数据收集是太阳物理研究的重要组成部分,比利时皇家天文台(Royal Observatory of Belgium)是进行太阳黑子观测和数据收集的机构之一。它们公布的国际太阳黑子数据,为科学家们提供了宝贵的研究资源。

本文获取了如下原始数据,该原始数据可以保证准确性、真实性,用于后续模型训练和预测。原始数据如表所示:

表  原始数据表 

在获取数据上,本文读取’SN_y_tot_V2.0.txt’文件,获得5个列,分别是’Year’,‘Mean_total_sunspot_number’,‘Mean_standard_deviation’,‘Observations’,‘Indicator’。

代码如下:

数据清洗

本文需要进行数据审查、缺失值处理、异常值处理以及平稳性处理。从而确保数据的有效性。本文选择将值为 -1 (表示没有可用的数字),和“*”符号表示的临时数据(表示年平均值仍包含临时每日值,天文台后续将会修订)剔除,防止这些数据使模型性能下降。

数据审查

数据审查,全面扫描数据集以发现缺失值、异常值、逻辑矛盾及重复记录等问题。为了扫描数据集,使用head函数进行观察数据前五行,再绘制原始年平均太阳黑子数量图以便观察。根据以上要求构建代码如下:

原始年平均太阳黑子数量图如下:

图 原始年平均太阳黑子数量图

通过观察原始年平均太阳黑子数量,可以发现它带有明显的周期性,所以本文选择在后文通过高级频域分析工具根据发电机模型进行探索周期性。


点击标题查阅往期内容

图片

Python用CNN-LSTM、ARIMA、Prophet股票价格预测的研究与分析|附数据代码

左右滑动查看更多

01

图片

02

图片

03

图片

04

图片

异常值检测

本文选择对异常数据进行处理,由于“*”符号表示年平均值仍包含临时的每日数值,并后续会被天文台修订,所以剔除。对太阳黑子数的年平均标准差为-1和年平均太阳黑子总数的观测次数为-1的无效数据进行剔除。代码如下:

异常值的出现是测量误差、或者真实的、非典型的太阳活动事件造成的。因为异常值会对预测模型的准确性产生显著影响,所以使用离群值替换,提高模型的性能。运行代码得到下图 :

图 :异常值处理后的图像

平稳性处理

因为SARIMA模型要求数据是平稳的,即均值和方差是常数,所以如果太阳黑子数量序列不是平稳的,那么需要进行多次差分运算,直到得到的序列足够平稳。设Z为差分后的序列,差分运算为:

这里∆表示差分操作,反复应用差分运算,直到 Z 达到平稳性。

本文将数据转换为时间序列,进行三次差分得到判断为时间序列是平稳的。本文对数据进行了三次差分以此来检验是否是单位根:

运行代码得到下表  ADF检验表:

表  ADF检验表

这个结果表明在不同的差分阶数下,假设序列都具有单位根,但在1%的显著性水平下,这意味着差分后时间序列是平稳的,拒绝了原假设。一阶差分数据的ADF统计量显著且AIC较低,表明序列在一阶差分后已充分平稳。

周期性探索

针对太阳黑子形成的物理过程和机制,本文采用高级的频域分析工具,如傅里叶变换和功率谱密度估计,以揭示太阳黑子数量时间序列中的季节性成分。

 傅里叶变换

由于本节探索太阳黑子的周期性,所以本文选择了傅里叶变换。傅里叶变换是时间序列分析中常常使用到的一种方法,傅里叶变换将信号分解为不同频率的正弦波和余弦波的叠加,傅里叶变换通过频域分解,将周期性信号的能量集中到特定频率点,形成清晰可辨的谱峰,通过这个原理绘制频谱图。

图  频谱图

观察频谱图可以看出,在0.09的位置频率最高。这说明信号中存在一个主导的周期性成分,其频率对应横轴位置的数值,为了更进一步分析,本文需要通过功率谱密度进一步分析周期性。

功率谱密度

功率谱密度估计:PSD=∣Y(f)∣2。注意在这里Y(f)是通过离散傅里叶变换得到。根据公式得到代码如下:

图  功率谱密度图

同样发现在0.09的位置密度最高。通过分析功率谱密度图,本文可以识别主要周期对应的频率0.09。主要周期的倒数即为太阳黑子数量的周期性变化,可得出太阳黑子数量序列具有11年的周期性变化。

数据分解

在数据分解中,由于基模型SARIMA模型不擅长处理数据的残差序列,LSTM擅长处理非线性残差序列,为了LSTM模型的效果更好需要对数据进行归一化。本文详细针对数据的季节性、残差以及归一化进行处理,以便数据更好的导入模型中,减少预测误差。

模型的设计与实现

本章主要内容讲述了基模型参数的确定、实现以及融合模型的设计实现。

SARIMA模型

因为时间序列数据带有明显的周期性,所以本文选择SARIMA模型最为基础模型,SARIMA模型的参数选择导致了线性预测值的精准性。本文考虑共七个参数:p是自回归项,d是差分次数,q是移动平均项;大写的P、D、Q是对应的季节性部分参数;季节周期s取决于数据的时间间隔[12]。首先需要考虑数据是否平稳,所以需要进行单位根检测。其次需要观察ACF、PACF以及SACF与SPACF图观察获得其余参数。

通过代码绘制图 :自相关图(ACF)和非自相关图(PACF)图:

图  自相关图(ACF)和非自相关图(PACF)图

观察上图可以发现,ACF在lag=1后突然截尾,可以判断q=1。PACF在lag=2后截尾,可以判断p=2。这为模型定阶提供了重要依据。

SARIMA模型的实现

通过上面步骤从而确定了七个参数,导入模型数据完成模型的实现。

LSTM神经网络

LSTM模型能够更好的处理非线性序列,所以本研究选择LSTM神经网络作为基模型[13]。通过处理残差序列得到非线性预测值,与上文的SARIMA模型线性预测值进行加和,从而得到融合模型预测值。

图LSTM损失函数

通过上图的发现两条曲线都从左上角开始下降,这意味着在训练的初期,模型的损失值较高,性能较差。之后,两条曲线都开始下降,并趋近于0点,这表明模型正在逐渐收敛,性能在不断提高。当损失值稳定在一个较低水平时,可以认为模型已经收敛并达到了最佳性能。从图中可以看出,训练损失和验证损失的曲线走势大致相同,这表明模型在训练集和验证集上的性能表现是一致的,说明模型没有出现过拟合或欠拟合的情况。根据学习曲线本研究可以将训练次数设定为40次,此时损失值稳定在一个较低水平同时保证了训练时间短。

融合模型的设计

融合模型是通过结合多个基模型预测结果来提升整体预测性能的机器学习范式,在本研究中,基模型为SARIMA模型与LSTM模型,它们分别具备良好的处理数据中线性和季节性成分的性能与处理非线性或复杂成分的性能,在众多方向发展已经有研究。图4-7融合模型示意图[14]。

图 融合模型流程图

该流程图系统描述了太阳黑子数量序列的预测分析流程:首先进行数据稳定性检验,若序列非平稳,进行多次差分直到序列平稳,SARIMA侧重捕捉周期性特征,于是提取季节性与趋势数据对SARIMA进行参数优化与模型构建,得到SARIMA模型结果,与真实值的差值为残差序列。SLTM补充局部趋势分析,于是通过残差序列对SLTM模型进行参数优化与模型构建。最后将两模型的预测结果进行加和整合,平衡季节性与非线性动态特征,从而提升太阳黑子数量预测的鲁棒性与准确性。

可视化与模型比较

可视化,可以让读者高效地获取和理解数据,从而更快地做出决策。同时,可视化降低数据的复杂性和抽象性,能够轻松地访问和理解数据,从而更准确地做出决策。模型比较更容易展示模型的性能,体现融合模型的优势。

图 SARIMA模型的预测值与实际值对比

就图中而言,蓝色的实际曲线以及橙色的预测曲线,皆显现出明显的以 11 年为周期的波动特征(太阳活动周期),由此表明 SARIMA 模型成功将太阳黑子活动的周期性规律予以捕捉。值得一提的是,在 1830 - 1910 年这一期间,预测曲线与实际曲线的波峰波谷位置达成了高度的吻合。并且,预测曲线能够较为良好地跟随着实际数据的长期趋势,在 1870 - 1970 年的上升期以及 1970 - 2010 年的下降期中,该模型都可以有效地对整体变化趋势进行追踪。然而,在部分周期当中(在 1890 - 1930 年期间),预测曲线的波峰/波谷的出现时间相较于实际曲线滞后了大约 1 - 2 年,这意味着模型对于周期转换的敏感度存在不足。

图 LSTM模型的预测值与实际值对比

本文为了增强LSTM神经网络模型的泛化性能并有效规避过拟合风险,将残差序列按8:2的比例划分为训练子集和测试子集。在模型构建阶段,本文仅利用训练子集进行,获得绿色拟合曲线;在模型验证阶段,则完全基于测试子集,获得红色预测曲线。图中绿色拟合曲线与蓝色实际曲线在训练区间几乎重合,表明LSTM模型具备强大的非线性映射能力,能精准捕捉太阳黑子数复杂的变化模式;红色预测曲线中呈现以下特征,预测波峰高度比实际值低约30%,波谷深度浅约15%。

图 融合模型对太阳黑子的未来十年预测

通过上图,本文发现,预测曲线(绿色)与实测数据(蓝色)在波动形态上高度吻合,表明模型成功捕捉到了太阳活动约11年的周期,峰值可能出现在2025年前后,模型可以捕捉到太阳活动从活跃期向弱活动期的过渡特征。

模型比较

在模型比较中常常使用RMSE、MAE、R² Score、MAPE和RMSE指标来综合评价模型效果[15]。通过计算不同模型的性能指标,将数据进行汇总得到下表5-1不同模型的不同指标评价表:

表不同模型的不同指标评价表

SARIMA模型的MSE为2303.0697,LSTM模型为1153.7147,而融合模型仅为1009.0631,这意味着融合模型的预测值与实际值之间的差异最小,其预测准确性高于其它两个模型。

SARIMA模型的MAE为38.4829,LSTM模型为27.9787,而融合模型则为25.3542,这意味着融合模型的预测值与实际值之间的平均绝对误差最小,其预测准确性远高于其它两个模型。

SARIMA模型的R² Score为0.431176,LSTM模型为0.695990,而融合模型高达0.753682,这表明融合模型能够更好地解释数据中的变动,其预测能力更强。

SARIMA模型的MAPE高达208.288954%。LSTM模型的MAPE为166.673803%,而融合模型仅为87.621468%。这进一步证实了融合模型在预测准确性上的优势。

SARIMA模型的RMSE为47.990308,LSTM模型为33.966376,而融合模型为31.774074,融合模型的RMSE远低于其它两个模型,其预测的准确性远高于其它两个模型。

指标雷达图:

图 指标雷达图

综上所述,融合模型的预测值与实际值之间的差异最小,其预测准确性远高于其它两个模型,能够更好地解释数据中的变动,其预测能力更强。

结束语

本文针对太阳黑子数量的物理原理,使用傅里叶变换和功率谱密度估计:傅里叶变换用于将时域信号转换到频域,功率谱密度(PSD)估计提供了信号在频率域上的能量分布。得到太阳周期系数为11年,捕捉到时间序列数据季节性。本文将SARIMA模型与LSTM神经网络进行融合。融合模型具有SARIMA模型的时间序列预测的能力,适用于具有明显季节性的太阳黑子数量序列数据;同时具有LSTM模型解决长期依赖问题的性能,也适用于经过SARIMA模型处理后的太阳黑子数量序列的数据,从而大大提高了模型的各项指标,更好的预测太阳黑子的数量。

参考文献

  1. 乐贵明.日地空间天气强关联事件[M].北京市:气象出版社:202006.93.

  2. 邓元勇, 周桂萍, 代树武, 等. 太阳极轨天文台[J]. 科学通报, 2023, 68(4): 298-308.

  3. 方巍.Python数据挖掘与机器学习实战[M].北京市:机械工业出版社:202303.593.

  4. 安小米.大数据治理前沿[M].北京市:中国人民大学出版社:202310.285.

  5. 汪静,郑婷婷.Python数据预处理[M].北京市:人民邮电出版社:202303.189.

  6. 李富羽. 新黑子数的活动周特征分析[D]:[博士论文]. 中国科学院大学,2019.

  7. 郭佳俊.季节性时间序列调整与预测研究[D]:[硕士论文].陕西省:西北农林科技大学,2023.

关于分析师

在此对Peng Fan对本文所作的贡献表示诚挚感谢,他完成了数据科学与大数据技术专业的学位,专注深度学习、数理金融领域。擅长Python 。

本文中分析的完整智能体、数据、代码、文档分享到会员群,扫描下面二维码即可加群! 


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

点击文末“阅读原文”

获取完整智能体、

代码、数据、文档。

本文选自《SARIMA-LSTM融合模型对太阳黑子数量预测分析|附智能体数据代码》。

点击标题查阅往期内容

【视频讲解】线性时间序列原理及混合ARIMA-LSTM神经网络模型预测股票收盘价研究实例

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

Python用CNN+LSTM+Attention对新闻文本分类、锂离子电池健康、寿命数据预测

视频:Python深度学习量化交易策略、股价预测:LSTM、GRU深度门控循环神经网络|附代码数据

【视频讲解】Python用LSTM长短期记忆网络GARCH对SPX指数金融时间序列波动率滚动预测

【视频讲解】Python用LSTM、Wavenet神经网络、LightGBM预测股价|数据分享

Python股票预测:注意力多层Attention RNN LSTM应用

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

结合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络时间序列分析

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

用PyTorch机器学习神经网络分类预测银行客户流失模型

PYTHON用LSTM长短期记忆神经网络的参数优化方法预测时间序列洗发水销售数据

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告

R语言深度学习:用keras神经网络回归模型预测时间序列数据

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型

【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

相关文章:

SARIMA-LSTM融合模型对太阳黑子数量预测分析|附智能体数据代码

全文智能体链接:https://tecdat.cn/?p41969 分析师:Peng Fan 本研究以太阳黑子活动数据为研究对象,旨在帮助客户探索其未来走势并提供预测分析。首先,通过对数据的清洗和处理,包括离群值的识别与处理以及时间序列的建…...

C# WinForm DataGridView 非常频繁地更新或重新绘制慢问题及解决

非常频繁地更新 DataGridView问题描述: 在 C# 中无法在合理的时间内刷新我的 DataGridView ,我每秒通过网络发送 20 个数据包,获取数据。我想解析这些数据并将其放入 DataGridView 中。我还想调整 DataGridView 的更新间隔,从 0.1…...

【数据结构】红黑树(C++)

目录 一、红黑树的概念 二、红黑树的性质 三、红黑树结点定义 四、红黑树的操作 1. 插入操作 1.1 插入过程 1.2 调整过程 1.2.1 叔叔节点存在且为红色 1.2.2 叔叔节点存在且为黑色 1.2.3 叔叔节点不存在 2. 查找操作 2.1 查找逻辑 2.2 算法流程图 2.3 使用示例 …...

验证码与登录过程逻辑学习总结

目录 前言 一、验证码与登录 二、使用步骤 1.先apipost测试一波 2.先搞验证码 3.跨域问题 4.后端走起 总结 前言 近期要做一个比较完整的demo,需要自己做一个前端登录页面,不过api接口都是现成的,一开始以为过程会很easy,…...

Android Framework学习五:APP启动过程原理及速度优化

文章目录 APP启动优化概述APP启动流程点击图片启动APP的过程启动触发Zygote 与应用进程创建Zygote进程的创建应用进程初始化 ApplicationActivity 启动与显示 优化启动时黑白屏现象可优化的阶段Application阶段相关优化 Activity阶段数据加载阶段 Framework学习系列文章 APP启动…...

Meta的AIGC视频生成模型——Emu Video

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。 🌺优质专栏回顾&am…...

Axure难点解决分享:统计分析页面引入Echarts示例动态效果

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:统计分析页面引入Echarts示例动态效果 主要内容:echart示例引入、大小调整、数据导入 应用场景:统计分析页面…...

Docker 常见问题及其解决方案

一、安装与启动问题 1.1 安装失败 在不同操作系统上安装 Docker 时,可能会出现安装失败的情况。例如,在 Ubuntu 系统中,执行安装命令后提示依赖缺失。这通常是因为软件源配置不正确或系统缺少必要的依赖包。 解决方案: 确保系统…...

后端开发面试高频50个问题,简单解答

以下是后端开发面试中常见的50个高频问题及其详细解答,涵盖了语言基础、数据库、网络、操作系统、设计模式等多个方面: 编程语言基础 Java 中的 final 关键字有什么作用? final 可以修饰类、方法和变量。修饰类时,类不能被继承&am…...

IC解析之TPS92682-Q1(汽车LED灯控制IC)

目录 1 IC特性介绍2 主要参数3 接口定义4 工作原理分析TPS92682-Q1架构工作模式典型应用通讯协议 控制帧应答帧协议5 总结 1 IC特性介绍 TPS92682 - Q1 是德州仪器(TI)推出的一款双通道恒压横流控制器,同时还具有各种电器故障保护&#xff0c…...

6.01 Python中打开usb相机并进行显示

本案例介绍如何打开USB相机并每隔100ms进行刷新的代码,效果如下: 一、主要思路: 1. 打开视频流、读取帧 self.cam_cap = cv2.VideoCapture(0) #打开 视频流 cam_ret, cam_frame = self.cam_cap.read() //读取帧。 2.使用定时器,每隔100ms读取帧 3.显示到Qt的QLabel…...

2023华为od统一考试B卷【二叉树中序遍历】

前言 博主刷的华为机考题,代码仅供参考,因为没有后台数据,可能有没考虑到的情况 如果感觉对你有帮助,请点点关注点点赞吧,谢谢你! 题目描述 思路 0.用Character数组存储树,index下标的左右…...

计算机网络:计算机之间的数据传输为什么要以时钟频率同步为基础?

以太网信息同步需要保障时钟同步的主要原因包括以下几点: 1. 确保数据的准确采样与解析 比特级同步:以太网数据传输以连续的比特流形式进行,接收端需在精确的时间点对信号采样。若发送端与接收端时钟不同步,采样时机偏移会导致误…...

在Spark搭建YARN

(一)什么是SparkONYarn模式 Spark on YARN(Yet Another Resource Negotiator)是 Spark 框架在 Hadoop 集群中运行的一种部署模式,它借助 Hadoop YARN 来管理资源和调度任务。 架构组成 ResourceManager:作…...

LeetCode_sql刷题(3482.分析组织层级)

题目描述:3482. 分析组织层级 - 力扣(LeetCode) 表:Employees ------------------------- | Column Name | Type | ------------------------- | employee_id | int | | employee_name | varchar | | manager_id …...

Python 之 selenium 打开浏览器指定端口进行接续操作

一般使用 selenium 进行数据爬取时,常用处理流程是让 selenium 从打开浏览器开始,完成全流程的所有操作。但是有时候,我们希望用户先自己打开浏览器进入指定网页,完成登录认证等一系列操作之后(比如用户、密码、短信验…...

MySQL Explain 中 Type 与 Extra 字段详解

引言 在数据库性能调优过程中,理解执行计划(EXPLAIN)的输出信息至关重要。MySQL 的 EXPLAIN 命令能够帮助开发者分析查询的执行路径和效率,其中 Type 和 Extra 字段提供了关键的执行细节。Type 字段表示访问类型,反映…...

不用服务器转码,Web端如何播放RTSP视频流?

在物联网、智慧城市、工业互联网等新兴技术浪潮下,实时视频流(如RTSP协议)作为安防监控、生产巡检、远程协作等场景的核心数据载体,其价值愈发凸显。然而,一个长期困扰行业的痛点始终存在——‌如何在Web浏览器中直接播…...

如何开发一款 Chrome 浏览器插件

Chrome是由谷歌开发的网页浏览器,基于开源软件(包括WebKit和Mozilla)开发,任何人都可以根据自己需要使用、修改或增强它的功能。Chrome凭借着其优秀的性能、出色的兼容性以及丰富的扩展程序,赢得了广大用户的信任。市场…...

GitHub打开缓慢甚至失败的解决办法

在C:\Windows\System32\drivers\etc的hosts中增加如下内容: 20.205.243.166 github.com 199.59.149.236 github.global.ssl.fastly.net185.199.109.153 http://assets-cdn.github.com 185.199.108.153 http://assets-cdn.github.com 185.199.110.153 http://asset…...

18前端项目----Vue项目收尾优化|重要知识

收尾/知识点汇总 项目收尾二级路由未登录全局路由守卫路由独享守卫图片懒加载路由懒加载打包上线 重要知识点汇总组件通信方式1. props2. 自定义事件3. 全局事件总线4. 订阅与发布pubsub5. Vuex6. 插槽 sync修饰符attrs和listeners属性children和parent属性mixin混入作用域插槽…...

仿RabbitMQ 模拟实现消息队列

文章目录 项目项目介绍开发环境技术选型 开始项目前第三方框架内容介绍muduo搭建服务端,客户端服务端:客户端:makefile muduo库protobuf通信服务端:客户端 sqlitegtest线程池future 认识,async使用promis使用package_t…...

基于Qt的app开发第八天

写在前面 笔者是一个大一下计科生,本学期的课程设计自命题完成一个督促学生自律的打卡软件,目前已经完成了待办和打卡部分功能,本篇要完成规划板块不需要存储就能实现的功能 需求分析 这一板块内容相比前两个板块还有一些特殊,因…...

Springboot之类路径扫描

SpringBoot框架中默认提供的扫描类为&#xff1a;ClassPathBeanDefinitionScanner。 webFlux框架中借助RepositoryComponentProvider扫描符合条件的Repository。 public class ClassPathScanningCandidateComponentProvider{private final List<TypeFilter> includeFilt…...

PNG图片转icon图标Python脚本(简易版) - 随笔

摘要 在网站开发或应用程序设计中&#xff0c;常需将高品质PNG图像转换为ICO格式图标。本文提供一份高效Python解决方案&#xff0c;利用Pillow库实现透明背景完美保留的格式转换。 源码示例 from PIL import Imagedef convert_png_to_ico(png_path, ico_path, size):"…...

数据分析-图2-图像对象设置参数与子图

from matplotlib import pyplot as mp mp.figure(A figure,facecolorgray) mp.plot([0,1],[1,2]) mp.figure(B figure,facecolorlightgray) mp.plot([1,2],[2,1]) #如果figure中标题已创建&#xff0c;则不会新建窗口&#xff0c; #而是将旧窗口设置为当前窗口 mp.figure(A fig…...

查询公网IP地址的方法:查看自己是不是公网ip,附内网穿透外网域名访问方案

本地搭建服务并提供互联网连接时&#xff0c;较为传统的方法是使用公网IP地址。因此&#xff0c;如何查询本地自己是不是公网IP&#xff0c;是必须要掌握的一种技巧。当面对确实无公网IP时&#xff0c;则可以通过内网穿透方案&#xff0c;如nat123网络映射工具&#xff0c;将本…...

MVCC:数据库并发控制的利器

在并发环境下&#xff0c;数据库需要处理多个事务同时访问和修改数据的情况。为了保证数据的一致性和隔离性&#xff0c;数据库需要采用一些并发控制机制。MVCC (Multi-Version Concurrency Control&#xff0c;多版本并发控制) 就是一种常用的并发控制技术&#xff0c;它通过维…...

Redis学习打卡-Day1-SpringDataRedis、有状态无状态

Redis的Java客户端 Jedis 以 Redis 命令作为方法名称&#xff0c;学习成本低&#xff0c;简单实用。Jedis 是线程不安全的&#xff0c;并且频繁的创建和销毁连接会有性能损耗&#xff0c;因此推荐使用 Jedis 连接池代替Jedis的直连方式。 lettuce Lettuce是基于Netty实现的&am…...

【行为型之访问者模式】游戏开发实战——Unity灵活数据操作与跨系统交互的架构秘诀

文章目录 &#x1f9f3; 访问者模式&#xff08;Visitor Pattern&#xff09;深度解析一、模式本质与核心价值二、经典UML结构三、Unity实战代码&#xff08;游戏物品系统&#xff09;1. 定义元素与访问者接口2. 实现具体元素类3. 实现具体访问者4. 对象结构管理5. 客户端使用 …...