clear all;close all;clc
%%
lon = ncread('hawaii_evap.nc','longitude');
lat = ncread('hawaii_evap.nc','latitude');
evap= ncread('hawaii_evap.nc','param03');%蒸发
prec= ncread('hawaii_evap.nc','param02');%降水
corr = zeros(length(lon), length(lat) );
%
for i = 1:length(lon)
for j = 1:length(lat)
[r p] = corrcoef( squeeze(evap(i,j,:)), squeeze(prec(i,j,:)) );
corr(i,j) = r(1,2);
end
end
[lat2d lon2d] = meshgrid(lat, lon);
figure(1)
set( gcf , 'color' ,'w');
m_proj('miller','lat',[-90, 90],'lon',[0, 360]);
m_contourf(lon2d, lat2d,corr,20)
colormap('jet');colorbar
caxis([-1 1])
m_coast('patch',[.7 .7 .7],'edgecolor','none');
m_grid('box','on','linestyle','none');
title('蒸发与降水的相关性','fontsize',18)
%% 风场散度和降水相关
lon = ncread('hawaii_ecmwf_precipitation.nc','longitude');
lat = ncread('hawaii_ecmwf_precipitation.nc','latitude',[2],[72]);
time= ncread('hawaii_ecmwf_precipitation.nc','time');
prec = ncread('hawaii_ecmwf_precipitation.nc','param02',[1 2 1],[inf 72 inf]);
uwind= ncread('hawaii_ecmwf_precipitation.nc','param36',[1 2 1],[inf 72 inf]);
vwind= ncread('hawaii_ecmwf_precipitation.nc','param38',[1 2 1],[inf 72 inf]);
%
[lat2d,lon2d] = meshgrid(double(lat),double(lon));
% calculate divergence
dd0 = 2*pi*6371000/360; % distance for one Latitude (unit: meter)
xx = lon2d*dd0.*cosd( lat2d );
yy = lat2d*dd0;
%计算散度
div=[];
for ii=1:269
div1 = divergence( xx', yy', uwind(:,:,ii)', vwind(:,:,ii)' );
div1 = div1';
div=cat(3,div,div1);
end
%计算相关系数
corr = zeros(length(lon), length(lat) );
for i = 1:length(lon)
for j = 1:length(lat)
[r p] = corrcoef( squeeze(div(i,j,:)), squeeze(prec(i,j,:)) );
corr(i,j) = r(1,2);
end
end
%
[lat2d lon2d] = meshgrid(lat, lon);
figure(2)
set( gcf , 'color' ,'w');
m_proj('miller','lat',[-90, 90],'lon',[0, 360]);
m_contourf(lon2d, lat2d,corr)
colormap('jet');colorbar
caxis([-1 1])
m_coast('patch',[.7 .7 .7],'edgecolor','none');
m_grid('box','on','linestyle','none');
title('风场散度和降水的相关性','fontsize',18)
Matlab 用corrcoef函数计算蒸发和降水的相关性,风场散度和降水的相关性
最新推荐文章于 2021-03-22 21:59:16 发布