登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
nc数据全解读-3 数据处理:月数据变季度数据,年数据,数据标准化
直接看附件,太麻烦了传图
ncdisp('air.mon.mean.nc');
ncdisp之后发现air数据是从1948年1月至2020年1月共865个月的逐月数据,此时,若是需要1948年-2020年北京区域(E115-117.5,N37.5-40)冬季的数据,定义12、1、2为冬季,则共71个冬季,因为19年冬季缺2020年2月份数据。。。
思路:先将1948年冬季-2018年冬季共213个月挑出来,再每三个月求平均,即可得到71年冬季平均数据。
%读取air数据 只有一层,且范围是全球】
1.1月数据变季度数据,
lat=ncread('air.mon.mean.nc','lat');
lon=ncread('air.mon.mean.nc','lon');
time=ncread('air.mon.mean.nc','time');
air=ncread('air.mon.mean.nc','air');
%读取北京地区865个月温度数据
bjair=air(47:48,21:22);%
for i=1:1:865;
bjair=squeeze(air(47:48,21:22,i));%bjair是第865个月的北京区域数值,前面864个数值被覆盖了
beijing(i,:)=reshape(bjair,1,4);%将三维变量变为二维
end
%先将冬季月数据挑选出来
Y=zeros(213,4);%先设置数组,等待填充,865个月共有71个冬季,213个月,北京地区只有4个数据点
for i=1:71;
Y(3*(i-1)+1:3*i,:)=beijing(12*i:12*i+2,:);%挑选12*1行至12*1+2行,也就是第12-14行(1948年12月-次年2月)数据填充到1-3行。。。直至挑选12*71至12*71+2行(2018年12月-次年2月)填充到211-213行(71年,所以是213个数据)
End
%季度数据
%将213行数据每3年求平均变为71年冬季平均地面温度
airyear=zeros(71,4);
for i=1:3:213;
airyear((i+2)/3,:)=(Y(i,:)+Y(i+1,:)+Y(i+2,:))/3;
end
1.2月数据变年数据
%将月数据变为年数据
lat=ncread('air.mon.mean.nc','lat');
lon=ncread('air.mon.mean.nc','lon');
time=ncread('air.mon.mean.nc','time');
air=ncread('air.mon.mean.nc','air');
%读取北京地区865个月温度数据
bjair=air(47:48,21:22);%
for i=1:1:865;
bjair=squeeze(air(47:48,21:22,i));%bjair是第865个月的北京区域数值,前面864个数值被覆盖了
beijing(i,:)=reshape(bjair,1,4);%将三维变量变为二维
end
airyear2=zeros(71,4);
for i=1:3:213;
airyear2((i+2)/3,:)=(beijing(i,:)+beijing(i+1,:)+beijing(i+2,:)+beijing(i+3,:)+beijing(i+4,:)+beijing(i+5,:)+beijing(i+6,:)+beijing(i+7,:)+beijing(i+8,:)+beijing(i+9,:)+beijing(i+10,:)+beijing(i+11,:))/12;
end
2数据标准化
注意,进行数据标准化是因为将温度变为无量纲数,然后才能跟别的数据,如850hpa高度数据进行进一步相关分析、eof、svd等分析,
|