MATLAB Examples


Here we recreate some of the figures from Fretwell et. al's 2013 Cryosphere paper titled "Bedmap2: improved ice bed, surface and thickness datasets for Antarctica."



Figure 7

Figure 7 shows Bedmap2 surface elevations.

% Initialize figure:
figure('pos',[10 10 1090 940])

% Plot surface elevations:

% Create and format colorbar:
cb = colorbar;
set(cb,'pos',[.2 .15 .02 .25])
ylabel(cb,'Surface elevation (m asl)')
caxis([0 4000])

% Mimic gray-to-blue colormap:
rgbmap('light gray','dark blue')

% Place graticule:
antmap('lons',0:30:150,'lats',-[80 70 60],'color',[.5 .5 .5],'frame','off')

% Apply hillshading:
shadem([225 45],-18)

Figure 8

Figure 8 is pretty similar to Figure 7:

figure('pos',[10 10 1090 940])
cb = colorbar;
set(cb,'pos',[.2 .15 .02 .25])
ylabel(cb,'Ice thickness (m)')
rgbmap('grass green','yellow','red orange')
antmap('lons',0:30:150,'lats',-[80 70 60],'color',[.4 .4 .4],'frame','off')
shadem([225 45],-19)

Figure 9

This is the iconic Bedmap2 image:

figure('pos',[10 10 1090 940])
cb = colorbar('location','westoutside');
ylabel(cb,'Bed elevation (m asl)')
set(cb,'pos',[.2 .37 .02 .3])
caxis([-2000 2000])
antmap('lons',0:30:150,'lats',-[80 70 60],'linestyle',':','frame','off')
shadem([225 45],-18)

Figure 12

Figure 12 has a strange color scale that I will not mimic here. Note that for this one we have to access Bedmap2 data directly instead of using the bedmap2 plotting function. We'll set uncertainty to NaN over the open ocean.

[lat,lon,unc] = bedmap2_data('beduncertainty','res','5 km');
icemask = bedmap2_data('icemask','res','5 km');

figure('pos',[10 10 1090 940])
cb = colorbar('west');
set(cb,'pos',[.3 .15 .02 .25])
ylabel(cb,'Ice thickness (m)')
caxis([66 500])

Sea level rise

The Antarctic Ice Sheet will not dramatically collapse on the timescales of Hollywood box office hits, but that certainly doesn't stop us from wondering, What if it does? If we neglect glacial isostatic adjustment and a whole host of other important little details, we can estimate Antarctica's potential contribution to sea level rise using the relation given by Meier et al. (2007) whereby 1 Gt of water should lead to 1/362 mm change in sea level.

First, import data via bedmap2_data, then find how many meters of ice are above sea level for each pixel in the 6667 by 6667 data set, convert that to a mass of ice above sea level, then convert from mass to meters of sea level rise:

rho_ice = 917; % (kg/m^3) density of ice
SLR_m_per_GT = .001/362;  % (m/GT) sea level potential from Meier et al.

thck = bedmap2_data('thickness');
bed = bedmap2_data('bed');
sfz = bedmap2_data('surface');

% Obtain an array of surface elevations where ice is present and grounded:
GroundedIceSurface_m = sfz(thck>0 & (sfz-thck)==bed);

% Obtain an array of bed elevations above sea level where ice is present:
GroundedBedAboveSeaLevel_m = bed(thck>0 & bed>0);

% Total ice volume above sea level, convert to km3:
IceVolAboveSeaLevel_m3 = (sum(GroundedIceSurface_m) - ...

iceMassAboveSeaLevel = IceVolAboveSeaLevel_m3*rho_ice*1e-12; % GT

SeaLevelRisePotential_m = iceMassAboveSeaLevel*SLR_m_per_GT
SeaLevelRisePotential_m =


This value is in agreement with the 58 m reported by Fretwell et al. in the Cryosphere paper describing the Bedmap2 data set.

Author Info

This example was written by Chad Greene of the University of Texas at Austin's Institute for Geophysics.