MATLAB Examples

ibcso_interp documentation

The ibcso_interp function interpolates bed elevations from the International Bathymetric Chart of the Southern Ocean (IBCSO) digital bathymetric model. IBCSO data are described in full on the IBCSO website and the GRL paper describing the IBSCO dataset is here.


Description of files in the IBCSO Toolbox:

  • ibcso_install simply downloads and unzips IBCSO data.
  • ibcso_data returns native-resolution gridded IBCSO DEM bathymetry or gridded distance-to-nearest-measurement.
  • ibcso_interp interpolates to any arbitrary point(s) given by lat,lon or x,y.
  • ibcso plots the official IBCSO RGB image, the IBCSO DEM as a color-scaled pcolor or contour plot, or distance-to-nearest measurement.


zi = ibcso_interp(lati,loni)
zi = ibcso_interp(xi,yi)
zi = ibcso_interp(...,method)
zi = ibcso_interp(...,'wgs84')


zi = ibcso_interp(lati,loni) interpolates the IBCSO dem to georeferenced location(s) lati,loni. lati and loni can be scalar, vector, or 2D grid. Dimensions of lati and and loni must match.

zi = ibcso_interp(xi,yi) interpolates the IBCSO dem to polar stereographic (true lat 71°S) eastings and northings xi,yi, where xi and yi are in meters and can be scalar, vector, or 2D grid. Dimensions of xi and and yi must match. If any element in the first input of ibcso_interp has an absolute value exceeding 90, polar stereographic cartesian coordinates are assumed.

zi = ibcso_interp(...,method) specifies a 2D interpolation method. See interp2 for details. Default interpolation method is 'linear'.

zi = ibcso_interp(...,'wgs84') returns elevations relative to the WGS84 ellipsoid. By default, elevations are relative mean sea surface elevation, which is very close the GL04C geoid. The 'wgs84' option uses the Bedmap2 Toolbox to perform conversion.


This function requires

  • Antarctic Mapping Tools found here.
  • Matlab's Mapping Toolbox.


To install the IBCSO dataset, simply run ibcso_install.

Example 1: A line through the center of the continent, 750 meter spacing:

Here's a line through the center of the continent, defined by polar stereographic eastings and northings:

x = -3e6:750:3e6;
y = zeros(size(x));

To see that line in context, we'll plot it over an inferred Bedmap2 grounding line in polar stereographic coordinates:


A bed elevation profile along the blue line can be found by:

z = ibcso_interp(x,y);

We can plot that:


Example 2: Geo coordinates and cubic interpolation:

Using x,y from Example 1 above, get the same profile using georeferenced coordinates and perform cubic interpolation to get the bed elevation:

[lat,lon] = ps2ll(x,y);
z2 = ibcso_interp(lat,lon,'cubic');

We can plot that too:

hold on
legend('xy linear','geo cubic')

Not surprisingly, they're very close.


Example 3: Compare IBCSO to the Bedmap2 grid:

For direct comparson, we can load the lat,lon grid of Bedmap2 and interpolate IBCSO data to Bedmap2's grid. We'll use a 5 km resolution dataset to keep computation time reasonable:

[lat,lon,bedmap2_z] = bedmap2_data('bed','res','5 km');
ibcso_z = ibcso_interp(lat,lon); % (give it a few seconds)

We can now plot the difference between IBCSO and Bedmap2. I'm using brewermap to get that real nice red-white-blue color scale:

cb = colorbar;
ylabel(cb,'IBCSO - Bedmap2 (m)')
caxis([-500 500])

Citing IBCSO data

If you use IBCSO data, please cite the following:

Arndt, J. E., et al. (2013), The International Bathymetric Chart of the Southern Ocean (IBCSO) Version 1.0-A new bathymetric compilation covering circum-Antarctic waters, Geophys. Res. Lett., 40, 3111-3117, doi:10.1002/grl.50413.

Author Info

This function was written by Chad A. Greene of the Institute for Geophysics at the University of Texas in Austin July 2015. Updated September 2015 to allow conversion to the WGS84 ellipsoid.