Skip to content

Commit e8d759d

Browse files
Merge pull request BrodiePearson#21 from BrodiePearson/Add-metadata-plotting
Add metadata plotting
2 parents fbfc694 + 302fb23 commit e8d759d

14 files changed

+1539
-18
lines changed

Plotting_code_and_data/Fig9_03_SST/Plot_Figure/Example_plotting_from_metadata.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,4 @@
5959

6060
[latitude, longitude] = meshgrid(lat,lon);
6161

62-
stipplem(latitude,longitude,~logical(hatch'))
62+
stipplem(latitude,longitude,(~logical(hatch') & multimodel_change_CMIP'~=0))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
%% IPCC AR6 Chapter 9 Figure 9.3 (SST change maps)
2+
%
3+
% Code used to plot the processed CMIP6 data created by Calculate_*.m
4+
% Using IPCC-formatted metadata (rather than direct CMIP output)
5+
%
6+
% Written by Brodie Pearson
7+
8+
clear all
9+
10+
hist_change_start_year = 1950;
11+
hist_change_end_year = 2014;
12+
SSP_change_start_year = 2005;
13+
SSP_change_end_year = 2100;
14+
HRSSP_change_start_year = 2005;
15+
HRSSP_change_end_year = 2050;
16+
bias_start_year = 1995;
17+
bias_end_year = 2014;
18+
19+
addpath ../../../Functions/
20+
21+
fontsize = 15;
22+
23+
%% Plot mean SST averaged over past few decades
24+
25+
color_bar = IPCC_Get_Colorbar('temperature_nd', 21, false);
26+
27+
lims = [-2 30];
28+
29+
ncfilename = '../Plotted_Data/Fig9-3b_data.nc';
30+
SST_OBS = ncread(ncfilename, 'SST')';
31+
lat = ncread(ncfilename, 'Latitude');
32+
lon = ncread(ncfilename, 'Longitude');
33+
34+
IPCC_Plot_Map(SST_OBS',lat,lon,lims, ...
35+
color_bar,"Observation-based Climatology (HadISST; "+bias_start_year+"-"+bias_end_year+")",...
36+
1,fontsize, true, 'Sea Surface Temperature (SST; ^oC)')
37+
38+
% print(gcf,'../PNGs/Observed_SST_colorbar_from_metadata.png','-dpng','-r1000', '-painters');
39+
% close(1);
40+
41+
42+
%% Load SSP585 data & Create a plot of future change under SSP585
43+
44+
lim_max = 0.8;
45+
46+
color_bar1 = IPCC_Get_Colorbar('temperature_nd', 21, false);
47+
color_bar2 = IPCC_Get_Colorbar('temperature_d', 21, false);
48+
color_bar = [color_bar2(3:11,:); color_bar1];
49+
50+
lims = [-0.4 1]*lim_max;
51+
52+
53+
%% Plot Observed modern SST rate of change
54+
55+
ncfilename = '../Plotted_Data/Fig9-3c_data.nc';
56+
SST_change_OBS = ncread(ncfilename, 'SST_ChangeRate')';
57+
lat = ncread(ncfilename, 'Latitude');
58+
lon = ncread(ncfilename, 'Longitude');
59+
60+
IPCC_Plot_Map(SST_change_OBS' ...
61+
,lat,lon,lims, color_bar, ...
62+
"Observation-based rate of change ("+hist_change_start_year+"-"+hist_change_end_year+")",2, ...
63+
fontsize,false)
64+
65+
% print(gcf,'../PNGs/Observed_SST_change_labels_from_metadata.png','-dpng','-r1000', '-painters');
66+
%
67+
% close(2)
68+
69+
%% Plot CMIP modern SST rate of change
70+
71+
ncfilename = '../Plotted_Data/Fig9-3f_data.nc';
72+
multimodel_change_CMIP = ncread(ncfilename, 'SST_ChangeRate');
73+
lat = ncread(ncfilename, 'Latitude');
74+
lon = ncread(ncfilename, 'Longitude');
75+
hatch = ncread(ncfilename, 'Mask');
76+
77+
IPCC_Plot_Map(multimodel_change_CMIP ...
78+
,lat,lon,lims, color_bar, ...
79+
"CMIP rate of change ("+hist_change_start_year+"-"+hist_change_end_year+")",3, ...
80+
fontsize,false,'')
81+
82+
[latitude, longitude] = meshgrid(lat,lon);
83+
84+
stipplem(latitude,longitude,(~logical(hatch') & ...
85+
~isnan(multimodel_change_CMIP') & multimodel_change_CMIP'~=0))
86+
87+
%print(gcf,'../PNGs/CMIP_SST_changelabel_from_metadata.png','-dpng','-r1000', '-painters');
88+
89+
% close(1)
90+
91+
%% Plot HighResMIP modern SST rate of change
92+
93+
ncfilename = '../Plotted_Data/Fig9-3i_data.nc';
94+
multimodel_change_HRMIP = ncread(ncfilename, 'SST_ChangeRate');
95+
lat = ncread(ncfilename, 'Latitude');
96+
lon = ncread(ncfilename, 'Longitude');
97+
hatch = ncread(ncfilename, 'Mask');
98+
99+
IPCC_Plot_Map(multimodel_change_HRMIP ...
100+
,lat,lon,lims, color_bar, ...
101+
"HighResMIP rate of change ("+hist_change_start_year+"-"+hist_change_end_year+")",4, ...
102+
fontsize,false,'')
103+
104+
[latitude, longitude] = meshgrid(lat,lon);
105+
106+
stipplem(latitude,longitude,(~logical(hatch') & ...
107+
~isnan(multimodel_change_HRMIP') & multimodel_change_HRMIP'~=0))
108+
%
109+
% print(gcf,'../PNGs/HRMIP_SST_changelabel_from_metadata.png','-dpng','-r1000', '-painters');
110+
% close(1)
111+
112+
%% Plot SSP585 predicted SST rate of change
113+
114+
ncfilename = '../Plotted_Data/Fig9-3d_data.nc';
115+
multimodel_change_SSP585 = ncread(ncfilename, 'SST_ChangeRate');
116+
lat = ncread(ncfilename, 'Latitude');
117+
lon = ncread(ncfilename, 'Longitude');
118+
hatch = ncread(ncfilename, 'Mask');
119+
120+
IPCC_Plot_Map(multimodel_change_SSP585 ...
121+
,lat,lon,lims,color_bar, ...
122+
"SSP5-8.5 rate of change ("+ ...
123+
SSP_change_start_year+"-"+SSP_change_end_year+")",5, ...
124+
fontsize, true, 'SST Rate of Change (^oC/decade)')
125+
126+
[latitude, longitude] = meshgrid(lat,lon);
127+
128+
stipplem(latitude,longitude,(~logical(hatch') & ...
129+
~isnan(multimodel_change_SSP585') & multimodel_change_SSP585'~=0))
130+
131+
% print(gcf,'../PNGs/SSP585_SST_changelabel_from_metadata.png','-dpng','-r1000', '-painters');
132+
% close(1)
133+
134+
135+
%% Plot HighResMIP SSP585 predicted SST rate of change
136+
137+
ncfilename = '../Plotted_Data/Fig9-3j_data.nc';
138+
multimodel_change_HRSSP = ncread(ncfilename, 'SST_ChangeRate');
139+
lat = ncread(ncfilename, 'Latitude');
140+
lon = ncread(ncfilename, 'Longitude');
141+
hatch = ncread(ncfilename, 'Mask');
142+
143+
IPCC_Plot_Map(multimodel_change_HRSSP ...
144+
,lat,lon,lims,color_bar, ...
145+
"HighResMIP SSP5-8.5 rate of change (" ...
146+
+HRSSP_change_start_year+"-"+HRSSP_change_end_year+")",6, ...
147+
fontsize, true, 'SST Rate of Change (^oC/decade)')
148+
149+
[latitude, longitude] = meshgrid(lat,lon);
150+
151+
stipplem(latitude,longitude,(~logical(hatch') & ...
152+
~isnan(multimodel_change_HRSSP') & multimodel_change_HRSSP'~=0))
153+
154+
% print(gcf,'../PNGs/HRSSP_SST_changelabel_from_metadata.png','-dpng','-r1000', '-painters');
155+
% close(1)
156+
157+
158+
%% Maps of present model biases realtive to map of present SST (Fig 1)
159+
160+
color_bar = IPCC_Get_Colorbar('chem_d', 21, true);
161+
162+
lim_max = 3;
163+
lim_min = -lim_max;
164+
lims = [lim_min lim_max];
165+
166+
167+
%% Plot CMIP SST bias vs. observations
168+
169+
ncfilename = '../Plotted_Data/Fig9-3e_data.nc';
170+
multimodel_CMIP_bias = ncread(ncfilename, 'SST_Bias');
171+
lat = ncread(ncfilename, 'Latitude');
172+
lon = ncread(ncfilename, 'Longitude');
173+
hatch = ncread(ncfilename, 'Mask');
174+
175+
% Averaging Index is shifted by 1 for biases
176+
IPCC_Plot_Map(multimodel_CMIP_bias ...
177+
,lat,lon,lims,color_bar, ...
178+
"CMIP Bias ("+bias_start_year+"-"+bias_end_year+")",7, ...
179+
fontsize,true,'Model Bias (^oC)')
180+
181+
[latitude, longitude] = meshgrid(lat,lon);
182+
183+
stipplem(latitude,longitude,(~logical(hatch') & ...
184+
~isnan(multimodel_CMIP_bias') & multimodel_CMIP_bias'~=0))
185+
186+
% print(gcf,'../PNGs/CMIP_SST_biaslabel_from_metadata.png','-dpng','-r1000', '-painters');
187+
%
188+
% close(1)
189+
190+
%% Plot HRMIP SST bias vs. observations
191+
192+
ncfilename = '../Plotted_Data/Fig9-3h_data.nc';
193+
multimodel_HRMIP_bias = ncread(ncfilename, 'SST_Bias');
194+
lat = ncread(ncfilename, 'Latitude');
195+
lon = ncread(ncfilename, 'Longitude');
196+
hatch = ncread(ncfilename, 'Mask');
197+
198+
IPCC_Plot_Map(multimodel_HRMIP_bias ...
199+
,lat,lon,lims,color_bar, ...
200+
"HighResMIP Bias ("+bias_start_year+"-"+bias_end_year+")",8, ...
201+
fontsize, true, 'Model Bias (^oC)')
202+
203+
[latitude, longitude] = meshgrid(lat,lon);
204+
205+
stipplem(latitude,longitude,(~logical(hatch') & ...
206+
~isnan(multimodel_HRMIP_bias') & multimodel_HRMIP_bias'~=0))
207+
%
208+
% print(gcf,'../PNGs/HighResMIP_SST_biaslabel_from_metadata.png','-dpng','-r1000', '-painters');
209+
% close(1)
210+
211+
%% Plot rate of change for CMIP 2005-2050 and for low- & high-res HighResMIP
212+
213+
ncfilename = '../Plotted_Data/Fig9-3g_data.nc';
214+
multimodel_2050_change_SSP585 = ncread(ncfilename, 'SST_ChangeRate');
215+
lat = ncread(ncfilename, 'Latitude');
216+
lon = ncread(ncfilename, 'Longitude');
217+
hatch = ncread(ncfilename, 'Mask');
218+
219+
color_bar1 = IPCC_Get_Colorbar('temperature_nd', 21, false);
220+
color_bar2 = IPCC_Get_Colorbar('temperature_d', 21, false);
221+
color_bar = [color_bar2(3:11,:); color_bar1];
222+
223+
lim_max = 0.8;
224+
lims = [-0.4 1]*lim_max;
225+
226+
IPCC_Plot_Map(multimodel_2050_change_SSP585 ...
227+
,lat,lon,lims, color_bar, ...
228+
"SSP5-8.5 rate of change (2005-2050)",9, ...
229+
fontsize,false,'')
230+
231+
[latitude, longitude] = meshgrid(lat,lon);
232+
233+
stipplem(latitude,longitude,(~logical(hatch') & ...
234+
~isnan(multimodel_2050_change_SSP585') & multimodel_2050_change_SSP585'~=0))
235+
236+
% print(gcf,'../PNGs/CMIP_2050_SST_changelabel_from_metadata.png','-dpng','-r1000', '-painters');
237+
% close(1)

0 commit comments

Comments
 (0)