代码内容包括:
% 【摘要】读取.grd文件;对不同分辨率数据网格插值;对不重合区域取公共交集区,
% 比较全球12个典型区域的total runoff的值(CLM45 .VS. CLM50)与UNH-GRDC;
cd 'D:\数据\UNH-GRDC\World Runoff Data\runoff_grd\'
%(1)读 .grd 文件的 unh_grdc 月平均值
clc; clear; close all
flistobs = dir('D:\数据\UNH-GRDC\World Runoff Data\runoff_grd\*.grd');
for i =2:13 % 留意读取的文件序号
filename = flistobs(i).name;
delimiterIn = ' '; % 设置定界符,从grd文件复制
headerlinesIn = 6; % 设置需要跳过的行数,跳过6行,从第7行开始
datastrct = importdata(filename,delimiterIn,headerlinesIn);
rof = datastrct.data;
rof = flip(rof); % 数据可能是倒置的,可以通过pcolor查看
rof(rof == -9999) = NaN; % 替换缺省值为 Nan
rofcmp_mon{i-1} = rof; % 以cell格式存储
end
%(2)读 clm 模拟的多年月平均值(CLM45 or CLM50)
load('D:\数据\UNH-GRDC\World Runoff Data\runoff_grd\simres_clm45.mat')
%(3)对 unh-grdc 数据进行空间插值计算(0.5*0.5转到1.25*0.9375)
fpath = 'D:\Models_Output\Clm45Sp\lnd\hist\';
flistsim = dir([fpath,'*.nc']);
fname = flistsim(1).name;
xx = ncread([fpath,fname],'lon');
yy = ncread([fpath,fname],'lat');
for m = 1:length(xx)
if xx(m) >= 180
xx(m) = xx(m) - 360;
else
continue
end
end
xx = [xx(145:end);xx(1:144)]; % 将经度后半段(>=180)拼接到前面
[lonsim,latsim] = meshgrid(xx,yy);
x = -180:0.5:179.5;
y = -55.5:0.5:82.5;
[lonobs,latobs] = meshgrid(x,y);
for k = 1:12
ttmp = rofcmp_mon{k};
cmprofup_mon{k} = griddata(lonobs(:),latobs(:),ttmp(:),lonsim,latsim,'nearest');
end
%(4)确定全局情况下两者共同交集网格(利用Nan 与 非Nan 的计算结果为 Nan 确定交集区域)
commask = cmprofup_mon{1} - rofsim_mon{1}; % comaree中非nan的网格就是两者共有网格
commask(~isnan(commask)) = 1;
for m = 1:12
tmpcmp = cmprofup_mon{m};
cmprofup_mon{m} = tmpcmp.*commask;
tmpsim = rofsim_mon{m};
rofsim_mon{m} = tmpsim.*commask;
end
%(5)划定各个典型区域坐标范围
% West_Siberia(50-70N,60-90E) East_Siberia(50-70N,90-140E) Canada(50-70N,90-170W)
% Amazon_Basin(10S-0,70-50W) Congo(10S-5N,10-30E) India(10-30N,70-90E)
% South_Africa(35-10S,10-40E) Eastern_China(25-40N,110-125E)
% Central_Europ(40-50N,0-40E) Sahara+Arabla(10-30N,0-50E) Western_US(30-50N,130-110W)
% Australia(40-10S,110-160E)
reginal_name = ...
{['West Siberia(50-70N,60-90E)'] ['East Siberia(50-70N,90-140E)']...
['Canada(50-70N,90-170W)'] ['Amazon Basin(10S-0,70-50W)']...
['Congo(10S-5N,10-30E)'] ['India(10-30N,70-90E)']...
['South Africa(35-10S,10-40E)'] ['Eastern China(25-40N,110-125E)']...
['Central Europ(40-50N,0-40E)'] ['Sahara-Arabla(10-30N,0-50E)']...
['Western US(30-50N,130-110W)'] ['Australia(40-10S,110-160E)']};
dlon = 1.25;
dlat = 0.9375;
%(5-1)划定各个区域范围
West_Siberia_lat = [floor((50+90)/dlat):ceil((70+90)/dlat)];
West_Siberia_lon = [floor((60+180)/dlon):ceil((90+180)/dlon)];
East_Siberia_lat = [floor((50+90)/dlat):ceil((70+90)/dlat)];
East_Siberia_lon = [floor((90+180)/dlon):ceil((140+180)/dlon)];
Canada_lat = [floor((50+90)/dlat):ceil((70+90)/dlat)];
Canada_lon = [floor((180-170)/dlon):ceil((180-90)/dlon)];
Amazon_Basin_lat = [floor((90-10)/dlat):ceil((90-0)/dlat)];
Amazon_Basin_lon = [floor((180-70)/dlon):ceil((180-50)/dlon)];
Congo_lat = [floor((90-10)/dlat):ceil((90+5)/dlat)];
Congo_lon = [floor((10+180)/dlon):ceil((30+180)/dlon)];
India_lat = [floor((90+10)/dlat):ceil((90+30)/dlat)];
India_lon = [floor((70+180)/dlon):ceil((90+180)/dlon)];
South_Africa_lat = [floor((90-35)/dlat):ceil((90-10)/dlat)];
South_Africa_lon = [floor((10+180)/dlon):ceil((40+180)/dlon)];
Eastern_China_lat = [floor((90+25)/dlat):ceil((90+40)/dlat)];
Eastern_China_lon = [floor((110+180)/dlon):ceil((125+180)/dlon)];
Central_Europ_lat = [floor((40+90)/dlat):ceil((50+90)/dlat)];
Central_Europ_lon = [floor((180+0)/dlon):ceil((180+40)/dlon)];
Sahara_Arabla_lat = [floor((90+10)/dlat):ceil((90+30)/dlat)];
Sahara_Arabla_lon = [floor((180+0)/dlon):ceil((180+50)/dlon)];
Western_US_lat = [floor((90+30)/dlat):ceil((90+50)/dlat)];
Western_US_lon = [floor((180-130)/dlon):ceil((180-110)/dlon)];
Australia_lat = [floor((90-40)/dlat):ceil((90-10)/dlat)];
Australia_lon = [floor((110+180)/dlon):ceil((180+160)/dlon)];
%(5-2)提取各个区域网格
for i = 1:12
tmpobs = cmprofup_mon{i}; % 逐月提取观测值
West_Siberia_obs{i} = tmpobs(West_Siberia_lat, West_Siberia_lon);
East_Siberia_obs{i} = tmpobs(East_Siberia_lat, East_Siberia_lon);
Canada_obs{i} = tmpobs(Canada_lat,Canada_lon);
Amazon_Basin_obs{i} = tmpobs(Amazon_Basin_lat,Amazon_Basin_lon);
Congo_obs{i} = tmpobs(Congo_lat,Congo_lon);
India_obs{i} = tmpobs(India_lat,India_lon);
South_Africa_obs{i} = tmpobs(South_Africa_lat, South_Africa_lon);
Eastern_China_obs{i}= tmpobs(Eastern_China_lat,Eastern_China_lon);
Central_Europ_obs{i}= tmpobs(Central_Europ_lat,Central_Europ_lon);
Sahara_Arabla_obs{i}= tmpobs(Sahara_Arabla_lat,Sahara_Arabla_lon);
Western_US_obs{i} = tmpobs(Western_US_lat,Western_US_lon);
Australia_obs{i} = tmpobs(Australia_lat,Australia_lon);
tmpsim = rofsim_mon{i}; % 逐月提取模拟值
West_Siberia_sim{i} = tmpsim(West_Siberia_lat, West_Siberia_lon);
East_Siberia_sim{i} = tmpsim(East_Siberia_lat, East_Siberia_lon);
Canada_sim{i} = tmpsim(Canada_lat,Canada_lon);
Amazon_Basin_sim{i} = tmpsim(Amazon_Basin_lat,Amazon_Basin_lon);
Congo_sim{i} = tmpsim(Congo_lat,Congo_lon);
India_sim{i} = tmpsim(India_lat,India_lon);
South_Africa_sim{i} = tmpsim(South_Africa_lat, South_Africa_lon);
Eastern_China_sim{i}= tmpsim(Eastern_China_lat,Eastern_China_lon);
Central_Europ_sim{i}= tmpsim(Central_Europ_lat,Central_Europ_lon);
Sahara_Arabla_sim{i}= tmpsim(Sahara_Arabla_lat,Sahara_Arabla_lon);
Western_US_sim{i} = tmpsim(Western_US_lat,Western_US_lon);
Australia_sim{i} = tmpsim(Australia_lat,Australia_lon);
end
%(6)比较逐月runoff数据
for i = 1:12
tmpreg = West_Siberia_obs{i};
West_Siberia_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = West_Siberia_sim{i};
West_Siberia_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = East_Siberia_obs{i};
East_Siberia_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = East_Siberia_sim{i};
East_Siberia_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Canada_obs{i};
Canada_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Canada_sim{i};
Canada_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Amazon_Basin_obs{i};
Amazon_Basin_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Amazon_Basin_sim{i};
Amazon_Basin_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Congo_obs{i};
Congo_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Congo_sim{i};
Congo_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = India_obs{i};
India_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = India_sim{i};
India_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = South_Africa_obs{i};
South_Africa_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = South_Africa_sim{i};
South_Africa_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Eastern_China_obs{i};
Eastern_China_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Eastern_China_sim{i};
Eastern_China_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Central_Europ_obs{i};
Central_Europ_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Central_Europ_sim{i};
Central_Europ_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Sahara_Arabla_obs{i};
Sahara_Arabla_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Sahara_Arabla_sim{i};
Sahara_Arabla_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Western_US_obs{i};
Western_US_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Western_US_sim{i};
Western_US_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Australia_obs{i};
Australia_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Australia_sim{i};
Australia_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
end
%(7) 画每个区域逐月runoff图,为方便画图,将此12个区域汇总起来
regset_45sim{1} = West_Siberia_simmon;
regset_45sim{2} = East_Siberia_simmon;
regset_45sim{3} = Canada_simmon;
regset_45sim{4} = Amazon_Basin_simmon;
regset_45sim{5} = Congo_simmon;
regset_45sim{6} = India_simmon;
regset_45sim{7} = South_Africa_simmon;
regset_45sim{8} = Eastern_China_simmon;
regset_45sim{9} = Central_Europ_simmon;
regset_45sim{10} = Sahara_Arabla_simmon;
regset_45sim{11} = Western_US_simmon;
regset_45sim{12} = Australia_simmon;
regset_obs{1} = West_Siberia_obsmon;
regset_obs{2} = East_Siberia_obsmon;
regset_obs{3} = Canada_obsmon;
regset_obs{4} = Amazon_Basin_obsmon;
regset_obs{5} = Congo_obsmon;
regset_obs{6} = India_obsmon;
regset_obs{7} = South_Africa_obsmon;
regset_obs{8} = Eastern_China_obsmon;
regset_obs{9} = Central_Europ_obsmon;
regset_obs{10} = Sahara_Arabla_obsmon;
regset_obs{11} = Western_US_obsmon;
regset_obs{12} = Australia_obsmon;
%% 重复上述计算,导入 clm50 的数据
%(2)读 clm 模拟的多年月平均值(CLM45 or CLM50)
load('D:\数据\UNH-GRDC\World Runoff Data\runoff_grd\simres_clm50.mat')
%(3)对 unh-grdc 数据进行空间插值计算(0.5*0.5转到1.25*0.9375)
fpath = 'D:\Models_Output\Clm50Sp\lnd\hist\';
flistsim = dir([fpath,'*.nc']);
fname = flistsim(1).name;
xx = ncread([fpath,fname],'lon');
yy = ncread([fpath,fname],'lat');
for m = 1:length(xx)
if xx(m) >= 180
xx(m) = xx(m) - 360;
else
continue
end
end
xx = [xx(145:end);xx(1:144)]; % 将经度后半段(>=180)拼接到前面
[lonsim,latsim] = meshgrid(xx,yy);
x = -180:0.5:179.5;
y = -55.5:0.5:82.5;
[lonobs,latobs] = meshgrid(x,y);
for k = 1:12
ttmp = rofcmp_mon{k};
cmprofup_mon{k} = griddata(lonobs(:),latobs(:),ttmp(:),lonsim,latsim,'nearest');
end
%(4)确定全局情况下两者共同交集网格(利用Nan 与 非Nan 的计算结果为 Nan 确定交集区域)
commask = cmprofup_mon{1} - rofsim_mon{1}; % comaree中非nan的网格就是两者共有网格
commask(~isnan(commask)) = 1;
for m = 1:12
tmpcmp = cmprofup_mon{m};
cmprofup_mon{m} = tmpcmp.*commask;
tmpsim = rofsim_mon{m};
rofsim_mon{m} = tmpsim.*commask;
end
%(5)划定各个典型区域坐标范围
% West_Siberia(50-70N,60-90E) East_Siberia(50-70N,90-140E) Canada(50-70N,90-170W)
% Amazon_Basin(10S-0,70-50W) Congo(10S-5N,10-30E) India(10-30N,70-90E)
% South_Africa(35-10S,10-40E) Eastern_China(25-40N,110-125E)
% Central_Europ(40-50N,0-40E) Sahara+Arabla(10-30N,0-50E) Western_US(30-50N,130-110W)
% Australia(40-10S,110-160E)
reginal_name = ...
{['West Siberia(50-70N,60-90E)'] ['East Siberia(50-70N,90-140E)']...
['Canada(50-70N,90-170W)'] ['Amazon Basin(10S-0,70-50W)']...
['Congo(10S-5N,10-30E)'] ['India(10-30N,70-90E)']...
['South Africa(35-10S,10-40E)'] ['Eastern China(25-40N,110-125E)']...
['Central Europ(40-50N,0-40E)'] ['Sahara-Arabla(10-30N,0-50E)']...
['Western US(30-50N,130-110W)'] ['Australia(40-10S,110-160E)']};
dlon = 1.25;
dlat = 0.9375;
%(5-1)划定各个区域范围
West_Siberia_lat = [floor((50+90)/dlat):ceil((70+90)/dlat)];
West_Siberia_lon = [floor((60+180)/dlon):ceil((90+180)/dlon)];
East_Siberia_lat = [floor((50+90)/dlat):ceil((70+90)/dlat)];
East_Siberia_lon = [floor((90+180)/dlon):ceil((140+180)/dlon)];
Canada_lat = [floor((50+90)/dlat):ceil((70+90)/dlat)];
Canada_lon = [floor((180-170)/dlon):ceil((180-90)/dlon)];
Amazon_Basin_lat = [floor((90-10)/dlat):ceil((90-0)/dlat)];
Amazon_Basin_lon = [floor((180-70)/dlon):ceil((180-50)/dlon)];
Congo_lat = [floor((90-10)/dlat):ceil((90+5)/dlat)];
Congo_lon = [floor((10+180)/dlon):ceil((30+180)/dlon)];
India_lat = [floor((90+10)/dlat):ceil((90+30)/dlat)];
India_lon = [floor((70+180)/dlon):ceil((90+180)/dlon)];
South_Africa_lat = [floor((90-35)/dlat):ceil((90-10)/dlat)];
South_Africa_lon = [floor((10+180)/dlon):ceil((40+180)/dlon)];
Eastern_China_lat = [floor((90+25)/dlat):ceil((90+40)/dlat)];
Eastern_China_lon = [floor((110+180)/dlon):ceil((125+180)/dlon)];
Central_Europ_lat = [floor((40+90)/dlat):ceil((50+90)/dlat)];
Central_Europ_lon = [floor((180+0)/dlon):ceil((180+40)/dlon)];
Sahara_Arabla_lat = [floor((90+10)/dlat):ceil((90+30)/dlat)];
Sahara_Arabla_lon = [floor((180+0)/dlon):ceil((180+50)/dlon)];
Western_US_lat = [floor((90+30)/dlat):ceil((90+50)/dlat)];
Western_US_lon = [floor((180-130)/dlon):ceil((180-110)/dlon)];
Australia_lat = [floor((90-40)/dlat):ceil((90-10)/dlat)];
Australia_lon = [floor((110+180)/dlon):ceil((180+160)/dlon)];
%(5-2)提取各个区域网格
for i = 1:12
tmpobs = cmprofup_mon{i}; % 逐月提取观测值
West_Siberia_obs{i} = tmpobs(West_Siberia_lat, West_Siberia_lon);
East_Siberia_obs{i} = tmpobs(East_Siberia_lat, East_Siberia_lon);
Canada_obs{i} = tmpobs(Canada_lat,Canada_lon);
Amazon_Basin_obs{i} = tmpobs(Amazon_Basin_lat,Amazon_Basin_lon);
Congo_obs{i} = tmpobs(Congo_lat,Congo_lon);
India_obs{i} = tmpobs(India_lat,India_lon);
South_Africa_obs{i} = tmpobs(South_Africa_lat, South_Africa_lon);
Eastern_China_obs{i}= tmpobs(Eastern_China_lat,Eastern_China_lon);
Central_Europ_obs{i}= tmpobs(Central_Europ_lat,Central_Europ_lon);
Sahara_Arabla_obs{i}= tmpobs(Sahara_Arabla_lat,Sahara_Arabla_lon);
Western_US_obs{i} = tmpobs(Western_US_lat,Western_US_lon);
Australia_obs{i} = tmpobs(Australia_lat,Australia_lon);
tmpsim = rofsim_mon{i}; % 逐月提取模拟值
West_Siberia_sim{i} = tmpsim(West_Siberia_lat, West_Siberia_lon);
East_Siberia_sim{i} = tmpsim(East_Siberia_lat, East_Siberia_lon);
Canada_sim{i} = tmpsim(Canada_lat,Canada_lon);
Amazon_Basin_sim{i} = tmpsim(Amazon_Basin_lat,Amazon_Basin_lon);
Congo_sim{i} = tmpsim(Congo_lat,Congo_lon);
India_sim{i} = tmpsim(India_lat,India_lon);
South_Africa_sim{i} = tmpsim(South_Africa_lat, South_Africa_lon);
Eastern_China_sim{i}= tmpsim(Eastern_China_lat,Eastern_China_lon);
Central_Europ_sim{i}= tmpsim(Central_Europ_lat,Central_Europ_lon);
Sahara_Arabla_sim{i}= tmpsim(Sahara_Arabla_lat,Sahara_Arabla_lon);
Western_US_sim{i} = tmpsim(Western_US_lat,Western_US_lon);
Australia_sim{i} = tmpsim(Australia_lat,Australia_lon);
end
%(6)比较逐月runoff数据
for i = 1:12
tmpreg = West_Siberia_obs{i};
West_Siberia_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = West_Siberia_sim{i};
West_Siberia_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = East_Siberia_obs{i};
East_Siberia_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = East_Siberia_sim{i};
East_Siberia_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Canada_obs{i};
Canada_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Canada_sim{i};
Canada_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Amazon_Basin_obs{i};
Amazon_Basin_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Amazon_Basin_sim{i};
Amazon_Basin_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Congo_obs{i};
Congo_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Congo_sim{i};
Congo_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = India_obs{i};
India_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = India_sim{i};
India_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = South_Africa_obs{i};
South_Africa_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = South_Africa_sim{i};
South_Africa_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Eastern_China_obs{i};
Eastern_China_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Eastern_China_sim{i};
Eastern_China_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Central_Europ_obs{i};
Central_Europ_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Central_Europ_sim{i};
Central_Europ_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Sahara_Arabla_obs{i};
Sahara_Arabla_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Sahara_Arabla_sim{i};
Sahara_Arabla_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Western_US_obs{i};
Western_US_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Western_US_sim{i};
Western_US_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Australia_obs{i};
Australia_obsmon(i) = mean(tmpreg(~isnan(tmpreg)));
tmpreg = Australia_sim{i};
Australia_simmon(i) = mean(tmpreg(~isnan(tmpreg)));
end
%(7) 画每个区域逐月runoff图,为方便画图,将此12个区域汇总起来
regset_50sim{1} = West_Siberia_simmon;
regset_50sim{2} = East_Siberia_simmon;
regset_50sim{3} = Canada_simmon;
regset_50sim{4} = Amazon_Basin_simmon;
regset_50sim{5} = Congo_simmon;
regset_50sim{6} = India_simmon;
regset_50sim{7} = South_Africa_simmon;
regset_50sim{8} = Eastern_China_simmon;
regset_50sim{9} = Central_Europ_simmon;
regset_50sim{10} = Sahara_Arabla_simmon;
regset_50sim{11} = Western_US_simmon;
regset_50sim{12} = Australia_simmon;
regset_obs{1} = West_Siberia_obsmon;
regset_obs{2} = East_Siberia_obsmon;
regset_obs{3} = Canada_obsmon;
regset_obs{4} = Amazon_Basin_obsmon;
regset_obs{5} = Congo_obsmon;
regset_obs{6} = India_obsmon;
regset_obs{7} = South_Africa_obsmon;
regset_obs{8} = Eastern_China_obsmon;
regset_obs{9} = Central_Europ_obsmon;
regset_obs{10} = Sahara_Arabla_obsmon;
regset_obs{11} = Western_US_obsmon;
regset_obs{12} = Australia_obsmon;
%% 画图篇
figure(1)
set(gcf,'Color','w');
for i = 1:3
subplot('Position',[0.1+0.25*(i-1) 0.78 0.22 0.17]);
plot(regset_obs{i},'k-.*','LineWidth',1)
hold on
plot(regset_45sim{i},'b-','LineWidth',2)
hold on
plot(regset_50sim{i},'r-','LineWidth',2)
set(gca,'FontSize',12,'LineWidth',1.5);
title(reginal_name{i});
xlim([0,13]);
xticks(1:13);
xticklabels({'J','F','M','A','M','J','J','A','S','O','N','D',''});
if i == 1
ylabel('runoff (mm/month)' )
legend('GRDC','CLM45','CLM50')
end
end
for i = 4:6
subplot('Position',[0.1+0.25*(i-4) 0.55 0.22 0.17]);
plot(regset_obs{i},'k-.*','LineWidth',1)
hold on
plot(regset_45sim{i},'b-','LineWidth',2)
hold on
plot(regset_50sim{i},'r-','LineWidth',2)
set(gca,'FontSize',12,'LineWidth',1.5);
title(reginal_name{i});
xlim([0,13]);
xticks(1:13);
xticklabels({'J','F','M','A','M','J','J','A','S','O','N','D',''});
if i == 4
ylabel('runoff (mm/month)' )
end
end
for i = 7:9
subplot('Position',[0.1+0.25*(i-7) 0.32 0.22 0.17]);
plot(regset_obs{i},'k-.*','LineWidth',1)
hold on
plot(regset_45sim{i},'b-','LineWidth',2)
hold on
plot(regset_50sim{i},'r-','LineWidth',2)
set(gca,'FontSize',12,'LineWidth',1.5);
title(reginal_name{i});
xlim([0,13]);
xticks(1:13);
xticklabels({'J','F','M','A','M','J','J','A','S','O','N','D',''});
if i == 7
ylabel('runoff (mm/month)' )
end
end
for i = 10:12
subplot('Position',[0.1+0.25*(i-10) 0.09 0.22 0.17]);
plot(regset_obs{i},'k-.*','LineWidth',1)
hold on
plot(regset_45sim{i},'b-','LineWidth',2)
hold on
plot(regset_50sim{i},'r-','LineWidth',2)
set(gca,'FontSize',12,'LineWidth',1.5);
title(reginal_name{i});
xlim([0,13]);
xticks(1:13);
xticklabels({'J','F','M','A','M','J','J','A','S','O','N','D',''});
if i == 10
ylabel('runoff (mm/month)' )
end
end
![比较](https://i-blog.csdnimg.cn/blog_migrate/841ecb28d6dda6679e29722aebce47ee.png)