全球范围内12个典型区域提取(total runoff)

代码内容包括:

  • 空间插值griddata函数的使用
  • 用mask矩阵提取全球范围的12个典型区域提取
  • 替换xticklabels
% 【摘要】读取.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-070-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-070-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

比较

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨海深

感谢您的支持和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值