A Mapping package for Matlab (2025)

A Mapping package for Matlab (1)

You have collected your data, loaded it into Matlab , analyzed everything to death, and now you want to make a simple map showing how it relates to the world.

But you can't.

Instead you have to figure out how to save all your data, and then read it intoanother program (like, for example GMT ),and then spend all that extra timefiguring out why it doesn't give you whatyou expected it would...

No more!

Announcing M_Map v1.3e!

M_Map is a set of mapping tools written for Matlab v5.These include:
  1. Routines to project data in 18 different spherical projections (and determineinverse mappings)
  2. A grid generation routine to make nice axes with limits either in lat/long termsor in planar X/Y terms.
  3. A coastline database (with 1/4 degree resolution)
  4. A global elevation database (1 degree resolution)
  5. Hooks into freely available high-resolution coastline and bathymetry databases

M_Map is now use at almost 1800 locations around the world!

A Mapping package for Matlab (2)

New in release 1.2 are

  1. Built-in functions for drawing lines, text, and quiver plots in long/lat coords
  2. Built-in functions for contouring data (filled and line contours) in long/lat coords
  3. Hooks into a 5-minute global bathymetry ( TerrainBase ) available from the net.
  4. Fancy quiver plots, thanks to E. Firing (see example 8)
  5. Gall-Peters projection (handy for large tropical areas)
  6. Fancy outline boxes! (see example 2 and example 6)
New in release 1.3 are
  1. High-resolution coastlines! (through hooks into the nested set of coastlinesat different resolutions making up the Global Self-consistent HierarchicalHigh-resolution Shoreline Database (GSHHS) used by GMT (see example 9)
  2. Instructions on how to use the new Sandwell and Smith bathymetry
  3. Hammer-Aitoff (example 11) and Mollweide projections (example 4)
New in release 1.3d are
  1. m_patch primitive
  2. m_scale primitive to allow drawing of maps at a required scale
  3. True elliptical UTM projection (thanks to P. Lemmond)
  4. m_track for drawing tracklines with time/date annotation (thanks to P. Lemmond)(example 10)
  5. m_plotbndry - hooks into an online database of political boundaries (Thanks to M. Mann)
New in release 1.3e are
  1. m_range_rings primitive to draw range rings (just great for nuclear weapon destructionradii and seismic travel-time data - see example 11).
  2. Extended usefullness of m_ungrid to allow removal of any specific plot element bya command line option.

How to get M_Map

You can download the M_Map toolbox either as a gzipped tar-file , or as zip archive (Click on these links to download). Both arearound 250k in size. Once you have this archive, read the Getting started section of the User's guide tocorrectly install this toolbox, and sections 9and 10.1 to install TerrainBase and GSHHSrespectively.

A number of examples have been given to highlight thevarious capabilities of M_Map.

User's guide

  1. Getting started
  2. Specifying projections
    1. Azimuthal projections
    2. Cylindrical and Pseudo-cylindrical projections
    3. Conic projections
    4. Miscellaneous global projections
    5. Yeah, but which projection should I use?
    6. Map scales A Mapping package for Matlab (3)
  3. Coastlines and Bathymetry
    1. Coastline options
    2. Topography/Bathymetry options
  4. Customizing the axes
    1. Grid lines and labels
    2. Titles and x/ylabels
  5. Adding your own data
    1. Drawing lines, text, arrows, patches and contours
    2. Drawing tracklines A Mapping package for Matlab (4)
    3. Drawing range rings A Mapping package for Matlab (5)
    4. Converting longitude/latitude to projection coordinates
    5. Converting projection coordinates to longitude/latitude
  6. More complex plots
  7. Removing data from a plotA Mapping package for Matlab (6)
  8. Adding your own coastlines
    1. DCW political boundaries A Mapping package for Matlab (7)
  9. Adding your own topography/bathymetry
    1. Sandwell and Smith Bathymetry
  10. Using TerrainBase 5-minute global bathymetry/topography
  11. Using the GSHHS high-resolution coastline database
    1. Installing GSHHS
    2. Using GSHHS effectively
  12. M_Map toolbox contents and description
  13. Known Problems and Bugs
  14. Changes since last release A Mapping package for Matlab (8)
For information, help, suggestions, or bug reports, contact Rich Pawlowicz , ( rich@ocgy.ubc.ca )

Examples

1. M_Map Logo

m_proj('ortho','lat',48','long',-123');m_coast('patch','r');m_grid('linest','-','xticklabels',[],'yticklabels',[]);patch(.55*[-1 1 1 -1],.25*[-1 -1 1 1]-.55,'w');text(0,-.55,'M\_Map','fontsize',25,'color','b',... 'vertical','middle','horizontal','center');set(gcf,'units','inches','position',[2 2 3 3]);set(gcf,'paperposition',[3 3 3 3]);
A Mapping package for Matlab (9)

2. Lambert Conformal Conic projection of North American Topography

m_proj('lambert','long',[-160 -40],'lat',[30 80]);m_coast('patch',[1 .85 .7]);m_elev('contourf',[500:500:6000]);m_grid('box','fancy','tickdir','in');colormap(flipud(copper));
A Mapping package for Matlab (10)

3. Stereographic projection of North Polar regions

% Note that coastline is drawn OVER the grid because of the order in which% the two routines are calledm_proj('stereographic','lat',90,'long',30,'radius',25);m_elev('contour',[-3500:1000:-500],'edgecolor','b');m_grid('xtick',12,'tickdir','out','ytick',[70 80],'linest','-');m_coast('patch',[.7 .7 .7],'edgecolor','r');
A Mapping package for Matlab (11)

4. Two Interrupted Projections of the World's Oceans

subplot(211);Slongs=[-100 0;-75 25;-5 45; 25 145;45 100;145 295;100 290];Slats= [ 8 80;-80 8; 8 80;-80 8; 8 80;-80 0; 0 80];for l=1:7, m_proj('sinusoidal','long',Slongs(l,:),'lat',Slats(l,:)); m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],... 'ytick',[-80:20:80],'yticklabels',[],'linest','-','color',[.9 .9 .9]); m_coast('patch','g');end;xlabel('Interrupted Sinusoidal Projection of World Oceans');% In order to see all the maps we must undo the axis limits set by m_grid calls:set(gca,'xlimmode','auto','ylimmode','auto');subplot(212);Slongs=[-100 43;-75 20; 20 145;43 100;145 295;100 295];Slats= [ 0 90;-90 0;-90 0; 0 90;-90 0; 0 90];for l=1:6, m_proj('mollweide','long',Slongs(l,:),'lat',Slats(l,:)); m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],... 'ytick',[-80:20:80],'yticklabels',[],'linest','-','color','k'); m_coast('patch',[.6 .6 .6]);end;xlabel('Interrupted Mollweide Projection of World Oceans');set(gca,'xlimmode','auto','ylimmode','auto');
A Mapping package for Matlab (12)

