MATLAB Examples

seaice documentation

This function plots daily Antarctic sea ice concentration from Nimbus-7 SMMR and DMSP SSM/I-SSMIS Passive Microwave Data or Near-Real-Time DMSP SSMIS Daily Polar Gridded Sea Ice Concentrations.

Data are described here and here.

Contents

Syntax

seaice
seaice(Date)
seaice(...,'xy')
seaice(...,'xy','km')
seaice(...,'label',LabelLocation)
ci = seaice(...,'noplot')
[ci,lat,lon,x,y,h] = seaice(...)

Description

seaice plots a the most recent available sea ice concentration map.

seaice(Date) specifies a date from October 26, 1978 to present. Date can be entered as a string in just about any common format for writing dates, or in Matlab's datenum format. Any date after January 1 of the current year will use Near-Real-Time data. This may potentially cause errors in the first week of the year.

seaice(...,'xy') plots in polar stereographic (x,y) coordinates. By default if you do not have Matlab's Mapping Toolbox, the 'xy' option is selected automatically. If you do have Matlab's Mapping Toolbox but you'd still like to plot your data as meters "eastings and northings", include the 'xy' tag.

seaice(...,'xy','km') plots in polar stereographic kilometers.

seaice(...,'label',LabelLocation) specifies a location for date label. Location must be specified in cardinal coordinates (e.g., 'north' for top) or 'none' to place no label. Default LabelLocation is 'southwest', meaning the lower left corner of the map.

ci = seaice(...,'noplot') does not plot any data, but returns a gridded sea ice concentration. This may be useful for populating a 3D matrix of sea ice concentrations.

[ci,lat,lon,x,y,h] = seaice(...) returns a whole slew of good information, including lat/lon grids, handle h of plotted object(s), and x,y grids. Note: The x,y grids returned by this function are ps71 referenced to the WGS84 ellipsoid--The data published by NSIDC are equally spaced in ps70 on the Hughes ellipsoid, but ps71/WGS84 grid is returned here to match SCAR and AMT standards.

Requirements

This function requires the Antarctic Mapping Tools package available on the Mathworks File Exchange site. Matlab's Mapping Toolbox is not required.

Example 1: Starting simple

To get the most recent daily sea ice concentration field, just type seaice:

seaice

Example 2: Specify a date

To specify a date, write the date in just about any common way one might write a date, or use Matlab's datenum format. For context, we can also plot ice shelves and grounded areas as patches using the bedmap2 function:

figure
seaice('may 27, 1984')
cb = colorbar;
ylabel(cb,'sea ice concentration (%)')
cmocean 'ice'
bedmap2('patchshelves')
bedmap2('patchgl')

Example 3: Get data without plotting, then animate

You may want a 3D data set to explore mean or variance of sea ice concentrations through time. To simply get sea ice concentration data without plotting all the data, specify 'noplot'. Downloading data takes about 3 seconds per snapshot with my high speed internet connection. To speed up the time it takes to run this example I'll limit solutions to one snapshot per week for about four months. Start by defining a list of interesting dates:

t = datenum('oct 17, 1993'):7:datenum('february 15, 1994');

To populate a 3D dataset, loop the seaice function, but for speed, start by preallocating a blank 3D matrix matching the dimensions of the final data set. Sea ice concentration data is always returned as 332 x 316, so the 3D matrix will have these dimensions:

ci = NaN(332,316,length(t));

Later we'll want x and y values corresponding to each 25 km pixel of the sea ice concentration data set, so the first time we run seaice we can get that x,y grid:

[ci(:,:,1),~,~,x,y] = seaice(t(1),'noplot');

Populate the rest of the 3D data matrix. This loop will probably take about a minute:

for n = 2:length(t)
    ci(:,:,n) = seaice(t(n),'noplot');
end

What was the average sea ice concentration from October 17, 1993 to February 15 of the following year?

figure
p=pcolor(x/1000,y/1000,nanmean(ci,3));
shading interp
axis image off
cmocean ice
bedmap2('patchshelves','xy','km')
bedmap2('patchgl','xy','km')

And looping through the daily solutions gives something that looks like this:

Citing these datasets

If you use near-real-time data, cite Maslanik, J. and J. Stroeve. 1999, updated daily. Near-Real-Time DMSP SSMIS Daily Polar Gridded Sea Ice Concentrations. [indicate subset used]. Boulder, Colorado USA: NASA DAAC at the National Snow and Ice Data Center.

For finalized data, cite Cavalieri, D., C. Parkinson, P. Gloersen, and H. J. Zwally. 1996, updated yearly. Sea Ice Concentrations from Nimbus-7 SMMR and DMSP SSM/I-SSMIS Passive Microwave Data. [indicate subset used]. Boulder, Colorado USA: NASA DAAC at the National Snow and Ice Data Center.

Author Info

This function was written by Chad A. Greene of the University of Texas Institute for Geophysics (UTIG). March 2015. Updated June 2016.