选取三个纬度带的14个典型分区进行区域 total runoff 泰勒图比较
% Alaska(59-72N,170-140W) Northwest_Canada(55-66.5N,125-100W)
% Eastern_Canada(50-60N,80-55W) Western_Siberia(55-66.5N,60-90E)
% Eastern_Siberia(50-66.5N,90-140E) Western_US(30-50N,130-105W)
% Central_US(30-50N,105-90W) Eastern_US(30-50N,90-70W)
% Europe(45-60N,10W-30E) Amazonia(10S-0,70-50W)
% Central_Africa(5S-5N,10-30E) Brazil(23.5-10S,65-30W)
% Sahel(6-16N,5W-15E) India(10-23.5N,70-90E)
% 【摘要】读取.grd文件;对不同分辨率数据网格插值;对不重合区域取公共交集区,
% 比较全球3个纬度带的total runoff的值(CLM45 .VS. CLM50)与UNH-GRDC。
cd 'D:\数据\UNH-GRDC\World Runoff Data\runoff_grd\'
%(1)读 .grd 文件
clc; clear; close all
flistobs = dir('D:\数据\UNH-GRDC\World Runoff Data\runoff_grd\*.grd');
%(2)计算多年平均值
delimiterIn = ' ';
headerlinesIn = 6;
temp = importdata(flistobs(1).name,delimiterIn,headerlinesIn) % 注意文件在文件夹中的序号
temp.data(temp.data == -9999) = nan;
cmprof_yr = flip(temp.data);
%(3)读经纬度坐标
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);
%(4)空间插值(最邻近插值法)
x = -180:0.5:179.5;
y = -55.5:0.5:82.5;
[lonobs,latobs] = meshgrid(x,y);
upcmprof_yrly = griddata(lonobs(:),latobs(:),cmprof_yr(:),lonsim,latsim,'nearest');
% (5)导入 clm45 模拟值
load('D:\数据\UNH-GRDC\World Runoff Data\runoff_grd\simres_clm45.mat')
%(6)确定全局情况下两者共同交集网格(利用Nan 与 非Nan 的计算结果为 Nan 确定交集区域)
commask = upcmprof_yrly - rofsim_yrly; % comaree中非nan的网格就是两者共有网格
commask(~isnan(commask)) = 1;
upcmprof_yrly = upcmprof_yrly.*commask;
rofsim_yrly = rofsim_yrly.*commask;
%(7)确定三个纬度带的14个典型分区
% Alaska(59-72N,170-140W) Northwest_Canada(55-66.5N,125-100W)
% Eastern_Canada(50-60N,80-55W) Western_Siberia(55-66.5N,60-90E)
% Eastern_Siberia(50-66.5N,90-140E) Western_US(30-50N,130-105W)
% Central_US(30-50N,105-90W) Eastern_US(30-50N,90-70W)
% Europe(45-60N,10W-30E) Amazonia(10S-0,70-50W)
% Central_Africa(5S-5N,10-30E) Brazil(23.5-10S,65-30W)
% Sahel(6-16N,5W-15E) India(10-23.5N,70-90E)
reginal_name = ...
{
['Alaska(59-72N,170-140W)'] ['Northwest_Canada(55-66.5N,125-100W)']...
['Eastern_Canada(50-60N,80-55W)'] ['Western_Siberia(55-66.5N,60-90E)']...
['Eastern_Siberia(50-66.5N,90-140E)'] ['Western_US(30-50N,130-105W)']...
['Central_US(30-50N,105-90W)'] ['Eastern_US(30-50N,90-70W)']...
['Europe(45-60N,10W-30E)'] ['Amazonia(10S-0,70-50W)']...
['Central_Africa(5S-5N,10-30E)'] ['Brazil(23.5-10S,65-30W)']...
['Sahel(6-16N,5W-15E)'] ['India(10-23.5N,70-90E)']};
dlon = 1.25;
dlat = 0.9375;
%(8)划定各个区域范围
Alaska_lat = [floor((59+90)/dlat):ceil((72+90)/dlat)];
Alaska_lon = [floor((180-170)/dlon):ceil((180-140)/dlon)];
Northwest_Canada_lat = [floor((55+90)/dlat):ceil((66.5+90)/dlat)];
Northwest_Canada_lon = [floor((180-125)/dlon):ceil((180-100)/dlon)];
Eastern_Canada_lat = [floor((50+90)/dlat):ceil((60+90)/dlat