利用MATLAB计算输沙势DP
% 计算输沙势DP
% 数据来源ERA5的nc格式的风数据
% 快速计算得到DP值## 标题
% 作者:杨佐威 日期:2020/5/10
ck_nc=ncinfo(‘J:\sahil_data\原始数据\wind\ERA5_mrt_1980.nc’);
latitude=ncread(‘J:\sahil_data\原始数据\wind\ERA5_mrt_1980.nc’,‘latitude’);
longitude=ncread(‘J:\sahil_data\原始数据\wind\ERA5_mrt_1980.nc’,‘longitude’);
jwd=[];
for i=1:length(latitude)
for j=1:length(longitude)
temp=[latitude(i) longitude(j)];
jwd=[jwd;temp];
end
end
U=ncread(‘J:\sahil_data\原始数据\wind\ERA5_mrt_1980.nc’,‘u10’);
V=ncread(‘J:\sahil_data\原始数据\wind\ERA5_mrt_1980.nc’,‘v10’);
[a,b,c]=size(U); % 三维xyz
% 计算风速
W=(U.U+V.V).^0.5;
WW=reshape(W,ab,c);
WW=WW’;
[m,n]=size(WW);
% 循环得到所有网格点的起沙风数据
for i=1:n
A=WW(WW(:,i)>6,i); %
qsf{i}=A;
end
% 循环得到所有网格点的输沙势DP和年输沙势DP1
for i=1:n
DP=qsf{i}.2.*(qsf{i}-6).*1.9438.3.(1/m);
DP1{i}=sum(DP);
end
DP2=cell2mat(DP1);
DP2=DP2’;