Arctic Mapping Examples

This file shows a few examples of how to use Arctic Mapping Tools for Matlab.

Note: Arctic Mapping Tools is a light version of Antarctic Mapping Tools for Matlab (Greene et al., 2017), tweaked for north polar stereographic coordinates where 70N is the latitude of true scale and the central meridian is 45W. For MUCH better documentation, check out the Examples section of the Antarctic Mapping Tools page.


Coordinate transformations and other conversions

Get familiar with ll2psn and psn2ll because they'll be useful on the daily. And again, I recommend looking over the Antarctic Mapping Tools Getting Started page, which walks you through how this toolbox is structured.

Data analysis

These functions are often useful for analyzing geospatial data:

Base Maps

Arctic Mapping Tools currently has just a couple of functions for providing spatial context. They are:

Plotting Functions

The following functions are act just like standard Matlab plotting functions, but they accept geographic (lat,lon) units, perform coordinate transformations via ll2psn, and then plot in north polar stereographic units.

Other Map Elements

Maps aren't just about base maps with a few things plotted on them. You might also want things like grid lines and graphical reference scales. Here are some of the basics:

Putting it all together

Let's say you want to make a map of Greenland. Well that's easy, just type greenland. Here's how:


Perhaps you'd prefer the land areas to be filled in as a patch object. And shouldn't Greenland be green?


If you want to place markers at given geographic locations, use plotpsn. Below we'll put big red circles on three glaciers:

lat = [66.3, 80.75 69.167];
lon = [-38.2 -65.75 -49.833];


Notice, we fed lat,lon locations to the plotpsn function above, but the x,y axes show units on the order of 10^6. Those units are polar stereographic meters. Calling plotpsn is the same thing as transforming the units yourself with ll2psn, then using the standard Matlab plot function to plot in meters. Here's what I mean: Start by converting lat,lon to meters:

[x,y] = ll2psn(lat,lon)
x =
     308219.98    -355751.35    -192176.19
y =
   -2584810.40    -938989.65   -2272865.18

And now let's plot the three locations as big red x marks using the standard Matlab plot command:

hold on

We can label those three places with textpsn:

places = {'Helheim Glacier','Petermann Glacier','Jakobshavn Glacier'};


Let's say you want a grid of points centered on Jakobshavn Glacier. Make it 500 km wide and 800 km tall, with 10 km resolution:

[latgrid,longrid] = psngrid(69.167,-49.833,[500 800],10);

Let's zoom in on that grid with mapzoompsn, and include the 'n' option to place an inset map in the upper right corner of the map:

mapzoompsn(69.167,-49.833,'mapwidth',[500 800],'ne')

Place a graphical reference scale in the lower right hand corner of the map. And if you don't like the ugly x,y axes on the bottom and left hand side, remove them with axis off.

axis off

Changing the meridian

The standard meridian in the north polar stereographic projecion is 45 degrees W. But someone recently asked me how to plot with the meridian at 39 W. Generally, all the AMT functions will work most reliably using the standard projection, but here's how you can do it if you need. First, a depiction of the difference:


legend('meridian: 45\circW','meridian: 39\circW')

Following through with more data, we can repeat all the examples from above, but with the meridian at 39 W:


% Outline:

% A green patch:

% Three glaciers:
lat = [66.3, 80.75 69.167];
lon = [-38.2 -65.75 -49.833];

% Plot the glaciers as red circles:

% Instead of using plotpsn, you can convert coordinates yourself:
[x,y] = ll2psn(lat,lon,'meridian',-39);

% And with the converted coordinates, just use plain plot function:
hold on

% Label the three glaciers:
places = {'Helheim Glacier','Petermann Glacier','Jakobshavn Glacier'};

And if you have the BedMachine functions, you can plot bed elevations like this, doing a 300 km x 300 km grid around Petermann. (Below I'm using a cmocean colormap).

% Load BedMachine data surrounding Petermann Gl:
[bed,Lat,Lon] = bedmachine_data('bed',80.75,-65.75,'buffer',150,'geo');

pcolorpsn(Lat,Lon,bed,'meridian',-39) % plots bed elev.

axis tight                    % gets rid of white space
greenland('k','meridian',-39) % plots black grounding line
cb = colorbar;
ylabel(cb,'bed elevation (m wrt geoid)')
cmocean('topo','pivot')       % optional colormap
shadem(3)                     % applies hillshade

xlabel 'easting (m')
ylabel 'easting (m')

Background image

Sometimes you just want a nice bacground image to plot things atop. I like the MODIS Mosaic of Greenland, which places a grayscale image object (not tied to the current colormap) on the bottom of the stack of whatever objects you're plotting. I especially like the 'contrast','white' option, which is good when you want to overlay semitransparent pcolor data like ice speed or whatnot.

Here we zoom to an area of interest before calling modismog because otherwise the entire dataset gets loaded and plotted.


Citing AMT

If the Arctic Mapping Tools are 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 page was written by Chad Greene of the University of Texas Institute for Geophysics (UTIG), June 2017. Feel free to contact me if you have any questions.