grd2cpt (1) - Linux Manuals

grd2cpt: Make linear or histogram-equalized color palette table from grid


grd2cpt - Make linear or histogram-equalized color palette table from grid


grd2cpt grid [ [+]transparency ] [ cpt ] [ [i|o] ] [ nlevels ] [ [R|r|h|c ] [ zlo/zhi ] [ ] [ minlimit/maxlimit ] [ ] [ ] [ [i|o] ] [ region ] [ zstart/zstop/zinc ] [ -|+|_|= ] [ [level] ] [ ] [ ]

Note: No space is allowed between the option flag and the associated arguments.


grd2cpt reads one or more grid files and writes a color palette (CPT) file to standard output. The CPT file is based on an existing master CPT file of your choice, and the mapping from data value to colors is through the data's cumulative distribution function (CDF), so that the colors are histogram equalized. Thus if the grid(s) and the resulting CPT file are used in grdimage with a linear projection, the colors will be uniformly distributed in area on the plot. Let z be the data values in the grid. Define CDF(Z) = (# of z < Z) / (# of z in grid). (NaNs are ignored). These z-values are then normalized to the master CPT file and colors are sampled at the desired intervals.

The color palette includes three additional colors beyond the range of z-values. These are the background color (B) assigned to values lower than the lowest z-value, the foreground color (F) assigned to values higher than the highest z-value, and the NaN color (N) painted wherever values are undefined. For color tables beyond the standard GMT offerings, visit cpt-city:

If the master CPT file includes B, F, and N entries, these will be copied into the new master file. If not, the parameters COLOR_BACKGROUND, COLOR_FOREGROUND, and COLOR_NAN from the gmt.conf file or the command line will be used. This default behavior can be overruled using the options -D, -M or -N.

The color model (RGB, HSV or CMYK) of the palette created by makecpt will be the same as specified in the header of the master CPT file. When there is no COLOR_MODEL entry in the master CPT file, the COLOR_MODEL specified in the gmt.conf file or on the command line will be used.


Names of one or more grid files used to derive the color palette table. All grids need to have the same size and dimensions. (See GRID FILE FORMATS below).


Sets a constant level of transparency (0-100) for all color slices. Prepend + to also affect the fore-, back-, and nan-colors [Default is no transparency, i.e., 0 (opaque)].
Selects the master color table to use in the interpolation. Choose among the built-in tables (type grd2cpt to see the list) or give the name of an existing CPT file [Default gives a rainbow CPT file]. Yet another option is to specify -Ccolor1,color2[,color3,...] to build a linear continuous CPT from those colors automatically. In this case colorn can be a r/g/b triplet, a color name, or an HTML hexadecimal color (e.g. #aabbcc ).
Select the back- and foreground colors to match the colors for lowest and highest z-values in the output CPT file [Default uses the colors specified in the master file, or those defined by the parameters COLOR_BACKGROUND, COLOR_FOREGROUND, and COLOR_NAN]. Append i to match the colors for the lowest and highest values in the input (instead of the output) CPT file.
Create a linear color table by dividing the grid z-range into nlevels equidistant slices.
Force output CPT file to written with r/g/b codes, gray-scale values or color name (R, default) or r/g/b codes only (r), or h-s-v codes (h), or c/m/y/k codes (c).
Truncate the incoming CPT so that the lowest and highest z-levels are to zlo and zhi. If one of these equal NaN then we leave that end of the CPT alone. The truncation takes place before any resampling.
Reverses the sense of color progression in the master CPT file. Also exchanges the foreground and background colors, including those specified by the parameters COLOR_BACKGROUND and COLOR_FOREGROUND.
Limit range of CPT file to minlimit/maxlimit, and don't count data outside this range when estimating CDF(Z). [Default uses min and max of data.]
Overrule background, foreground, and NaN colors specified in the master CPT file with the values of the parameters COLOR_BACKGROUND, COLOR_FOREGROUND, and COLOR_NAN specified in the gmt.conf file or on the command line. When combined with -D, only COLOR_NAN is considered.
Do not write out the background, foreground, and NaN-color fields [Default will write them].
Selects a logarithmic interpolation scheme [Default is linear]. -Qi expects input z-values to be log10(z), assigns colors, and writes out z [Default]. -Qo takes log10(z) first, assigns colors, and writes out z.
-R[unit]xmin/xmax/ymin/ymax[r] (more ...)
Specify the region of interest.
-Szstart/zstop/zinc or -Sn
Set steps in CPT file. Calculate entries in CPT file from zstart to zstop in steps of (zinc). Default chooses arbitrary values by a crazy scheme based on equidistant values for a Gaussian CDF. Use -Sn to select n points from such a cumulative normal distribution [11].
Force the color table to be symmetric about zero (from -R to +R). Append flag to set the range R: - for R =|zmin|, + for R = |zmax|, _ for R = min(|zmin|, |zmax|), or = for R = max(|zmin|, |zmax|).
Verbose operation. This will write CDF(Z) estimates to stderr. [Default is silent.]
Do not interpolate the input color table but pick the output colors starting at the beginning of the map. This is particularly useful in combination with a categorical color table. Cannot be used in combination with -Z.
Will create a continuous color palette. [Default is discontinuous, i.e., constant color intervals]
-^ or just -
Print a short message about the syntax of the command, then exits (NOTE: on Windows use just -).
-+ or just +
Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exits.
-? or no arguments
Print a complete usage (help) message, including the explanation of options, then exits.
Print GMT version and exit.
Print full path to GMT share directory and exit.


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 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-CF and grid-file-format of the GMT Technical Reference and Cookbook for more information, particularly on how to read splices of 3-, 4-, or 5-dimensional grids.


Sometimes you don't want to make a CPT file (yet) but would find it helpful to know that 90% of your data lie between z1 and z2, something you cannot learn from grdinfo. So you can do this to see some points on the CDF(Z) curve (use -V option to see more):

gmt grd2cpt -V > /dev/null

To make a CPT file with entries from 0 to 200 in steps of 20, and ignore data below zero in computing CDF(Z), and use the built-in master cpt file relief, run

gmt grd2cpt -Crelief -L0/10000 -S0/200/20 > mydata.cpt


2015, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe


gmt, gmt.conf, grdhisteq, grdinfo, makecpt