5. Oblique Mercator Projection with quiver and contour data

%% Nice looking data[lon,lat]=meshgrid([-136:2:-114],[36:2:54]);u=sin(lat/6);v=sin(lon/6);m_proj('oblique','lat',[56 30],'lon',[-132 -120],'aspect',.8);subplot(121);m_coast('patch',[.9 .9 .9],'edgecolor','none');m_grid('tickdir','out','yaxislocation','right',... 'xaxislocation','top','xlabeldir','end','ticklen',.02);hold on;m_quiver(lon,lat,u,v);xlabel('Simulated surface winds');subplot(122);m_coast('patch',[.9 .9 .9],'edgecolor','none');m_grid('tickdir','out','yticklabels',[],... 'xticklabels',[],'linestyle','none','ticklen',.02);hold on;[cs,h]=m_contour(lon,lat,sqrt(u.*u+v.*v));clabel(cs,h,'fontsize',8);xlabel('Simulated something else');
A Mapping package for Matlab (13)

6. Miller Projection with Great Circle

% Plot a circular orbitlon=[-180:180];lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi;m_proj('miller','lat',82);m_coast('color',[0 .6 0]);m_line(lon,lat,'linewi',3,'color','r');m_grid('linestyle','none','box','fancy','tickdir','out');
A Mapping package for Matlab (14)

7. Lambert Conformal Projection with high-resolution bathymetry of Western Mediterranean

m_proj('lambert','lon',[-10 20],'lat',[33 48]);m_tbase('contourf');m_grid('linestyle','none','tickdir','out','linewidth',3);
A Mapping package for Matlab (15)

