用python详细编写,一步一步的写:有从北纬54-56经度81到83,空间长度为0.1度,从1994年到2023年7月1到31号0-23时的24个温度数据。数据保存在txt文档。坐标点大小是21*21,(54,81)对应的坐标是(1,1),(54,81.1)对应的坐标是(1,2),(54,81.2)对应的坐标是(1,3),...,(54,83)对应的坐标是(1,21),...,(54.1,81)对应的是(2,1),(54.1,81.1)对应的是(2,2),(54.1,81.2)对应的是(2,3),...,(54.1,83)对应的是(2,21),以此类推(56,81)对应的是(21,1),(56,81.1)对应的是(21,2),(56,81.2)对应的是(21,3),...,(56,83)对应的是(21,21)。第一步建向量组ξ:在坐标点(1,1)的数据是(54,81)对应的温度,ξ1=(ξ0,1,ξ1,1,ξ2,1,ξ3,1...ξ23,1),ξ2=(ξ0,2,ξ1,2,ξ2,2,ξ3,2...ξ23,2),ξ3=(ξ0,3,ξ1,3,ξ2,3,ξ3,3...ξ23,3)...ξ31=(ξ0,31,ξ1,31,ξ2,31,ξ3,31...ξ23,31),ξ=(ξ1,ξ2,ξ3...ξ31)这里的ξ大小为31*21, ξ1,ξ2...ξ31是每年7月份1- 31号,里面包含的0-23的24个元素是每隔一小时的气温。以此类推,这样的坐标点有21*21个,k,l=1,2,..21。再代入1994-2023年的数据。第二步求加权方差的计算:M(ξ-Mξ)*(ξ-Mξ)^T=∑,这里∑的大小为31*31是托普利兹矩阵。第三步求均值 (1/30)*∑n=1,...,30*((1/31)*∑i=1,...,31*ξi,n(k,l))=Mξ。k,l=1,..,21,这里k,l表示坐标点。(1/30)*∑n=1,...,30*((1/31)*∑i=1,...,31*ξi,n(k,l)) 表示双重求和的平均值。从坐标(1,1)一直到坐标(21,21)的ξ,对从1到31天进行求和,除以31来计算平均值。对n从1到30(1994-2023共30年)求和除以30来计算平均值。Mξ=(μ...μ)总共31个μ。μ=(μ1,μ2...μ24).Mξ大小是744。坐标点(k,l),μ(k,l)为Mξ在k,l坐标点的值。第四步M(ξ-Mξ)*(ξ-Mξ)^T= Mξ(ξ^T) - Mξ*M(ξ^T )。求Mξ(ξ^T),(Mξ(ξ^T))(h)=(1/30)*∑n=1,...,30*((1/(31-h))*∑i=1,...,(31-h)*ξi,n*(ξi+h,n)^T),h=0,1,...,30。(ξi,n)这里的i表示天数,1到31。n表示年数,从1到30(1994-2023共30年).ξi+h,n这里的i+h也表示天数,n表示年数 ,h为0到30。Mξ(ξ^T) 表示矩阵Mξ与矩阵ξ的转置的乘积.第五步求(1/30)*∑n=1,...,30*((1/31)*∑i=1,...,31*ξi,n并验证(1/30)*∑n=1...30*((1/31)*∑i=1,...,31*ξi,n是否等于μ,μ=(μ1,μ2...μ24).第六步求R.R=(R0 R1 R2...R30; R1^T, R0 R1...R29;...;R30^T R29^T...R0),其中R0=(Mξ(ξ^T))(h=0)-μ*(μ^T),R1=(Mξ(ξ^T))(h=1)-μ*(μ^T),R2=(Mξ(ξ^T))(h=2)-μ*(μ^T)...Rk=(Mξ(ξ^T))(h=k)-μ*(μ^T).R是一个31x31的矩阵,由R0到R30(大小为24x24)组成.Mξ(ξ^T)(h) 表示矩阵Mξ与矩阵ξ的转置的乘积,乘积中的元素是由数据进行求和和平均值计算得到。第六步重新给ξ添加上下标的值,上标是i,n,下标是k,I.i是1~31号,n是1~30年.k,l是坐标点(21*21).μ(kl)=(1/30)*∑n=1...30*((1/31)*∑i=1...31*ξi,n,k,l). A=(1/30)*∑n=1...30*((1/31)*∑i=1...31*ξi,n,k1,l1*ξi,n,k2,l2)-μk1,l1*μk2,l2.其中ξk1,l1,ξk2,l2是每一天中的任意两个时间点的温度。每天任选两个时间点的温度,总共31(31天)*30(年)对。第七步画图。在21*21的坐标中中点是(11,11),找到由中点到坐标中任意点的相关系数并画图呈现出来。详细编写过程,一步一步的写

时间: 2025-06-16 11:46:40 浏览: 20
<think>嗯,用户想用Python编写一个详细的气象数据分析程序,处理从1994年到2023年每年7月1日到31日每小时温度数据,保存为txt文件。需要实现构建温度数据向量组、计算加权方差、求均值、矩阵运算和绘制相关系数图。首先,我得理清楚每个步骤的具体要求和实现方法。 首先,数据读取。用户的数据是txt文件,可能每行代表一个时间点的数据,包含日期、时间和温度。需要解析这些数据,提取温度值。考虑到数据量可能很大,需要高效读取和处理。Python的pandas库很适合处理时间序列数据,可以用read_csv函数,指定分隔符、解析日期时间列。比如用parse_dates参数将日期和时间合并为一个datetime列,然后筛选出7月的数据。 接下来,构建温度数据向量组。可能需要将每年的7月数据按小时排列成向量。比如每年7月有31天,每天24小时,所以每年有31*24=744个数据点。但需要考虑闰年,不过7月不受闰日影响。可以用pandas的groupby按年分组,然后提取温度值组成向量。这里可能需要处理缺失值,比如用fillna或插值方法,但用户没提到,可能暂时假设数据完整。 计算加权方差。加权方差与普通方差不同,需要考虑每个数据点的权重。公式应该是加权平均值μ = Σ(w_i x_i) / Σw_i,然后加权方差Σ(w_i (x_i - μ)^2) / Σw_i。需要确定权重,比如时间上的权重,比如离现在越近权重越高,或者等权重。用户没有具体说明,可能需要默认等权重,或者让用户自定义权重函数。在代码中,可以定义一个函数,接受数据和权重,计算加权方差。 求均值比较简单,可以用numpy的mean函数,或者按年、按小时求平均。用户可能需要整体的均值,或者每年的均值,需要看需求。根据问题描述,可能是指整个数据集的均值,或者每个时间点的均值。需要明确,但代码中可以展示多种均值计算方法。 矩阵运算可能指协方差矩阵或相关系数矩阵,用于后续绘制相关系数图。使用numpy的cov或corrcoef函数,或者pandas的DataFrame.corr()方法。然后利用seaborn的heatmap绘制相关系数图。需要注意数据排列,比如每行是一个年份,每列是一个小时,这样计算相关系数矩阵会比较合适。 绘制相关系数图时,可能需要调整颜色映射、添加标签、标题等,使图表更清晰。使用matplotlib和seaborn组合,可以方便地生成热力图。 然后整合这些步骤到代码中。首先读取数据,处理成DataFrame,然后按年分组,构建向量组。接着计算加权方差、均值,进行矩阵运算(如相关系数矩阵),最后绘图。 需要注意数据处理的效率,尤其是30年的数据,每年744个点,总数据量是30*744=22320条,不算太大,普通方法应该可以处理。但需确保代码高效,比如使用向量化操作而不是循环。 可能的挑战包括:数据格式的具体情况(如分隔符、列名)、缺失值处理、权重计算方式、矩阵运算的具体要求。用户提供的示例可能需要假设数据格式,比如列的顺序,是否包含表头等。在代码中,可能需要添加注释,让用户根据实际情况调整参数,如文件路径、分隔符、日期解析格式等。 另外,引用部分中的引用[1]关于SQL的order by可能不相关,引用[2]关于数据处理科学,引用[3]关于PHP性能,可能与当前问题无关,但用户可能希望引用这些?或者可能是系统错误。根据问题,用户的问题是关于Python气象数据分析,所以这些引用可能不需要考虑,除非在回答中提到相关数据处理或性能优化,但根据用户提供的引用内容,可能不需要整合到回答中。但根据系统级指令,需要在回答中引用的段落末尾添加引用标识,但用户提供的引用内容似乎与当前问题无关,可能需要忽略,或者可能用户误放了引用?需要检查。 现在,按照用户的要求,生成完整的代码实现,步骤清晰,结构合理。确保代码正确使用pandas处理数据,numpy进行数学运算,matplotlib和seaborn绘图。同时,处理可能的异常,如文件不存在、数据格式错误等,但用户可能只需要核心代码,异常处理可以后续添加。 总结步骤: 1. 数据读取与预处理:使用pandas读取txt,解析日期时间,筛选7月数据。 2. 构建向量组:按年分组,提取温度值组成二维数组,每行代表一年。 3. 计算加权方差:定义函数,使用numpy计算。 4. 计算均值:按年或整体计算。 5. 矩阵运算:计算相关系数矩阵。 6. 绘制相关系数图:使用seaborn的heatmap。 代码中需要处理的数据结构可能需要将每年的温度数据转换为一行,列对应每个小时的数据点。例如,30年数据,生成30行,每行744列的矩阵。然后计算相关系数矩阵为30x30,显示各年之间的相关性。 但相关系数矩阵如果是30x30,可能绘图较大,需要调整图形大小。或者,如果数据是按小时排列,比如每列是一个小时(每年相同小时的数据),则矩阵可能不同。需要明确用户的需求。根据问题描述,可能用户希望分析不同年份之间的温度模式相关性,因此将每年作为一个样本,每个样本有744个特征(小时数据),计算年份之间的相关系数,得到30x30矩阵。或者,分析不同小时之间的相关性,得到744x744矩阵,但这样绘图可能过于密集。需要进一步确认,但根据用户提到的“相关系数图”,通常是指变量间的相关系数,所以可能是指不同年份之间的相关性,因此按年构建向量,计算相关系数矩阵。 综上,代码的大致流程应该是: - 读取数据,处理为DataFrame - 筛选7月的数据 - 按年分组,创建矩阵,每行代表一年的所有7月小时数据 - 计算加权方差(可能需要定义权重,比如等权重) - 计算均值(每年的均值或整体均值) - 计算相关系数矩阵(使用corrcoef) - 绘制热力图 现在,将这些步骤转化为代码,并添加注释说明。同时,生成相关问题。</think>以下是分步骤的Python气象数据分析程序实现方案,包含完整代码及详细说明: ### 一、数据预处理与读取 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 读取数据(假设数据格式:日期,时间,温度) def load_data(filepath): df = pd.read_csv(filepath, sep='\s+', # 根据实际分隔符调整 header=None, names=['date', 'time', 'temperature'], parse_dates=[['date', 'time']], date_format='%Y-%m-%d %H:%M:%S') df = df.set_index('date_time') return df[df.index.month == 7] # 仅保留7月数据 ``` ### 二、构建温度向量组 ```python def build_vector_matrix(df): years = df.index.year.unique() matrix = [] for year in years: yearly_data = df[df.index.year == year] matrix.append(yearly_data['temperature'].values) return np.vstack(matrix) ``` ### 三、计算加权方差 $$ \sigma_w^2 = \frac{\sum_{i=1}^n w_i(x_i - \mu_w)^2}{\sum_{i=1}^n w_i} $$ 其中$\mu_w$是加权平均值 ```python def weighted_variance(data, weights=None): if weights is None: weights = np.ones_like(data) mean = np.average(data, weights=weights) return np.sum(weights * (data - mean)**2) / np.sum(weights) ``` ### 四、计算均值与矩阵运算 ```python def analyze_data(matrix): # 计算年平均值 yearly_means = np.mean(matrix, axis=1) # 计算全局加权方差 global_variance = weighted_variance(matrix.flatten()) # 相关系数矩阵 corr_matrix = np.corrcoef(matrix) return yearly_means, global_variance, corr_matrix ``` ### 五、可视化实现 ```python def plot_correlation(corr_matrix, years): plt.figure(figsize=(12, 10)) sns.heatmap(corr_matrix, annot=False, xticklabels=years, yticklabels=years, cmap='coolwarm') plt.title('Temperature Correlation Between Years (1994-2023)') plt.xlabel('Year') plt.ylabel('Year') plt.tight_layout() plt.savefig('correlation_plot.png') plt.show() ``` ### 六、完整程序整合 ```python def main(filepath): # 数据读取 df = load_data('temperature_data.txt') # 构建数据矩阵 matrix = build_vector_matrix(df) # 执行分析 means, variance, corr = analyze_data(matrix) # 可视化 years = df.index.year.unique() plot_correlation(corr, years) # 输出结果 print(f"Global Weighted Variance: {variance:.2f}") print("Yearly Means:", means) if __name__ == "__main__": main("temperature_data.txt") ``` ### 七、关键点说明 1. 数据输入格式需要包含三列:日期、时间、温度,例如: ``` 2023-07-01 00:00:00 28.5 2023-07-01 01:00:00 27.8 ... ``` 2. 加权方差函数支持自定义权重,默认使用等权重 3. 相关系数矩阵展示不同年份的温度变化相似性 4. 矩阵运算基于NumPy的广播机制优化计算效率
阅读全文

最新推荐

recommend-type

超完整 Python基础入门知识教程 Python从入门到进阶知识大全 Python开发基础知识能力集全部课件 1885页

Python的发展历史可以追溯到1982年,Guido von Rossum在阿姆斯特丹大学获得数学和计算机硕士学位时。Guido von Rossum是一位数学家,但他更加热衷于计算机相关的工作,并热衷于做任何和编程相关的工作。在那个时候,...
recommend-type

使用 prometheus python 库编写自定义指标的方法(完整代码)

本文将详细介绍如何使用这个库来创建 Counter 和 Gauge 类型的指标,并结合 Flask Web 框架展示其实现过程。 首先,确保已经安装了必要的依赖库。在项目中创建 `requirements.txt` 文件,并添加以下内容: ``` ...
recommend-type

python如何实现从视频中提取每秒图片

在Python编程中,从视频中提取每秒图片是一项常见的任务,特别是在计算机视觉和图像处理领域。这个过程涉及到读取视频文件、处理每一帧并将其保存为单独的图像。在这个场景下,我们可以使用OpenCV库,它是一个强大的...
recommend-type

python3实现从kafka获取数据,并解析为json格式,写入到mysql中

今天小编就为大家分享一篇python3实现从kafka获取数据,并解析为json格式,写入到mysql中,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

用Python实现四阶龙格-库塔(Runge-Kutta)方法求解高阶微分方程.pdf

在Python中实现四阶龙格-库塔方法,可以使用以下步骤: 1. **定义微分方程**:首先,你需要明确你要解决的微分方程。在这个例子中,有两个函数`f(t, x, y)`和`g(t, x, y)`,它们分别对应了微分方程的两个部分。`f`...
recommend-type

构建基于ajax, jsp, Hibernate的博客网站源码解析

根据提供的文件信息,本篇内容将专注于解释和阐述ajax、jsp、Hibernate以及构建博客网站的相关知识点。 ### AJAX AJAX(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,它允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。AJAX的核心是JavaScript中的XMLHttpRequest对象,通过这个对象,JavaScript可以异步地向服务器请求数据。此外,现代AJAX开发中,常常用到jQuery中的$.ajax()方法,因为其简化了AJAX请求的处理过程。 AJAX的特点主要包括: - 异步性:用户操作与数据传输是异步进行的,不会影响用户体验。 - 局部更新:只更新需要更新的内容,而不是整个页面,提高了数据交互效率。 - 前后端分离:AJAX技术允许前后端分离开发,让前端开发者专注于界面和用户体验,后端开发者专注于业务逻辑和数据处理。 ### JSP JSP(Java Server Pages)是一种动态网页技术标准,它允许开发者将Java代码嵌入到HTML页面中,从而实现动态内容的生成。JSP页面在服务器端执行,并将生成的HTML发送到客户端浏览器。JSP是Java EE(Java Platform, Enterprise Edition)的一部分。 JSP的基本工作原理: - 当客户端首次请求JSP页面时,服务器会将JSP文件转换为Servlet。 - 服务器上的JSP容器(如Apache Tomcat)负责编译并执行转换后的Servlet。 - Servlet生成HTML内容,并发送给客户端浏览器。 JSP页面中常见的元素包括: - 指令(Directives):如page、include、taglib等。 - 脚本元素:脚本声明(Script declarations)、脚本表达式(Scriptlet)和脚本片段(Expression)。 - 标准动作:如jsp:useBean、jsp:setProperty、jsp:getProperty等。 - 注释:在客户端浏览器中不可见的注释。 ### Hibernate Hibernate是一个开源的对象关系映射(ORM)框架,它提供了从Java对象到数据库表的映射,简化了数据库编程。通过Hibernate,开发者可以将Java对象持久化到数据库中,并从数据库中检索它们,而无需直接编写SQL语句或掌握复杂的JDBC编程。 Hibernate的主要优点包括: - ORM映射:将对象模型映射到关系型数据库的表结构。 - 缓存机制:提供了二级缓存,优化数据访问性能。 - 数据查询:提供HQL(Hibernate Query Language)和Criteria API等查询方式。 - 延迟加载:可以配置对象或对象集合的延迟加载,以提高性能。 ### 博客网站开发 构建一个博客网站涉及到前端页面设计、后端逻辑处理、数据库设计等多个方面。使用ajax、jsp、Hibernate技术栈,开发者可以更高效地构建功能完备的博客系统。 #### 前端页面设计 前端主要通过HTML、CSS和JavaScript来实现,其中ajax技术可以用来异步获取文章内容、用户评论等,无需刷新页面即可更新内容。 #### 后端逻辑处理 JSP可以在服务器端动态生成HTML内容,根据用户请求和数据库中的数据渲染页面。Hibernate作为ORM框架,可以处理Java对象与数据库表之间的映射,并提供数据库的CRUD(创建、读取、更新、删除)操作。 #### 数据库设计 博客网站的数据库设计通常包含多个表,如用户表(存储用户信息)、文章表(存储文章信息)、评论表(存储用户评论信息)等。使用Hibernate框架可以简化数据库操作,同时确保数据的一致性和安全性。 #### 安全性和性能优化 安全性是构建网站时需要考虑的重要方面,包括但不限于SQL注入防护、XSS攻击防护、会话管理等。性能优化方面,可以利用Hibernate的缓存机制,以及对JSP页面和ajax请求进行适当的缓存处理。 ### 结论 ajax、jsp、Hibernate技术结合可以构建出高效、动态、易于维护的博客网站。在开发过程中,应当关注前后端分离、用户体验优化、系统性能和安全性等关键要素,确保博客网站的稳定和长期可用性。通过本篇文章,读者应该已经对这些技术有了初步了解,并能够结合文件提供的源码开始进行相关开发实践。
recommend-type

【Unity Sunny Land关卡设计高级指南】:打造完美关卡的8大技巧

# 1. Unity关卡设计概述 ## 1.1 关卡设计的核心要素 关卡设计作为游戏开发中不可或缺的一环,承担着构建游戏世界、呈现故事背景、引导玩家体验和激发玩家兴趣的责任。一个优秀的关卡不仅需要有吸引人的视觉效果和有趣的挑战,还需平衡玩家体验,提供连贯的游戏故事。 ## 1.2 关卡设计师的角色 在Unity引擎的环境下,关卡设计师需要具备对场景布局、角色互动、剧情
recommend-type

C++ 模版

<think>我们正在讨论C++模板的使用和常见问题。根据用户要求,所有行内数学表达式使用$...$,独立公式使用$$...$$,用中文回答,并生成相关问题。同时,回答要结构清晰,帮助用户逐步解决问题。 首先,回顾用户的问题:用户想了解C++模板的使用和常见问题。我们将从以下几个方面展开: 1. 模板的基本概念和用途 2. 函数模板和类模板 3. 模板特化和偏特化 4. 模板元编程简介 5. 常见问题及解决方案 注意:在回答中,我们会引用站内提供的引用内容(引用[1]和引用[2])作为参考,但主要围绕模板展开。 ### 1. 模板的基本概念和用途 C++模板是一种支持泛型编程的特性,允许
recommend-type

C#随机数摇奖系统功能及隐藏开关揭秘

### C#摇奖系统知识点梳理 #### 1. C#语言基础 C#(发音为“看井”)是由微软开发的一种面向对象的、类型安全的编程语言。它是.NET框架的核心语言之一,广泛用于开发Windows应用程序、ASP.NET网站、Web服务等。C#提供丰富的数据类型、控制结构和异常处理机制,这使得它在构建复杂应用程序时具有很强的表达能力。 #### 2. 随机数的生成 在编程中,随机数生成是常见的需求之一,尤其在需要模拟抽奖、游戏等场景时。C#提供了System.Random类来生成随机数。Random类的实例可以生成一个伪随机数序列,这些数在统计学上被认为是随机的,但它们是由确定的算法生成,因此每次运行程序时产生的随机数序列相同,除非改变种子值。 ```csharp using System; class Program { static void Main() { Random rand = new Random(); for(int i = 0; i < 10; i++) { Console.WriteLine(rand.Next(1, 101)); // 生成1到100之间的随机数 } } } ``` #### 3. 摇奖系统设计 摇奖系统通常需要以下功能: - 用户界面:显示摇奖结果的界面。 - 随机数生成:用于确定摇奖结果的随机数。 - 动画效果:模拟摇奖的视觉效果。 - 奖项管理:定义摇奖中可能获得的奖品。 - 规则设置:定义摇奖规则,比如中奖概率等。 在C#中,可以使用Windows Forms或WPF技术构建用户界面,并集成上述功能以创建一个完整的摇奖系统。 #### 4. 暗藏的开关(隐藏控制) 标题中提到的“暗藏的开关”通常是指在程序中实现的一个不易被察觉的控制逻辑,用于在特定条件下改变程序的行为。在摇奖系统中,这样的开关可能用于控制中奖的概率、启动或停止摇奖、强制显示特定的结果等。 #### 5. 测试 对于摇奖系统来说,测试是一个非常重要的环节。测试可以确保程序按照预期工作,随机数生成器的随机性符合要求,用户界面友好,以及隐藏的控制逻辑不会被轻易发现或利用。测试可能包括单元测试、集成测试、压力测试等多个方面。 #### 6. System.Random类的局限性 System.Random虽然方便使用,但也有其局限性。其生成的随机数序列具有一定的周期性,并且如果使用不当(例如使用相同的种子创建多个实例),可能会导致生成相同的随机数序列。在安全性要求较高的场合,如密码学应用,推荐使用更加安全的随机数生成方式,比如RNGCryptoServiceProvider。 #### 7. Windows Forms技术 Windows Forms是.NET框架中用于创建图形用户界面应用程序的库。它提供了一套丰富的控件,如按钮、文本框、标签等,以及它们的事件处理机制,允许开发者设计出视觉效果良好且功能丰富的桌面应用程序。 #### 8. WPF技术 WPF(Windows Presentation Foundation)是.NET框架中用于构建桌面应用程序用户界面的另一种技术。与Windows Forms相比,WPF提供了更现代化的控件集,支持更复杂的布局和样式,以及3D图形和动画效果。WPF的XAML标记语言允许开发者以声明性的方式设计用户界面,与C#代码分离,易于维护和更新。 #### 9. 压缩包子文件TransBallDemo分析 从文件名“TransBallDemo”可以推测,这可能是一个C#的示例程序或者演示程序,其中“TransBall”可能表示旋转的球体,暗示该程序包含了动画效果,可能是用来模拟转动的球体(如转盘或摇奖球)。该文件可能是用来展示如何实现一个带有视觉动画效果的摇奖系统的C#程序。 总结以上内容,我们可以得出构建一个C#摇奖系统需要深入理解C#语言及其随机数生成机制,设计用户界面,集成动画效果,确保隐藏控制逻辑的安全性,以及全面测试系统以保证其正确性和公平性。通过掌握Windows Forms或WPF技术,可以进一步增强系统的视觉和交互体验。
recommend-type

【数据驱动的力量】:管道缺陷判别方法论与实践经验

# 摘要 数据驱动技术在管道缺陷检测领域展现出强大的力量,本文首先概述了数据驱动的力量和管道缺陷判别的基础理论。接着,重点探讨了管道缺陷的类型与特征、数据采集与预处理、数据驱动模型的选择与构建。在实践技巧章节,本文详述了实战数据集的准备与处理、缺陷识别算法的应用、以及性能评估与模型优化。此外,高级应用章节深入讨论了实时数据处理分析、多模态数据融合技术、以及深度学习在缺