scieee Open visual document viewer

MATLAB scripts for "On the influence of mineral dust on glacial albedo at Nevado Huascarán"

Weber, Austin M.

Abstract

MATLAB scripts used to investigate the ice core data and to produce the figures shown in "On the influence of mineral dust on glacial albedo at Nevado Huascarán" (submitted for peer-review, October 2025).

Full text

On he in luence o mine al dus on glacial albedo a Ne ado Huasca án Aus in M. Webe | By d Pola and Clima e Resea ch Cen e , Columbus, Ohio, USA No e on dependencies: This sc ip equi es unc ions om Toolboxes and File Exchange submissions ha a e no a pa o he base MATLAB language. You will need: • S a is ics and Machine Lea ning Toolbox • Cu e Fi ing Toolbox • Clima e Da a Toolbox (G eene e al., 2019) • Ca ego ical Colo s (Webe , 2025) De ine he pa h o he da a da a ile = 'dus -da a-agg ega ed-scnica .xlsx'; Load he da a colB_5y = eadDus Table(da a ile,'ColB_5y'); % [ug dus / g snow] summi B_5y = eadDus Table(da a ile,'Summi B_5y'); % [ug dus / g snow] colB_SNICAR = eadDus Table(da a ile,'ColB_SNICAR'); % [B oadband albedo] summi B_SNICAR = eadDus Table(da a ile,'Summi B_SNICAR'); % [B oadband albedo] Compa e o al dus eco ds age5y = colB_5y.S a Yea ; age5y_labels = {'1960-4','1965-9','1970-4','1975-9','1980-4','1985-9',... '1990-4','1995-9','2000-4','2005-9','2010-4','2015-9'}; colB_5y_ o alDus = sum(colB_5y{:,3:end},2); summi B_5y_ o alDus = sum(summi B_5y{:,3:end},2); lw=3; iledlayou (2,2,'TileSpacing','compac ') nex ile([1 2]) s1=s ai s(age5y,[colB_5y_ o alDus summi B_5y_ o alDus ],... 'LineWid h',lw,... 'Colo ','k'); s1(2).LineS yle=':'; ylim([0 5]) ylabel('To al Dus (µg/g)') x icks(1960:5:2015) xlim([1959 2016]) x icklabels(age5y_labels) lg=legend('Col','Summi ','Loca ion','no hwes '); lg.IconColumnWid h=15; 1 lg.Box='o '; upda eFon upda eG id nex ile() s ai s(age5y,colB_5y{:,3:end},... 'LineWid h',lw) x icks(1960:5:2015) xlim([1959 2016]) x icklabels(age5y_labels) ylabel('Col (µg/g)') lg2=legend('0.63-1.00 µm',... '1.00-2.52 µm',... '2.52-5.04 µm',... '5.04-10.07 µm',... '10.07-16.00 µm',... 'Loca ion','no hwes '); lg2.IconColumnWid h=12; lg2.Box='o '; upda eFon upda eG id upda eColo O de nex ile s ai s(age5y,summi B_5y{:,3:end},':',... 'LineWid h',lw) x icks(1960:5:2015) xlim([1959 2016]) x icklabels(age5y_labels) ylabel('Summi (µg/g)') upda eFon upda eG id upda eColo O de 2 Compa e o me (1960-1989) and la e (1990-2019) pe iods col = epma ({'Col'},[12 1]); summi = epma ({'Summi '},[12 1]); o me = epma (1960,[6 1]); la e = epma (1990,[6 1]); o me La e Table = a ay2 able([col; summi ],'Va iableNames',{'Si e'}); o me La e Table.To alDus = [colB_5y_ o alDus ; summi B_5y_ o alDus ]; o me La e Table.Pe iod = [ o me ; la e ; o me ; la e ]; %%% %%% Visualize %%% igu e g oupedSpacedBoxcha ( o me La e Table,'Si e','To alDus ','Pe iod'); colo o de (ca _colo s('colo blind')) y icks(0.5:0.5:5),y icklabels({'0.5','1.0','1.5','2.0','2.5','3.0','3.5','4.0','4.5' ,'5.0'}) ylabel('Concen a ion (µg/g)') lg=legend('1960-1989','1990-2019'); lg.Box='o '; lg.IconColumnWid h=14; upda eFon upda eG id box on axis squa e 3 %%% %%% E alua e s a is ical di e ence sco es %%% % Tes whe he he means a e s a is ically di e en h = es 2(colB_5y_ o alDus (1:6),colB_5y_ o alDus (7:12)); i h == 1 p in ('The null hypo hesis is ejec ed. The COL sample means a e s a is ically di e en .') else p in ('The null hypo hesis canno be ejec ed. The COL sample means a e no s a is ically di e en .') end The null hypo hesis is ejec ed. The COL sample means a e s a is ically di e en . % Tes whe he he medians a e s a is ically di e en p = anksum(colB_5y_ o alDus (1:6),colB_5y_ o alDus (7:12)); i p < 0.05 p in ('The COL sample medians a e s a is ically di e en .') else p in ('The COL sample medians a e no s a is ically di e en .') end The COL sample medians a e s a is ically di e en . % Tes whe he he means a e s a is ically di e en h = es 2(summi B_5y_ o alDus (1:6),summi B_5y_ o alDus (7:12)); 4 i h == 1 p in ('The null hypo hesis is ejec ed. The SUMMIT sample means a e s a is ically di e en .') else p in ('The null hypo hesis canno be ejec ed. The SUMMIT sample means a e no s a is ically di e en .') end The null hypo hesis is ejec ed. The SUMMIT sample means a e s a is ically di e en . % Tes whe he he medians a e s a is ically di e en p = anksum(summi B_5y_ o alDus (1:6),summi B_5y_ o alDus (7:12)); i p < 0.05 p in ('The SUMMIT sample medians a e s a is ically di e en .') else p in ('The SUMMIT sample medians a e no s a is ically di e en .') end The SUMMIT sample medians a e s a is ically di e en . SNICAR-AD 3 Modeled Albedos lw=2.5; x ick als = 1960:5:2015; yea s = colB_SNICAR.Sample; close igu e % Syn he ic da a o o ganizing he legend-- hese da apoin s will no be shown % on he cha syn hX = [1 2 3]; syn hY = [-1 -0.5 0]; plo (syn hX,syn hY,'k-','LineWid h',lw); hold on plo (syn hX,syn hY,'k:','LineWid h',lw); plo (syn hX,syn hY,'k','Ma ke ','o','Ma ke Size',8,'Ma ke FaceColo ','w','LineS yle' ,'none'); plo (syn hX,syn hY,'k','Ma ke ','diamond','Ma ke Size',8,'Ma ke FaceColo ','w','Line S yle','none'); hold on % Con ol ylim([0.714 0.734]) yline(0.732956,'- ','linewid h',lw) % Col da a col = plo (x ick als,colB_SNICAR{:,2:end},... 'Colo ','k',... 'LineWid h',lw); col(1).Ma ke ='o'; col(1).Ma ke Size=8; col(1).Ma ke FaceColo ='w'; col(2).Ma ke ='diamond'; col(2).Ma ke Size=8; col(2).Ma ke FaceColo ='w'; xlim([1958 2017]) x icks(1960:5:2015) x icklabels(yea s) 5 ylabel('B oadband Albedo') hold on % Summi da a summi = plo (x ick als,summi B_SNICAR{:,2:end},':',... 'Colo ','k',... 'LineWid h',lw); summi (1).Ma ke ='o'; summi (1).Ma ke Size=8; summi (1).Ma ke FaceColo ='w'; summi (2).Ma ke ='diamond'; summi (2).Ma ke Size=8; summi (2).Ma ke FaceColo ='w'; %ylim([0.8259 0.8306]); y icks(0.714 : 0.002 : 0.734) y icklabels({'0.714','0.716','0.718','0.720','0.722','0.724',... '0.726','0.728','0.730','0.732','0.734'}) lg = legend('Col','Summi ','Dus ','Dus + BC','Con ol',... 'Loca ion','no heas '); lg.IconColumnWid h=14; lg.Box='o '; upda eFon upda eG id Compa e o me (1960-1989) and la e (1990-2019) pe iods col = epma ({'Col'},[12 1]); summi = epma ({'Summi '},[12 1]); o me = epma (1960,[6 1]); la e = epma (1990,[6 1]); o me La e AlbedoTable = a ay2 able([col; summi ],'Va iableNames',{'Si e'}); 6 o me La e AlbedoTable.To alDus = [colB_SNICAR.Albedo; summi B_SNICAR.Albedo]; o me La e AlbedoTable.Pe iod = [ o me ; la e ; o me ; la e ]; %%% %%% Visualize %%% igu e g oupedSpacedBoxcha ( o me La e AlbedoTable,'Si e','To alDus ','Pe iod'); colo o de (ca _colo s('colo blind')) ylim([0.714 0.728]) y icks(0.714:0.002:0.728), y icklabels({'0.714','0.716','0.718',... '0.720','0.722','0.724','0.726','0.728'}) ylabel('B oadband Albedo') lg=legend('1960-1989','1990-2019',... 'Loca ion','no hwes '); lg.Box='o '; lg.IconColumnWid h=14; upda eFon upda eG id box on axis squa e %%% %%% E alua e s a is ical di e ence sco es %%% % Tes whe he he means a e s a is ically di e en 7 h = es 2(colB_SNICAR.Albedo(1:6),colB_SNICAR.Albedo(7:12)); i h == 1 p in ('The null hypo hesis is ejec ed. The COL sample means a e s a is ically di e en .') else p in ('The null hypo hesis canno be ejec ed. The COL sample means a e no s a is ically di e en .') end The null hypo hesis is ejec ed. The COL sample means a e s a is ically di e en . % Tes whe he he medians a e s a is ically di e en p = anksum(colB_SNICAR.Albedo(1:6),colB_SNICAR.Albedo(7:12)); i p < 0.05 p in ('The COL sample medians a e s a is ically di e en .') else p in ('The COL sample medians a e no s a is ically di e en .') end The COL sample medians a e s a is ically di e en . % Tes whe he he means a e s a is ically di e en h = es 2(summi B_SNICAR.Albedo(1:6),summi B_SNICAR.Albedo(7:12)); i h == 1 p in ('The null hypo hesis is ejec ed. The SUMMIT sample means a e s a is ically di e en .') else p in ('The null hypo hesis canno be ejec ed. The SUMMIT sample means a e no s a is ically di e en .') end The null hypo hesis is ejec ed. The SUMMIT sample means a e s a is ically di e en . % Tes whe he he medians a e s a is ically di e en p = anksum(summi B_SNICAR.Albedo(1:6),summi B_SNICAR.Albedo(7:12)); i p < 0.05 p in ('The SUMMIT sample medians a e s a is ically di e en .') else p in ('The SUMMIT sample medians a e no s a is ically di e en .') end The SUMMIT sample medians a e s a is ically di e en . Loga i hmic i ing %%% %%% COL %%% % Ge da a since 1960 y s = (1960:5:2015)'; col_albedos = colB_SNICAR.Albedo; % Fi model 8 [ _col,s_col] = i (y s,col_albedos,"log10") _col = Linea model Log10: _col(x) = a*log10(x) + b Coe icien s (wi h 95% con idence bounds): a = -0.4948 (-0.7263, -0.2633) b = 2.352 (1.588, 3.115) s_col = s uc wi h ields: sse: 0.00 squa e: 0.69 d e: 10.00 adj squa e: 0.66 mse: 0.00 col_logMdl = @(x) -0.4948*log10(x)+2.352; % Gene a e he loga i hmic cu e and con idence in e als x_ i = 1955:1:2105; [col_ci, col_ i ] = p edin ( _col, x_ i , 0.95); %%% %%% SUMMIT %%% summi _albedos = summi B_SNICAR.Albedo; [ _summi ,s_summi ] = i (y s,summi _albedos,"log10") _summi = Linea model Log10: _summi (x) = a*log10(x) + b Coe icien s (wi h 95% con idence bounds): a = -0.4491 (-0.7111, -0.1871) b = 2.204 (1.34, 3.068) s_summi = s uc wi h ields: sse: 0.00 squa e: 0.59 d e: 10.00 adj squa e: 0.55 mse: 0.00 summi _logMdl = @(x) -0.4491*log10(x)+2.204; [summi _ci, summi _ i ] = p edin ( _summi , x_ i , 0.95); %%% %%% VISUALIZE %%% scalingFac o = 1.2; close igu e('uni s','inches','posi ion',[1 1 7/scalingFac o 4/scalingFac o ]) % Col boundedline(x_ i ,col_ i ,[col_ i -col_ci(:,1), col_ci(:,2)-col_ i ],'- k','alpha','linewid h',3) ylabel('B oadband Albedo') hold on % Summi boundedline(x_ i ,summi _ i ,[summi _ i -summi _ci(:,1), summi _ci(:,2)- summi _ i ],':k','alpha','linewid h',3) 9