MATLAB Examples

gravity_data documentation

The gravity_data function returns gridded Antarctic gravity anomaly data from Scheinert et al., 2016. See the Data Citation section below for information about this dataset.



Z = gravity_data(varname)
[lat,lon,Z] = bedmap2_data(...)
[x,y,Z] = gravity_data(...,'xy')
[...] = gravity_data(...,dataset)


Z = gravity_data(varname) returns a 667x667 gridded dataset specified by varname, which can be 'ellipsoidal height', 'orthometric height', 'free air', 'accuracy', or 'bouger anomaly'.

[lat,lon,Z] = bedmap2_data(...) returns 667x667 georeferenced grids corresponding to the gridded data field Z.

[x,y,Z] = gravity_data(...,'xy') returns 1D arrays x and y which are the polar stereographic (ps71) coordinates in meters corresponding to the gridded field.

[...] = gravity_data(...,dataset) specifies a dataset. Currently the only continent- wide gridded dataset available is 'scheinert2016', but some day this function may be updated to include more options.


To use the gravity_data function you'll need the data file. If the gravity_data function cannot find, it'll try to download the data automatically. If you prefer to download the data manually you can get it here:

Example 1: Figure 2 using Antarctic Mapping Tools:

This example recreates Figure 2 of Scheinert et al. 2016. Start by getting The Bouguer anomaly data:

[lat,lon,B] = gravity_data('bouguer');

You don't need Matlab's Mapping Toolbox to plot this dataset, but the Antarctic Mapping Tools (AMT) package on the Mathworks File Exchange site helps. Here we'll use the AMT function pcolorps to plot the gridded field:


To mimic the formatting of Scheinert et al.'s Figure 2, eliminate the extra white space with axis tight, put a grid or "graticule" in place, plot coast lines and grounding lines with the bedmap2 function if you have it, and set axis tight again to fix axis limits which may have changed when calling bedmap2:

axis tight
graticuleps([-85 -80 -70 -60 -50],-150:30:180,'color','k')
axis tight
box on

The anomalies in this dataset are relative to the value 0 mGal, so a divergent colormap is in order. Scheinert et al. seem to be using the GMT Haxby colormap, which you can plot quite easily with Kelly Kearney's cptcmap function if you wish. However, the luminosity profile of GMT Haxby is nonlinear, meaning color brightness changes at a different rate than the data color represents. A better choice is Jan Brewer's 'spectral' colormap, which has a more linear luminosity profile and diverges about its center value. You can plot the spectral colormap quite easily with Stephen Cobeldick's brewermap function:

cb = colorbar('south');
xlabel(cb,'Bouguer anomaly (mGal)')
caxis([-350 350])

Example 2: Figure 1 of Scheinert et al. 2016 (No toolboxes required)

If you don't want dependencies on the Mapping Toolbox or Antarctic Mapping Tools you can plot the data directly with imagesc. First, get the gridded free air gravity anomaly field:

[x,y,FA] = gravity_data('free air','xy');

Plot gridded data with imagesc, make NaNs transparent, and set to standard x,y orientation with axis xy:

h = imagesc(x,y,FA);
axis xy image off

Set colorbar, color axis limits, and colormap:

cb = colorbar('location','southoutside');
xlabel(cb,'free air gravity anomaly (mGal)')
caxis([-160 160])

If you do want to place a graticule and coast line you'll need Antarctic Mapping Tools:

hold on

Example 3: Figure S1 using Matlab's Mapping Toolbox and Antarctic Mapping Tools:

Here's Supplemental Figure S1:

[lat,lon,accuracy] = gravity_data('accuracy');
bedmap2 gl
bedmap2 coast
antmap('lats',[-85 -80 -70 -60 -50],'lons',0:30:150,'color','k')
cb = colorbar('location','southoutside');
xlabel(cb,'RMS propagated from a priori std deviations')
caxis([0.5 10.5])

Data citation

If you use this data, please cite the following:

Citation: Scheinert, M et al. (2016): Antarctic free-air and complete Bouguer gravity anomaly grid. doi:10.1594/PANGAEA.848168,

Supplement to: Scheinert, Mirko; Ferraccioli, Fausto; Schwabe, Joachim; Bell, Robin E; Studinger, Michael; Damaske, Detlef; Jokat, Wilfried; Aleshkova, Nadezhda D; Jordan, Tom A; Leitchenkov, German L; Blankenship, Donald D; Damiani, Theresa; Young, Duncan A; Cochran, James R; Richter, Thomas (2016): New Antarctic Gravity Anomaly Grid for Enhanced Geodetic and Geophysical Studies in Antarctica. Geophysical Research Letters, online first, doi:10.1002/2015GL067439

Abstract: Gravity surveying is challenging in Antarctica because of its hostile environment and inaccessibility. Nevertheless, many ground-based, airborne and shipborne gravity campaigns have been completed by the geophysical and geodetic communities since the 1980s. We present the first modern Antarctic-wide gravity data compilation derived from 13 million data points covering an area of 10 million km^2, which corresponds to 73% coverage of the continent. The remove-compute-restore technique was applied for gridding, which facilitated levelling of the different gravity datasets with respect to an Earth Gravity Model derived from satellite data alone. The resulting free-air and Bouguer gravity anomaly grids of 10 km resolution are publicly available. These grids will enable new high-resolution combined Earth Gravity Models to be derived and represent a major step forward towards solving the geodetic polar data gap problem. They provide a new tool to investigate continental-scale lithospheric structure and geological evolution of Antarctica.

Author Info:

The gravity_data function and supporting documentation were written by Chad A. Greene of the University of Texas at Austin's Institute for Geophysics (UTIG) in January of 2016. I did not generate to the dataset nor contribute to the GRL manuscript. If you use this function, please give credit where credit is due and cite Scheinert et al. as described above.