 Application Center - Maplesoft

# Maptools package

You can switch back to the summary page by clicking here.

maptools_examples.mws

Maple Maptools example worksheet

by: Vince Costanzo

> restart;

The package files were extracted to w:\maptools on this machine (to execute this worksheet you must change the path below).

Tell Maple where these files are:

> libname := libname, "C:/Program Files/Maple 6/Users/Vincent Costanzo"; > with(maptools); Next, load the database to be used in creating the plots (to execute the worksheet you must change the path below):

`The maptools package was created by Vince Costanzo while at Villanova University.`

`The coastal points were obtained from US Geological Survey data at http://rimmer.ngdc.noaa.gov/coast/.`

`Loading, please be patient . . . `

`Database successfully loaded from C:/Program Files/Maple 6/Users/Vincent Costanzo/coarse.m (7470 points)`

Define a 2-D function that describes the projection. This is Mercator's map.

> f := (x,y) -> (x, ln(sec(y)+tan(y))); Create a 2-D plot of the projection using mapplot. Maptools only supports arrow functions that map (longitude, latitude) onto Cartesian coordinates (2- or 3-dimensional). Because the poles are mapped to infinite height, restrict the longitude and latitude range. Also, so that the plot looks like a time zone map, change the meridian spacing from its default value to 15 degrees. (Note that the package defines deg as Pi/180 so that 15*deg has the intended meaning).

> mapplot(f, lonlat=[-180*deg..180*deg, -80*deg..80*deg], meridian_spacing=15*deg); Now create a 3-D projection. This projection maps the longitude and latitude coordinates onto the unit sphere (i.e. it produces a globe). Note that the coastal point databases measure longitude and latitude in a particular way (see ?mapplot or ?mapplot3d), so that the function that is defined must also measure longitude and latitude in the same manner..

> g := (lon,lat) -> (cos(lon)*cos(lat), sin(lon)*cos(lat), sin(lat)); Plot this function using mapplot3d. Make the parallel spacing 15 degrees and the meridian spacing 30 degrees.

> mapplot3d(g, meridian_spacing=30*deg, parallel_spacing=15*deg); Finally, if you are strapped for time or computing power, a useful option is to turn the coastline plotting off. For example, to plot only the graticule (gridlines) of Mercator's map:

> mapplot(f, coast=OFF, graticule_color=black, lonlat=[-180*deg..180*deg, -80*deg..80*deg]); >