grdgradient - Compute directional derivative or gradient from a grid
grdgradient in_grdfile -Gout_grdfile [ -Aazim[/azim2] ] [ -D[a][c][o][n] ] [ -E[s|p]azim/elev[/ambient/diffuse/specular/shine] ] [ -Lflag ] [ -N[e][t][amp][/sigma[/offset]] ] [ -Rregion ] [ -Sslopefile ] [ -V[level] ] [ -fg ] [ -n<flags> ]
Note: No space is allowed between the option flag and the associated arguments.
grdgradient may be used to compute the directional derivative in a given direction (-A), or the direction (-S) [and the magnitude (-D)] of the vector gradient of the data.
Estimated values in the first/last row/column of output depend on boundary conditions (see -L).
If the grid does not have meter as the horizontal unit, append +uunit to the input file name to convert from the specified unit to meter. If your grid is geographic, convert distances to meters by supplying -fg instead.
If you don’t know what -N options to use to make an intensity file for grdimage or grdview, a good first try is -Ne0.6.
Usually 255 shades are more than enough for visualization purposes. You can save 75% disk space by appending =nb/a to the output filename out_grdfile.
If you want to make several illuminated maps of subregions of a large data set, and you need the illumination effects to be consistent across all the maps, use the -N option and supply the same value of sigma and offset to grdgradient for each map. A good guess is offset = 0 and sigma found by grdinfo -L2 or -L1 applied to an unnormalized gradient grd.
If you simply need the x- or y-derivatives of the grid, use grdmath.
By default GMT writes out grid as single precision floats in a COARDS-complaint netCDF file format. However, GMT is able to produce grid files in many other commonly used grid file formats and also facilitates so called “packing” of grids, writing out floating point data as 1- or 2-byte integers. To specify the precision, scale and offset, the user should add the suffix =id[/scale/offset[/nan]], where id is a two-letter identifier of the grid type and precision, and scale and offset are optional scale factor and offset to be applied to all grid values, and nan is the value used to indicate missing data. In case the two characters id is not provided, as in =/scale than a id=nf is assumed. When reading grids, the format is generally automatically recognized. If not, the same suffix can be added to input grid file names. See grdconvert and Section Grid file format specifications of the GMT Technical Reference and Cookbook for more information.
When reading a netCDF file that contains multiple grids, GMT will read, by default, the first 2-dimensional grid that can find in that file. To coax GMT into reading another multi-dimensional variable in the grid file, append ?varname to the file name, where varname is the name of the variable. Note that you may need to escape the special meaning of ? in your shell program by putting a backslash in front of it, or by placing the filename and suffix between quotes or double quotes. The ?varname suffix can also be used for output grids to specify a variable name different from the default: “z”. See grdconvert and Sections Modifiers for COARDS-compliant netCDF files and Grid file format specifications of the GMT Technical Reference and Cookbook for more information, particularly on how to read splices of 3-, 4-, or 5-dimensional grids.
To make a file for illuminating the data in geoid.nc using exp- normalized gradients in the range [-0.6,0.6] imitating light sources in the north and west directions:
gmt grdgradient geoid.nc -A0/270 -Ggradients.nc=nb/a -Ne0.6 -V
To find the azimuth orientations of seafloor fabric in the file topo.nc:
gmt grdgradient topo.nc -Dno -Gazimuths.nc -V
Horn, B.K.P., Hill-Shading and the Reflectance Map, Proceedings of the IEEE, Vol. 69, No. 1, January 1981, pp. 14-47. (http://people.csail.mit.edu/bkph/papers/Hill-Shading.pdf)