Install GMT 4.5.18 on macOS Catalina
Notes on debugging a GMT 4.5.18 install on macOS Catalina 10.15.7 (to use with NonLinLoc).
Start by following the instructions to install GMT dependencies here: https://github.com/GenericMappingTools/gmt/wiki. I installed dependencies on macOS via Homebrew:
# install necessary dependencies
brew install cmake curl netcdf
# and optional dependencies
brew install gdal pcre2 fftw glib ghostscript
# to enable movie-making
brew install graphicsmagick ffmpeg
# to build the documentation
brew install sphinx-doc
# add sphinx-doc to your PATH
echo 'export PATH="$(brew --prefix)/opt/sphinx-doc/bin:$PATH"' >> ~/.bashrc
Then download the source code tarball via the GMT GitHub Wiki: https://github.com/GenericMappingTools/gmt/wiki/GMT-4.5.18. Untar by double-clicking the downloaded file. Open a terminal window, then:
# make the downloaded gmt directory the working directory
cd Downloads/gmt-4.5.18
# run the configure script
./configure
# run the makefile
make
At this point, I received an error.
Making all in src/xgrid
gcc -O2 -Wall -fPIC -fno-strict-aliasing -std=c99 -I/Users/human/gmt-4.5.18/src -I/usr/local/Cellar/netcdf/4.8.1/include -c -o xgrid_utility.o xgrid_utility.c
xgrid_utility.c:5:10: fatal error: 'X11/Intrinsic.h' file not found
#include <X11/Intrinsic.h>
^~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [xgrid_utility.o] Error 1
make[1]: *** [xgrid] Error 2
make: *** [suppl] Error 2
This is resolved by installing libxt via Homebrew:
brew install libxt
Then retry running the makefile:
make clean
./configure
make
At this point, I received another error.
xgrid_Panner.c:4:10: fatal error: 'X11/Xaw/Scrollbar.h' file not found
#include <X11/Xaw/Scrollbar.h>
^~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [xgrid_Panner.o] Error 1
make[1]: *** [xgrid] Error 2
make: *** [suppl] Error 2
This is resolved by installing libxaw via Homebrew:
brew install libxaw
Retry the makefile again:
make clean
./configure
make
No errors, success! Now install the executables:
make install-gmt
Then install supporting data like coastlines:
make install-data
And finally, add the bin directory to your path via your .bashrc file:
echo 'export PATH=~/Downloads/gmt-4.5.18/bin:$PATH' >> ~/.bashrc
Check your install by typing gmt
in Terminal. If successful you will see:
GMT - The Generic Mapping Tools data processing and display software package
Version 4.5.18
GMT is a collection of public-domain Unix tools that allows you to manipulate
x,y and x,y,z data sets (filtering, trend fitting, gridding, projecting, etc.)
and to produce PostScript illustrations ranging from simple x-y plots, via
contour maps, to artificially illuminated surfaces and 3-D perspective views
in black/white or full color. Linear, log10, and power scaling are supported
in additon to 25 common map projections. The processing and display routines
within GMT are completely general and will handle any (x,y) or (x,y,z) data
as input.
The following is a summary of all the programs supplied with GMT and
a very short descriptions of their purpose. Detailed information about each program
can be found in each program's manual page.
blockmean L2 (x,y,z) data filter/decimator
blockmedian L1 (x,y,z) data filter/decimator
blockmode Mode (x,y,z) data filter/decimator
filter1d Filter 1-D data sets (time series)
fitcircle Finds best-fitting great circle to a set of points
gmt2rgb Convert Sun rasterfile or grid to r, g, b grids
gmtconvert Convert between ASCII and binary 1-D tables
gmtdefaults List the current default settings
gmtmath Mathematical operations on data tables
gmtset Set individual default parameters
gmtselect Extract data subsets based on spatial criteria
grd2cpt Make color palette table from grid files
grd2xyz Conversion from 2-D grid file to table data
grdblend Blend several partially over-lapping grid files onto one grid
grdclip Limit the z-range in gridded data
grdcontour Contouring of 2-D gridded data
grdcut Cut a sub-region from a grid file
grdedit Modify header information in a 2-D grid file
grdfft Operate on grid files in the wavenumber (or frequency) domain
grdfilter Filter a 2-D grid file in the space (or time) domain
grdgradient Compute directional gradient from grid files
grdhisteq Histogram equalization for grid files
grdimage Produce images from 2-D gridded data
grdinfo Get information about grid files
grdlandmask Create mask grid file from shoreline data base
grdmask Reset nodes outside a clip path to a constant
grdmath Mathematical operations on grid files
grdpaste Paste together grid files along a common edge
grdproject Project gridded data onto a new coordinate system
grdreformat Converting between different grid file formats
grdsample Resample a 2-D gridded data set onto a new grid
grdtrend Fits polynomial trends to grid files
grdtrack Sampling of 2-D data set along 1-D track
grdvector Plot vector fields from grid files
grdview 3-D perspective imaging of 2-D gridded data
grdvolume Volume calculations from 2-D gridded data
greenspline Interpolation using Green's functions for splines in 1-3 dimensions
makecpt Make color palette tables
mapproject Forward or inverse map projections of table data
minmax Find extreme values in data tables
nearneighbor Nearest-neighbor gridding scheme
project Project data onto lines/great circles
ps2raster Crop and convert PostScript files to raster images, EPS, and PDF
psbasemap Create a basemap plot
psclip Use polygon files to define clipping paths
pscoast Plot coastlines and filled continents on maps
pscontour Contour xyz-data by triangulation
pshistogram Plot a histogram
psimage Plot images (EPS or Sun raster files) on maps
pslegend Plot legend on maps
psmask Create overlay to mask out regions on maps
psrose Plot sector or rose diagrams
psscale Plot gray scale or color scale on maps
pstext Plot text strings on maps
pswiggle Draw time-series along track on maps
psxy Plot symbols, polygons, and lines on maps
psxyz Plot symbols, polygons, and lines in 3-D
sample1d Resampling of 1-D table data
spectrum1d Compute various spectral estimates from time-series
splitxyz Split xyz-files into several segments
surface A continuous curvature gridding algorithm
trend1d Fits polynomial or Fourier trends to y = f(x) data
trend2d Fits polynomial trends to z = f(x,y) data
triangulate Perform Delaunay triangulation and gridding
xyz2grd Convert equidistant xyz data to a 2-D grid file
Look up the individual man pages for more details and full syntax.
Those man pages are installed in /Users/human/gmt-4.5.18/share/man/man?.
Information is also available on the GMT World Wide Web home page
(http://gmt.soest.hawaii.edu) and, if installed, locally from
/Users/human/gmt-4.5.18/share/doc//html/gmt_services.html.
Default locations of GMT components:
executables /Users/human/gmt-4.5.18/bin
library /Users/human/gmt-4.5.18/lib
shared data /Users/human/gmt-4.5.18/share
manual pages /Users/human/gmt-4.5.18/share/man/man?
documentation /Users/human/gmt-4.5.18/share/doc/
The user has control over the following environment variables:
location of shared data (including subdirectories coast, cpt, etc.):
GMT_SHAREDIR = /Users/human/gmt-4.5.18/share (default)
user-specific configurations (color tables, .gmtdefaults, etc.):
GMT_USERDIR = /Users/human/.gmt (default)
user-specific data (grids, column data):
GMT_DATADIR = (undefined)
other deprecated data directories:
GMT_GRIDDIR = (undefined)
GMT_IMGDIR = (undefined)
(END)