introduction to gmt andrew goodliffe university of alabama socorro, nm, friday may 30
TRANSCRIPT
Introduction to GMT
Andrew GoodliffeUniversity 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
Fro
m h
ttp://sp
ace
pla
ce.jp
l.nasa
.gov/e
n/k
ids/srtm
_make2
.shtm
l
•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
Sets a variable for the area of the map
Sets a variable for the tick marks on the map – annotations every 0.2 minutes, tick marks every 10 minutesSets 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
Sets a variable for the output postscript file name
Draws the basemap psbasemap and the four variablesDisplays
the image using your viewer of choice
Run the C-Shell by typing csh socorro.csh
gmtset PLOT_DEGREE_FORMAT -ddd:mm:ssF Sets the format of the map annotation
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 TopographyYou have each been given a two files – socorro.grd and socorro.cpt – these are the SRTM grid files and color palette file respectively
grdimage will draw a color image of the topography in socorro.grd using the color palette (-C) socorro.cpt
-K indicates that this is the first layer in a multi-layer image
>> indicates postscript code is being appended to the file created by the previous command
-O indicates that this is the last layer in a multi-layer image
Run the c-shell
-V means that the command will run in verbose mode
The Map….
White is the highest topography, brown is the lowestWe 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
Add Illumination
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
grdimage has had the paramter –I added to it. This indicates that the resultant image will be illuminated with the file socorro.grad
The grd2cpt command has been commented out – this does not need to be run any more
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?
Add Contours
grdcontour creates a layer in the postcript file that will display contours every 100 m (-C100)
The grdgrdient command has been commented out – this does not need to be run any more
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
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 bar is labeled every 500 m and annotated with “meters”
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 C-Shell . psxy can also be used to plot a regular graph
A star (-Sa) with a 0.4 inch diameter is drawn
The line thickness of the star is 1 point (1p) and the line is black (0)
The color fill is the star is white (255)
As input, psxy reads until it reaches END
This is the longitude and latitude of the library
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 C-Shell
The font size is 14 points
The text will be green
This is the longitude and latitude at which the text will be plotted
The text will be plotted horizontally (0 degrees)
Font number 1 (helvetica) will be used
The text will be centered on the point (CM)
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 MapWe 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
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 basemapA black star is plotted at Socorro
pscoast is used to plot a low-resolution (-Dl) coastline is plotted. It has a line thickness of 1 point and is black
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…..