概述
毕业季要到了,毕业论文也要到了!希望能帮助到你
这个程序是做相关场的。这个的相关场是年数据的,也就是经过计算有N年的夏季数据和N年的nino某一季节的数据!
注意这里的NC文件层数是只有一层的,如果涉及多层要在NC文件读取那里改,一般NC文件都是从[ 经度 纬度 层数 时间 ] 这种顺序摆放的。
part1 输入文件的相关信息
这部分主要是输出相关NC文件和nino指数的信息,具体说明在注释里面
注意这里面的数据需要时间连续的数据
在这里就是基本上要改的内容了,都放在这里,还有不同NC文件的格式也要改,所以在NC文件读取那里就要改改
dt是滞后时间,改变dt可以做滞后相关(NC文件滞后dt年)
%% 相关场
part2 数据的读取
2.1 nino指数的读取
因为大家的文件读写习惯不同,所以这里的excel文件是只有数据,没有其他说明的,比如这样:
也可以用其他格式的文件,对应换换函数就OK
%% nino指数的读取
2.2 NC文件数据的读取
time_nc
这里要特别注意这一句,matlab的时间戳和NC文件的时间戳是不一样的,所以要转换。我们可以ncdisp('文件路径')查看时间信息,如下图:
第一,一些NC文件的时间系统是小时制的,也就是从说1800-1月-1日开始算到现在有多少小时,所以要除以24转换为天数;
就像图1,如果这个units = 'hours since 1800-01-01 00:00:0.0'这里是hours那就是要除以24
就像图2,如果是units= 'days since 1800-1-1 00:00:00',这里面是days,就是以天数计算,所以不用除以24就可以
第二是matlab是从公元0000年-01月-01日开始计算到现在多少天的,而NC文件是从1800年1月1日算起,所以要加上datenum('1-jan-1800')以转换为matlab的时间戳。注意一些NC文件是从从1900年1月1日算起,我们可以从units = 'hours since 1800-01-01 00:00:0.0'这个获取相关信息
%% ---读取NC文件数据--
part3 相关系数的计算
1. 里面的矩阵t是检验其过不过检验的指标。例如:t<0.1则通过了显著性水平α=0.1,在代码的开头有reliability = 0.1就是这个信度指标,可以选择0.01,0.05或者0.01。
2. 经过计算后的NC文件必须和nino指数的时间层数要对应上,比如有40年nino指数,那么经过计算后NC文件的时间层数也必须要有40年,若是要其他季节的平均可以在这次基础上改循环
!!补充:有一些数据要去趋势,或者用距平场计算,这个就要自己做距平场(异常场),去趋势(detrend()函数)之后再进行计算相关系数场
%% 计算
part4 绘图
这里我们要用到m_map,如果还没装m_map可以先安装
如果是海洋数据(比如海表面温度SST),那么第6行的m_coast可以加入('patch',[0.8 0.8 0.8])这个属性填充陆地
然后下面代码的第15行被注释的是把过了90%检验的地方圈起来,如果有需要可以取消注释
%% 绘图
输出结果:
笔者水平有限,若有疏漏恳请指出!
-END-
附:完整代码
%% 相关场
最后
以上就是冷艳抽屉为你收集整理的matlab 从 excel读取 日期_Matlab教程 | 利用NC文件进行相关系数场的计算及绘制的全部内容,希望文章能够帮你解决matlab 从 excel读取 日期_Matlab教程 | 利用NC文件进行相关系数场的计算及绘制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复