(保姆式教程:从下数据到画图)python如何利用EOF分析SSTA海温异常现象并画图

VIP(保姆式教程:从下数据到画图)python如何利用EOF分析SSTA海温异常现象并画图
保姆式教程,教你如何利用python分析1979-2004年的太平洋地区的海温异常SSTA,并且绘制出空间模态和时间序列的图片。
开通可读全文 ·2.3w 人阅读
最低0.47元/天 解锁文章

最近,在学习如何利用python中的EOF 对太平洋附近的1979-2004年出现的海温异常进行分析。

EOF分析是气象分析中常见的一种分析方法,也被称为经验正交函数。经过EOF分析,可以将几十年的海温数据变成几个空间模态和时间序列,这样就可以通过空间模态大致分析一些变化趋势,话不多说,接下来我们就开始看如何对SSTA进行EOF分解吧!

首先我们需要分析的数据是SSTA,我选取的是1979—2004年的海温数据,下载的网站是

https://www.metoffice.gov.uk/hadobs/hadisst/index.html

选取首页的main data page,进入后有很多可以选择的下载数据。

这里选取第一个文件下载,进入python进行运行。

首先我们读取这个nc文件。

#读取数据
path='C:\\Users\\user\\Desktop\\data\\SST\\HadISST_sst.nc'
SST=xr.open_dataset(path)

查看SST的基本信息:

我们可以看出该数据的时间范围为1840—2021年,但是我们需要分析的是1979—2004年的数据(此处为何选择1979为起点,是因为其实1979年之前的数据准确度都不太够,所以一般分析的时候选取1979作为起点分析。)

其中我们也可以发现我们的经度范围为-180-180,我们此处的分析范围是太平洋地区的厄尔尼诺和拉尼娜现象,所以我们的经纬度范围一定要足够准确才可以,此处我选取 latitude=slice(30,-30),longitude=slice(100,300),那么就会有一个事情需要做,就是我们需要使用cdo对该nc文件进行一个处理,将其中的经度范围从-180-180改为0-360。

关于cdo的内容可以学习这篇文章:cdo常用命令介绍

一些操作可以看这篇文章:如何解决 cdo转换经度-180~180 为0~360

但是操作过程中会发现一些问题,比如我这个数据集即使是用上述方法依然会报错,此时我们去看一下这个nc文件的基本信息

cdo infos HadISST_sst.nc

 我们可以发现,在文章中需要将generic转化为lonlat的步骤在这里根本不需要,因为我们本来就有一层是lonlat ,所以我们只要将这一层lonlat取出来作为一个新的nc文件进行转化即可。

cdo selgrid,lonlat HadISST_sst.nc sst2.nc

这就取出来啦,此时进行上述文章中的操作:

 cdo sellonlatbox,0,360,-90,90 sst2.nc sst3.nc

 

 这样就成功转化啦!

VIP Python 对海表面温度进行EOF分解与前n模态合成 与开始的eof分解略有不同,在进行分解及可视化的时候,将eof分解得到的空间模态乘以特征值的平方根来更好的展示效果。eof=solver.eofs(eofscaling=2) #空间模态 乘以特征值的平方根。solver=Eof(ssto,weights=wgts) #eof分解。solver=Eof(ssto,weights=wgts) #eof分解。三、前4个模态合成SST并比较合成SST与真实SST的差异。eof=solver.eofs() #空间模态。 开通可读全文·3.1k 阅读·0 点赞·23 收藏 阅读全文

相关推荐

基于EOF分析的PDO指数计算与Python实践指南

本文详细介绍了基于EOF分析的PDO指数计算方法及其Python实现。通过数据准备、预处理、EOF分析、结果可视化与验证等步骤,帮助读者掌握气候数据分析的核心技术。文章特别强调了PDO指数在气候研究中的重要性,并提供了实用的Python代码实现和常见问题排查方法。

weixin_28684497的博客 203

保姆级教程:用Python和xarray从NOAA数据计算PDO指数(附完整代码)

本文提供了一份详细的Python教程,教你如何使用xarray和eofs库从NOAA数据计算PDO指数。教程涵盖了数据下载、预处理、EOF分析到结果验证的全过程,并附有完整代码实现,适合气候数据分析初学者和研究者。

