MATLAB Examples

freeboard2thickness documentation

freeboard2thickness is part of Antarctic Mapping Tools for Matlab (Greene et al., 2017). Click here for a complete list of functions in AMT.

freeboard2thickness estimates ice thickness from surface height above sea level, assuming hyrostatic equilibrium.

Contents

Syntax

T = freeboard2thickness(F)
T = freeboard2thickness(...,'rhoi',iceDensity)
T = freeboard2thickness(...,'rhow',waterDensity)
T = freeboard2thickness(...,'rhos',snowDensity)
T = freeboard2thickness(...,'Ts',snowThickness)

Description

T = freeboard2thickness(F) estimates the ice thickness T in meters from height above the geoid F in meters.

T = freeboard2thickness(...,'rhoi',iceDensity) specifies ice density in kg/m^3. Default ice density is 917 kg/m^3.

T = freeboard2thickness(...,'rhow',waterDensity) specifies water density in kg/m^3. Default water density is 1027 kg/m^3.

T = freeboard2thickness(...,'rhos',snowDensity) specifies snow density in kg/m^3. Default snow density is 350 kg/m^3, however the default snow thickness is 0 m, so the snow density value will only affect calculations if snow thickness is specified.

T = freeboard2thickness(...,'Ts',snowThickness) specifies snow thickness in meters. Default snow thickness is 0 m.

Example 1:

The surface of an iceberg is 80 cm above sea level and it's pure ice. How thick is the iceberg?

T = freeboard2thickness(0.8)
T =
    7.4691

And you can go back the other way with the sister function:

F = thickness2freeboard(7.47)
F =
    0.8001

Example 2:

The surface of an iceberg is 80 cm above sea level, including 40 cm of snow which has a density of 300 kg/m^3. How thick is the iceberg?

T = freeboard2thickness(0.8,'Ts',0.4,'rhos',300)
T =
    4.8255

Example 3: When PIGs float

This example looks at a flowline down Pine Island Glacier. To get the coordinates of an actual flowline based on surface velocities you can use the flowline function, but for now let's just enter some manual points and plot them with a MODIS Mosaic of Antarctica background image. I'm densifying the points along the flowline to 100 m spacing with the pspath function:

[lat,lon] = pspath([-75.3585  -75.2041  -75.0089  -74.8032],...
                    [-98.0220  -99.4048 -100.7342 -101.5879],...
                    100); % (100 m spacing along track)

plotps(lat,lon,'b-','linewidth',2)
modismoaps
axis off

If you have the Bedmap2 plugin for AMT making elevation profiles along a line is pretty easy:

figure
bedmap2_profile(lat,lon);

This might seem a bit reduntant, but let's plot the Bedmap2 surface in red. We'll also need to plot it as a function of distance along the lat,lon path the same way bedmap2_profile plotted the distance above. So use pathdistps to get the cumulative distance along track:

% Get surface elevation from Bedmap2:
sfz = bedmap2_interp(lat,lon,'surface');

% Calculate distance along the flowline in kilometers:
d = pathdistps(lat,lon,'km');

% Plot the interpolated Bedmap2 surface as a thick red line:
plot(d,sfz,'r','linewidth',2)

Now we can estimate the base of the ice using the hydrostatic assumption. Start by assuming the ice shelf is made of pure ice with a density of 917 kg/m^3.

% Calculate ice thickness from freeboard:
thickness = freeboard2thickness(sfz);

% The base elevation is the surface minus thickness:
base = sfz-thickness;

% Plot the hydrostatic ice base as a thick red line:
plot(d,base,'r','linewidth',2)

% Find the index of the last finite surface elevation measurement:
ind = find(isfinite(base),1,'last');

% Place a text label:
text(d(ind),base(ind),' 0 m FAC','fontweight','bold','color','r')

That's not a fantastic match! As I recall, to get ice shelf base elevations, Bedmap2 used the hydrostatic assumption after accounting for some amount of firn air content in the ice column. We can do the same by setting the "snow" thickness to 20 m and set the density of the snow to 0 kg/m3. I think Ligtenberg's data show that firn air content is something like 20 m for PIG. So let's try this again with 20 m FAC:

thickness2 = freeboard2thickness(sfz,'Ts',20,'rhos',0);
base2 = sfz-thickness2;
plot(d,base2,'b','linewidth',2)
text(d(ind),base2(ind),' 20 m FAC','fontweight','bold','color','b')

Glacier thinning and grounding line retreat

bed = bedmap2_interp(lat,lon,'bed');
base = sfz - freeboard2thickness(sfz,'Ts',15,'rhos',0);

% find the index where the ice base lifts off the bed:
ind = find(base>=bed,1,'first') ;

% Plot a red circle at hydrostatic grounding line:
plot(d(ind),base(ind),'ro','markersize',10)

Here's a crude approximation of grounding line retreat as a function of glacier thinning. We'll loop through, finding the grounding line location just as above, but for an ever-thinning PIG:

% Steps of 10 cm surface elevation change from 0 to 40 m:
dh = 0:0.1:40;

% Preallocate grounding line location vector:
gl = nan(size(dh));

% Make a new profile figure
figure
bedmap2_profile(lat,lon);

% make a colormap:
colors = jet(length(dh));

% Loop through each thinning value:
for k = 1:length(dh);

   % Surface elevation with k amount of thinning:
   sfzi = sfz - dh(k);

   % Hydrostatic base elevation with thinning:
   basei = sfzi - freeboard2thickness(sfzi,'Ts',15,'rhos',0);

   % Plot surface and ice base elevations:
   plot(d,sfzi,'-','color',colors(k,:))
   plot(d,basei,'-','color',colors(k,:))

   % find the index where the ice base lifts off the bed:
   ind = find(basei>=bed,1,'first');

   % log the grounding line location:
   gl(k) = d(ind);
end

Now we can plot grounding line location as a function of surface elevation change.

figure
plot(gl,-dh)
axis tight
box off
xlabel({'grounding line location';'distance along flowline (km)'})
ylabel 'ice shelf surface elevation change (m) '

I should stress that the analysis above is mighty crude. I would not trust these exact numbers because we've completely neglected stress within the ice, grounding zone dynamics, bed uncertainty, ice thickness uncertainty, etc., but a basic principle of glaciology is shown: Starting from the top right corner of the plot, as the ice thins, the grounding line retreats. And sometimes, a little bit of thinning can cause a lot of grounding line retreat.

Citing AMT

If this function or any other part of Antarctic Mapping Tools is useful for you, please cite the paper that describes AMT.

Greene, C. A., Gwyther, D. E., & Blankenship, D. D. Antarctic Mapping Tools for Matlab. Computers & Geosciences. 104 (2017) pp.151-157. doi:10.1016/j.cageo.2016.08.003.

Author Info

This function was written by Chad A. Greene of the University of Texas Institute for Geophysics (UTIG), April 2017, for inclusion in the Antarctic Mapping Tools package.