Transcript Downloaded
Introduction to GMT
Andrew Goodliffe
University of Alabama
Socorro, NM, Friday May 30
GMT Exercise
•What is GMT?
•A tool commonly used by geophysicists for manipulating
and visualizing data
•Free!
•Steep learning curve, but worth the climb
•Available from http://gmt.soest.hawaii.edu in a number
of flavors
•There are other programs that will do the same sort of
thing, but none have the same flexibility
•Building on your UNIX lesson, we will use GMT to create a
simple map of the Socorro, NM area
Where did the data come from?
• Space Shuttle Radar Topography
Mission (SRTM) data
• 1 Arc-second (~30 m) grids
• Downloaded from the USGS Seamless
server (http://seamless.usgs.gov/) and
converted to a GMT format (NetCDF)
grid
– Re-sampled (using grdfilter) to a 0.0005
degree grid
• Also available from NASA
(ftp://e0srp01u.ecs.nasa.gov)
SRTM
From http://spaceplace.jpl.nasa.gov/en/kids/srtm_make2.shtml
•A transmit antenna illuminates the
terrain with a radar beam which is
scattered by the surface. Both
arrays receive the reflected signal
•The signal coming to one antenna
may have traveled slightly further
than that arriving at the other
•This translates into a phase
difference
•By measuring the phase
difference we can determine the
angle from which the signal came
•When combined with travel time,
we can determine the distance to
that point
The Basic C-Shell
• Open your favorite text editor on the
UNIX system and create a file named
socorro.csh
• If you are using xemacs you would type
xemacs socorro.csh &
– The & at the end puts the xemacs command
in the background so that you get your
prompt back
Anatomy….
Indicates that the script is a C-Shell
gmtset PLOT_DEGREE_FORMAT -ddd:mm:ssF
Sets a
variable
for the
output
postscript
file name
Displays
the image
using your
viewer of
choice
Sets the format of the map annotation
Sets a variable for the area of the map
Draws the
basemap
psbasemap
and the four
variables
Sets a variable for the tick marks on
the map – annotations every 0.2
minutes, tick marks every 10 minutes
Sets a variable for the map
projection and scale – in this case
the projection is Mercator and the
scale is such that the x-axis of the
map is 6.5 inches long
Run the C-Shell by typing csh socorro.csh
The Map…
Hopefully your map looks something like
this (depending on settings in your
.gmtdefaults file)
Edit your C-Shell so that
set B = -Ba0.2f10m
Now reads
set B = -BSWnea0.2f10m
This will make it so that only the
southern and western axes are labeled
Note: to find other options in
psbasemap, simply type man psbasemap
– this will display the help pages
Add Topography
You have each been given a two files – socorro.grd and socorro.cpt – these are
the SRTM grid files and color palette file respectively
-K indicates that
this is the first
grdimage will
layer in a multidraw a color
layer image
image of the
topography in
-V means that
socorro.grd
the command
using the color
will run in
palette (-C)
verbose mode
socorro.cpt
-O indicates that
this is the last
layer in a multilayer image
Run the c-shell
>> indicates
postscript code
is being
appended to the
file created by
the previous
command
The Map….
White is the highest
topography, brown is the lowest
We can all agree that this color
palette is ugly – lets take a
moment to create a new one
using grd2cpt
Type man grd2cpt to see how to
do this…. Or simply type
grd2cpt
Changing the Color Palette
In this case I have used the
haxby color palette –
experiment with other palettes
The grd2cpt
command has
been commented
out – this does
not need to be
run any more
grdgradient creates
an illumination file
with simulated
illumination from
the north (-A0),
dimensionless
gradient (-M)
normalized to 1 (Nt). The output
illumination file is
socorro.grad
Add Illumination
grdimage has
had the
paramter –I
added to it.
This indicates
that the
resultant
image will be
illuminated
with the file
socorro.grad
The Map….
There is now a lot more
information in the map – you can
start to see structures and
river channels
By changing the –A option in
grdgradient, try recreating the
image with different
illumination angles. Does one
angle help us to visualize
structures better than
another?
The grdgrdient
command has
been commented
out – this does
not need to be
run any more
grdcontour creates
a layer in the
postcript file that
will display contours
every 100 m (-C100)
Add Contours
Note that we
are now using
–O and –K.
This indicates
that this is
neither the
top of
bottom layer
in the
postscript
file
The Map….
We now have an idea of the size
of the mountains around us – we
know from running the script last
time that the minimum and
maximum contours are 1300 m
and 3200 m respectively
By changing the –C option in
grdcontour, change the contour
interval to 200 m. By using the –A
option, add annotations every
1000 m
Add A Color Scale
psscale draws
a color bar
using the color
palette
socorro2.cpt
The bar is
labeled every
500 m and
annotated with
“meters”
This is the
location (x – 3.25
inches, y = -0.5
inches) and size
(4 x 0.25 inches).
h indicates that
the bar is
horizontal
The Map….
The uninitiated reader now
everything they need to know
most of the map details.
Why have I not added a regular
scale bar?
Add the Location of the Library
psxy plots
points on maps
using a number
of different
methods (see
man psxy).
Typically we
would read
these points
from a file, but
since we are
only plotting
one point, we
will read it
from the CShell . psxy can
also be used to
plot a regular
graph
The color fill is the
star is white (255)
As input, psxy reads
until it reaches END
The line
thickness of
the star is 1
point (1p) and
the line is black
(0)
This is the longitude and
latitude of the library
A star (-Sa) with
a 0.4 inch
diameter is drawn
The Map….
Colors in GMT are specified in
RGB format – thus 255/0/0 is
red, 0/255/0 is green, etc. You
can mix colors to create the color
of your choice. By changing the –G
option in psxy, change the color of
the star (for example, -G255/0/0
would make the star red),
Add Some Text to the Map
ptext plots
text on maps
Typically we
would read
text strings
from a file,
but since we
are only
plotting one
text string we
will read it
from the CShell
This is the longitude and latitude
at which the text will be plotted
The text will be
green
The text will be
centered on the
point (CM)
Font number 1
(helvetica) will be
used
The text will be
plotted horizontally
(0 degrees)
The font size is
14 points
The Map….
The text is plotted on top of the
star. By changing the text
justification (currently CM)
and/or the text position, move the
text so that it is under the star.
You might want to also change the
text color….
Add an Inset to the Map
We are
adding more
layers after
psbasemap,
so we have
added a -K
We are
redefining
the area of
the map – the
inset will
include the
contiguous
states. It will
be 2 inches
across
pscoast is used to plot a low-resolution (-Dl)
coastline is plotted. It has a line thickness of 1 point
and is black
This creates the
basemap for the
inset. The
background is
white (-G255), axis
are drawn without
label or ticks (Bnesw), and the
origin is offset
horizontally by 0.2
inches (-X0.2) and
vertically by 7.65
(-Y7.65) inches
relative to the
previous basemap
A black star
is plotted at
Socorro
The Map….
My final map should be just like
yours – except I have added state
boundaries by adding another
parameter to pscoast. By
exploring man pscoast, work out
how to add state boundaries.
What can you do with this map
now? The postscript format image
can be read by a number of other
packages – Adobe Illustrator
being one example….
Extra time? Explore making other
changes to your map…..