8. Demonstration of fancy vectors

m_vec % See code in m_vec.m for details
A Mapping package for Matlab (16)

9. Zoom in on Prince Edward Island to show different coastline resolutions

% Example showing the default coastline and all of the different resolutions % of GSHHS coastlines as we zoom in on a section of Prince Edward Island.clfaxes('position',[.35 .6 .37 .37]);m_proj('albers equal-area','lat',[40 60],'long',[-90 -50],'rect','on');m_coast('patch',[0 1 0]);m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right');m_text(-69,41,'Standard coastline','color','r','fontweight','bold');axes('position',[.09 .5 .37 .37]);m_proj('albers equal-area','lat',[40 54],'long',[-80 -55],'rect','on');m_gshhs_c('patch',[.2 .8 .2]);m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top');m_text(-80,52.5,'GSHHS\_C (crude)','color','m','fontweight','bold','fontsize',14);axes('position',[.13 .2 .37 .37]);m_proj('albers equal-area','lat',[43 48],'long',[-67 -59],'rect','on');m_gshhs_l('patch',[.4 .6 .4]);m_grid('linest','none','linewidth',2,'tickdir','out');m_text(-66.5,43.5,'GSHHS\_L (low)','color','m','fontweight','bold','fontsize',14);axes('position',[.35 .05 .37 .37]);m_proj('albers equal-area','lat',[45.8 47.2],'long',[-64.5 -62],'rect','on');m_gshhs_i('patch',[.5 .6 .5]);m_grid('linest','none','linewidth',2,'tickdir','out','yaxisloc','right');m_text(-64.4,45.9,'GSHHS\_I (intermediate)','color','m','fontweight','bold','fontsize',14);axes('position',[.55 .23 .37 .37]);m_proj('albers equal-area','lat',[46.375 46.6],'long',[-64.2 -63.7],'rect','on');m_gshhs_h('patch',[.6 .6 .6]);m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right');m_text(-64.18,46.58,'GSHHS\_H (high)','color','m','fontweight','bold','fontsize',14);
A Mapping package for Matlab (17)

10. Tracklines and UTM projection

m_proj('UTM','long',[-72 -68],'lat',[40 44]);m_gshhs_i('color','k');m_grid('box','fancy','tickdir','in');% fake up a tracklinelons=[-71:.1:-67];lats=60*cos((lons+115)*pi/180);dates=datenum(1997,10,23,15,1:41,zeros(1,41));m_track(lons,lats,dates,'ticks',0,'times',4,'dates',8,... 'clip','off','color','r','orient','upright'); 
A Mapping package for Matlab (18)

11. Range rings

 m_proj('hammer','clong',170); m_grid('xtick',[],'ytick',[],'linestyle','-'); m_coast('patch','g'); m_line(100.5,13.5,'marker','square','color','r'); m_range_ring(100.5,13.5,[1000:1000:15000],'color','b','linewi',2); xlabel('1000km range rings from Bangkok');
A Mapping package for Matlab (19)

Last changed 18/Dec/1998. Questions and comments to rich@ocgy.ubc.ca
A Mapping package for Matlab (2025)

FAQs

What is mapping in MATLAB? ›

Mapping Toolbox™ provides algorithms and functions for transforming geographic data and creating map displays. You can visualize your data in a geographic context, build map displays from more than 60 map projections, and transform data from a variety of sources into a consistent geographic coordinate system.

What is the MMAP package in MATLAB? ›

M_Map is a set of mapping tools written for Matlab (it also works under Octave). M_Map includes: Routines to project data in 21 different projections (and determine inverse mappings), using spherical and ellipsoidal earth-models.

What is the alternative to MATLAB mapping toolbox? ›

* M_Map:* A free alternative to Matlab's Mapping Toolbox is M_Map by Rich Pawlowicz. M_Map is well written, well documented, well maintained, and it is compatible with Octave. It can produce publication-quality maps, and its only real drawback is it's one more thing to download.

How do I install a package in MATLAB? ›

To find and install add-ons, go to the Home tab, and in the Environment section, click the Add-Ons icon. The Add-On Explorer opens and displays the list of available add-ons. You must have an active internet connection to get add-ons using the Add-On Explorer.