weixin_33309048的博客 228

经验正交函数分析(EOF)或主成分分析(PCA)在matlab上的实现及实例

经验正交函数分析方法(Empirical Orthogonal Function,缩写为EOF),也称特征向量分析(EigenvectorAnalysis),或者主成分分析(Principal Component Analysis,缩写PCA),是一种分析矩阵数据中的结构特征,提取主要数据特征量的一种方法。Lorenz在1950年代首次将其引入气象和气候研究,在地学及水声学等其他学科中得到了非常广泛的应用。地学数据分析中通常特征向量对应的是空间样本,所以也称空间特征向量或者空间模态;主成分对应的是时间变化.

waterstar2010的博客 1万+

Matlab实现EOF分析

这里使用了Matlab的eig函数,计算出协方差矩阵的特征值和特征向量。这里使用了Matlab的mean函数,计算了数据的平均值,同时使用repmat函数将平均值扩展为一个与数据矩阵相同大小的矩阵,然后使用减法得到去平均化的数据矩阵data_anom。一般而言,需要计算出数据的平均值,并将原始数据减去平均值,得到去平均化的数据。这里使用了Matlab的矩阵乘法运算符,将去平均化的数据矩阵和选定的特征向量矩阵相乘,得到EOF模态矩阵eof_mode。这里选择前3个特征向量。首先,需要导入待分析的数据。

dm1901的博客 3695

气象中EOF的理解

  EOF方法在气象分析中经常用到,接触好长时间,也没有弄清楚他到底在干嘛。为什么这么做是可行的?这里面的计算都有什么意义呢?   看了一些矩阵理解方面的内容后,对EOF算是有了一些粗浅的理解,现在试着去阐述一下其中的院里,好厘清自己对EOF理解。 文章目录几篇参考文章EOF分析——Empirical Orthogonal Function analysisEOF的计算过程EOF的理解内积与投影线...

留下的,留不下的 2万+

4、EOF分析方法

EOF(经验正交函数分解方法)是大气科学以及海洋科学中常用的分析方法,本文以海温数据为例讲解如何在Python中快速实现资料的EOF处理,关于EOF原理及分析方法不再赘述,感兴趣的小伙伴可以参考南京信息工程大学李丽平老师的课件EOF分析原理。

小兔子乖乖 6205

EOF分析方法与大数据

EOF分析通过提取数据的主要空间模态,可以帮助我们理解数据的主要特征,并用于数据降维、特征提取、模式识别等任务。特征提取:EOF分析可以帮助我们从大数据中提取出最具代表性的空间模态,这些模态对应的EOF值较大,反映了数据中的主要变化模式。数据插值:EOF分析可以用于填补数据中的缺失值。通过对已有数据进行EOF分析,我们可以得到数据的主要空间模态,并利用这些模态对缺失值进行插值,从而恢复完整的数据。在大数据处理中,EOF分析可以帮助我们从海量数据中提取出关键的空间模态,以便进行进一步的分析和挖掘。

YbDocker的博客 823

时空数据分析:经验正交分解(EOF)实战教程

FORTRAN(公式翻译系统)是早期广泛使用的高级编程语言之一,首次发布于1957年。作为一种专门设计用于科学计算的语言,FORTRAN在数值分析、物理模拟等领域一直拥有重要地位。它引入了数组数据结构和运算符重载,极大地简化了数学和工程问题的编程复杂性。其后版本的更新中,FORTRAN不断引入新的特性,包括模块化编程、结构化编程等,以适应更复杂的编程需求。协方差矩阵是一个描述变量间协方差的方阵,可以理解为多变量版本的方差。

weixin_34268462的博客 1599

短期气候Python绘图——EOF(经验正交函数分解)大气环流基本状况

结合特征向量场以及时间系数可以分析500hPa高度场的空间分布特征与时间变化,如第一模态,正值中心位于贝加尔湖与里海之间,负值中心位于日本海,说明这两个地区的高度场变化相反。若负值所在的东亚为负异常时,正值所在蒙新高地区域为正异常,即东亚的槽加强或脊减弱时,蒙新高地脊加强或槽减弱。同时正值与负值中心所在区域的高度场变化幅度也是最大的。其他模态的分析与第一模态类似,反应的也是高度场的异常。

2202_75559127的博客 1821

直流电源EMI滤波器设计实战:从器件选型到PCB布局的完整指南

本文提供了一份直流电源EMI滤波器的完整实战设计指南。针对EMI噪声超标问题,文章深入剖析了差模与共模噪声的抑制原理,详细讲解了从电路拓扑、核心器件(如X/Y电容、共模电感)的选型计算,到决定性能成败的PCB布局艺术。重点强调了低阻抗路径、干净接地及输入输出隔离等关键布局原则,并分享了常见的调试坑点与排查方法,旨在帮助硬件工程师设计出真正有效的滤波器,确保电源系统通过EMC测试。

q9r0s的博客 638

AD20.多对多工程中将某个原理图导入PCB工程

AD20将多个原理图中的一个或多个导入到PCB文件中

鬼爷杂货铺 1万+

2026年全国青少年信息素养大赛算法应用主题赛C++赛项【决赛】模拟卷1:文末附答案

2026年全国青少年信息素养大赛算法应用主题赛C++赛项【决赛】模拟卷1:文末附答案

王老师青少年编程 1158

问题解答:如何不通过修改底层数据库表的方式,给数据库对应的数据结构,增添新的字段?

现在需要将这张表里的内容读取到 ABAP 内表里,并且针对每个行项目,增加一个新的列字段,我随便举个例子,这个列字段名称叫 LENGTH,值为 OBJ_NAME 字段的长度,使用。最笨的办法就是下面这样定义一个新的类型,这个类型的每个字段名称,都来自数据库表 TADIR 的同名字段,在末尾再增添自定义字段 length.其实我们是做 ALV 输出,只需要 ABAP 内表变量的类型,包含 TADIR 数据库表的全部字段,再加上新的 LENGTH 字段即可。这相当于多了一个中间层,没办法直接被 ALV 处理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 463

STC单片机使用FatFs文件系统读取SD卡指定文件内容

STC单片机使用FatFs文件系统读取SD卡指定文件内容

perseverance51博客 2737

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5725

【安全设备篇】HVV面试专题

还有就是这个可能是被访问的这个内网系统,本身业务系统存在业务逻辑问题,因为内网所布置的很多业务系统往往不会考虑一些安全性问题,比如在正常的业务逻辑请求中直接带了sql语句,就会触发设备规则产生告警,这一类是属于误报,然后会将此告警上报给研判人员,需要研判组专家和甲方客户确认下是否是该系统存在此业务逻辑问题,并且需要确认告警的源ip在此告警的时间段附近有没有进行操作过。天眼日志分析主要基于系统和应用程序的日志数据来识别安全威胁,而威胁感知则通过收集和分析多种来源的情报信息。理解威胁的性质和威胁背后的原理。

大河之犬的博客 7918

学Simulink--基于Simulink的无迹卡尔曼滤波(UKF)目标跟踪仿真建模示例

本文详细介绍了基于Simulink的无迹卡尔曼滤波(UKF)目标跟踪仿真建模方法。首先分析了UKF相比EKF在强非线性场景下的优势,包括无线性化误差、计算效率高和鲁棒性强等特点。接着阐述了UKF的核心原理,重点讲解了无迹变换(UT)的三个关键步骤:Sigma点生成、非线性传播和加权统计重构。文章还详细说明了二维机动目标的状态向量定义、非线性状态转移模型和雷达观测模型。 在Simulink实现部分,提供了完整的建模步骤和核心代码,包括目标运动模型、雷达传感器模型和UKF算法模块的实现。通过蛇形机动场景的仿真实

xiaoheshang_123的博客 87

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: python报错TypeError: Input z must be 2D, not 3D的解决方法
下一篇: cdo如何将0.25°分辨率的netcdf4文件转化为1°的分辨率

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
森屿星球
博客等级 码龄8年 166粉丝 10原创
评论 49
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值