What is mapping with example? ›

Mapping applies to any set: a collection of objects, such as all whole numbers, all the points on a line, or all those inside a circle. For example, “multiply by two” defines a mapping of the set of all whole numbers onto the set of even numbers. A rotation is a map of a plane or of all of space into itself.

How to create a map in Matlab? ›

Set up a new map by using the newmap function. By default, map axes objects use an Equal Earth projection centered on the prime meridian and the equator. Display the land areas using the geoplot function. You can use map axes to create maps in any supported projected coordinate reference system (CRS).

What MATLAB packages do I have? ›

There are two methods of seeing a list of installed Hardware Support Packages. 1) In the MATLAB Toolstrip "Home" Tab, click the dropdown arrow under "Add-Ons". 2) In the menu that appears, click "Manage Add-Ons". 3) The Add-Ons Manager window appears.

What is mmap used for? ›

The mmap() function establishes a mapping between an address space of a process (for len bytes) and a file that is associated with the file descriptor fildes at offset off for len bytes. The format of the call is as follows: pa=mmap(addr, len, prot, flags, fildes, off);

What is the difference between mmap and Memmap? ›

Memory-mapped files are used for accessing small segments of large files on disk, without reading the entire file into memory. NumPy's memmap's are array-like objects. This differs from Python's mmap module, which uses file-like objects.

What is better than MATLAB? ›

Python is a very useful tool in various fields such as web development, data science, machine learning, and automation. It's popular among developers and data scientists because it can be used for many tasks. Cost: MATLAB comes with licensing costs, while Python is free to use and distribute.

What is the Python equivalent of MATLAB mapping toolbox? ›

PyMap3D API is similar to Matlab Mapping Toolbox, while PyProj's interface is quite distinct. PyMap3D intrinsically handles local coordinate systems such as ENU, while PyProj ENU requires some additional effort.

What is a MATLAB toolbox? ›

The toolbox is a collection of functions built on the MATLAB® technical computing environment. You can use the toolbox to: Connect to CAN Devices. Use Supported CAN Devices and Drivers.

What is package app in MATLAB? ›

When you package an app, MATLAB creates a single app installation file ( . mlappinstall ). The installation file enables you and others to install your app and access it from the apps gallery without concern for installation details or the MATLAB path.

Where are support packages installed in MATLAB? ›

The default location of the root folder is platform specific: Windows® – C:\ProgramData\MATLAB\SupportPackages\ release. Linux® – ~/Documents/MATLAB/SupportPackages/ release.

What is Simulink used for? ›

Simulink is the platform for Model-Based Design that supports system-level design, simulation, automatic code generation, and continuous test and verification of embedded systems. Key capabilities include: A graphical editor for modeling all components of a system.

What is the purpose of mapping? ›

Answer: Generally, we use maps as a reference to show political boundaries, landforms, water bodies, and the positions of cities. Maps also help us to know the routes of an area, landmarks, location (latitudes and longitudes) of a building or things, etc.

What is the mapping method used for? ›

The Mapping Method

Mapping is a method that uses comprehension/concentration skills and evolves in a note-taking form which relates each fact or idea to every other fact or idea. Mapping is a graphic representation of the content of a lecture.

What does a mapping function do? ›

A function is a special type of relation in which each element of the domain is paired with exactly one element in the range . A mapping shows how the elements are paired. Its like a flow chart for a function, showing the input and output values.

What is mapping and how it works? ›

maps use mathematical formulae to represent the Earth (an irregularly shaped sphere) onto this other surface. maps generally have a reference system which allows the location of a feature to be described. For example, latitude and longitude are used as a reference system on maps of the Earth.

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Gregorio Kreiger

Last Updated:

Views: 6358

Rating: 4.7 / 5 (77 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Gregorio Kreiger

Birthday: 1994-12-18

Address: 89212 Tracey Ramp, Sunside, MT 08453-0951

Phone: +9014805370218

Job: Customer Designer

Hobby: Mountain biking, Orienteering, Hiking, Sewing, Backpacking, Mushroom hunting, Backpacking

Introduction: My name is Gregorio Kreiger, I am a tender, brainy, enthusiastic, combative, agreeable, gentle, gentle person who loves writing and wants to share my knowledge and understanding with you.