pscontour − Contour xyz-data by direct triangulation [method]


pscontour xyzfile −Ccptfile −Jparameters −Rwest/east/south/north[r] [ −A[-][labelinfo] ] [ −B[p|s]parameters ] [ −D[dumpfile] ] [ −Eazim/elev[+wlon/lat[/z]][+vx0/y0] ] [ −G[d|f|n|l|L|x|X]params ] [ −H[i][nrec] ] [ −I ] [ −K ] [ −Lpen ] [ −N ] [ −O ] [ −P ] [ −S[p|t] ] [ −Tindexfile ] [ −U[just/dx/dy/][c|label] ] [ −V ] [ −W[+]pen ] [ −X[a|c|r][x-shift[u]] ] [ −Y[a|c|r][y-shift[u]] ] [ −ccopies ] [ −:[i|o] ] [ −b[i|o][s|S|d|D[ncol]|c[var1/...]] ] [ −m[flag] ]


pscontour reads an ASCII [or binary] xyz-file and produces a raw contour plot by triangulation. By default, the optimal Delaunay triangulation is performed (using either Shewchuk’s [1996] or Watson’s [1982] method as selected during GMT installation; type pscontour − to see which method is selected), but the user may optionally provide a second file with network information, such as a triangular mesh used for finite element modeling. In addition to contours, the area between contours may be painted according to the color palette file.

Raw ASCII (or binary, see −b) xyz data to be contoured.


name of the color palette file. Must have discrete colors if you want to paint the surface (−I). Only contours that have annotation flags set will be annotated.


Selects the map projection. Scale is UNIT/degree, 1:xxxxx, or width in UNIT (upper case modifier). UNIT is cm, inch, or m, depending on the MEASURE_UNIT setting in .gmtdefaults4, but this can be overridden on the command line by appending c, i, or m to the scale/width value. When central meridian is optional, default is center of longitude range on −R option. Default standard parallel is the equator. For map height, max dimension, or min dimension, append h, +, or - to the width, respectively.

More details can be found in the psbasemap man pages.


−Jclon0/lat0/scale (Cassini)
/[lon0/[lat0/]]scale (Cylindrical Stereographic)
[lon0/]scale (Miller)
[lon0/[lat0/]]scale (Mercator)
lon0/lat0/scale (Mercator - Give meridian and standard parallel)
[a]lon0/lat0/azimuth/scale (Oblique Mercator - point and azimuth)
[b]lon0/lat0/lon1/lat1/scale (Oblique Mercator - two points)
lon0/lat0/lonp/latp/scale (Oblique Mercator - point and pole)
[lon0/[lat0/]]scale (Cylindrical Equidistant)
lon0/[lat0/]scale (TM - Transverse Mercator)
zone/scale (UTM - Universal Transverse Mercator)
[lon0/[lat0/]]scale (Cylindrical Equal-Area)


−Jblon0/lat0/lat1/lat2/scale (Albers)
lon0/lat0/lat1/lat2/scale (Conic Equidistant)
lon0/lat0/lat1/lat2/scale (Lambert Conic Conformal)
/[lon0/[lat0/]]scale ((American) Polyconic)


−Jalon0/lat0[/horizon]/scale (Lambert Azimuthal Equal-Area)
lon0/lat0[/horizon]/scale (Azimuthal Equidistant)
lon0/lat0[/horizon]/scale (Gnomonic)
lon0/lat0[/horizon]/scale (Orthographic)
lon0/lat0/altitude/azimuth/tilt/twist/Width/Height/scale (General Perspective).
lon0/lat0[/horizon]/scale (General Stereographic)


−Jh[lon0/]scale (Hammer)
[lon0/]scale (Sinusoidal)
[lon0/]scale (Eckert IV)
[s][lon0/]scale (Eckert VI)
[lon0/]scale (Robinson)
[lon0/]scale (Winkel Tripel)
[lon0/]scale (Van der Grinten)
[lon0/]scale (Mollweide)


−Jp[a]scale[/origin][r|z] (Polar coordinates (theta,r))
x-scale[d|l|ppow|t|T][/y-scale[d|l|ppow|t|T]] (Linear, log, and power scaling)


xmin, xmax, ymin, and ymax specify the Region of interest. For geographic regions, these limits correspond to west, east, south, and north and you may specify them in decimal degrees or in [+-]dd:mm[][W|E|S|N] format. Append r if lower left and upper right map coordinates are given instead of w/e/s/n. The two shorthands −Rg and −Rd stand for global domain (0/360 and -180/+180 in longitude respectively, with -90/+90 in latitude). Alternatively, specify the name of an existing grid file and the −R settings (and grid spacing, if applicable) are copied from the grid. For calendar time coordinates you may either give (a) relative time (relative to the selected TIME_EPOCH and in the selected TIME_UNIT; append t to −JX|x), or (b) absolute time of the form [date]T[clock] (append T to −JX|x). At least one of date and clock must be present; the T is always required. The date string must be of the form [-]yyyy[-mm[-dd]] (Gregorian calendar) or yyyy[-Www[-d]] (ISO week calendar), while the clock string must be of the form hh:mm:ss[.xxx]. The use of delimiters and their type and positions must be exactly as indicated (however, input, output and plot formats are customizable; see gmtdefaults).


No space between the option flag and the associated arguments.


Give - to disable all annotations. The optional labelinfo controls the specifics of the label formatting and consists of a concatenated string made up of any of the following control arguments:


For annotations at a fixed angle, +an for line-normal, or +ap for line-parallel [Default].


Sets the clearance between label and optional text box. Append c|i|m|p to specify the unit or % to indicate a percentage of the label font size [15%].


Turns on debug which will draw helper points and lines to illustrate the workings of the quoted line setup.


Sets the desired font [Default ANNOT_FONT_PRIMARY].


Selects opaque text boxes [Default is transparent]; optionally specify the color [Default is PAGE_COLOR]. (See SPECIFYING COLOR below).


Sets label justification [Default is MC]. Ignored when -SqN|n+|-1 is used.


Sets color of text labels [Default is COLOR_BACKGROUND]. (See SPECIFYING COLOR below).


Sets the constant label text.


Sets the label text according to the specified flag:


Take the label from the current multisegment header (first scan for an embedded −Llabel option, if not use the first word following the segment flag). For multiple-word labels, enclose entire label in double quotes.


Take the Cartesian plot distances along the line as the label; append c|i|m|p as the unit [Default is MEASURE_UNIT].


Calculate actual map distances; append d|e|k|m|n as the unit [Default is d(egrees), unless label placement was based on map distances along the lines in which case we use the same unit specified for that algorithm]. Requires a map projection to be used.


Use text after the 2nd column in the fixed label location file as the label. Requires the fixed label location setting.


As +Lh but use the headers in the xfile.d instead. Requires the crossing file option.


Nudges the placement of labels by the specified amount (append c|i|m|p to specify the units). Increments are considered in the coordinate system defined by the orientation of the line; use +N to force increments in the plot x/y coordinates system [no nudging].


Selects rounded rectangular text box [Default is rectangular]. Not applicable for curved text (+v) and only makes sense for opaque text boxes.


Draws the outline of text boxsets [Default is no outline]; optionally specify pen for outline [Default is width = 0.25p, color = black, texture = solid]. (See SPECIFYING PENS below).


Will not place labels where the line’s radius of curvature is less than min_rad [Default is 0].


Sets the desired font size in points [Default is 9].


Appends unit to all line labels. If unit starts with a leading hyphen (-) then there will be no space between label value and the unit. [Default is no unit].


Specifies curved labels following the path [Default is straight labels].


Specifies how many (x, y) points will be used to estimate label angles [Default is 10].


Prepends prefix to all line labels. If prefix starts with a leading hyphen (-) then there will be no space between label value and the prefix. [Default is no prefix].


Sets map boundary annotation and tickmark intervals; see the psbasemap man page for all the details.


Dump the (x,y,z) coordinates of each contour to separate files, one for each contour segment. The files will be named dumpfile_cont_segment[_i].xyz, where cont is the contour value and segment is a running segment number for each contour interval (for closed contours we append _i.) However, when −m is used in conjunction with −D a single multisegment file is created instead.


Sets the viewpoint’s azimuth and elevation (for perspective view) [180/90]. For frames used for animation, you may want to append + to fix the center of your data domain (or specify a particular world coordinate point with +wlon0/lat[/z]) which will project to the center of your page size (or specify the coordinates of the projected view point with +vx0/y0).


Controls the placement of labels along the contours. Choose among five controlling algorithms:

−Gddist[c|i|m|p] or −GDdist[d|e|k|m|n]

For lower case d, give distances between labels on the plot in your preferred measurement unit c (cm), i (inch), m (meter), or p (points), while for upper case D, specify distances in map units and append the unit; choose among e (m), k (km), m (mile), n (nautical mile), or d (spherical degree). [Default is 10c or 4i].


Reads the ascii file ffile.d and places labels at locations in the file that matches locations along the contours. Inexact matches and points outside the region are skipped.


Give the coordinates of the end points for one or more comma-separated straight line segments. Labels will be placed where these lines intersect the contours. The format of each line specification is start_lon/start_lat/stop_lon/stop_lat. Both start_lon/start_lat and stop_lon/stop_lat can be replaced by a 2-character key that uses the justification format employed in pstext to indicate a point on the map, given as [LCR][BMT]. −GL will interpret the point pairs as defining great circles [Default is straight line].


Specifies the number of equidistant labels for contours line [1]. Upper case −GN starts labeling exactly at the start of the line [Default centers them along the line]. −GN-1 places one justified label at start, while −GN+1 places one justified label at the end of contours. Optionally, append /min_dist[c|i|m|p] to enforce that a minimum distance separation between successive labels is enforced.


Reads the multi-segment file xfile.d and places labels at the intersections between the contours and the lines inxfile.d. −GX will resample the lines first along great-circle arcs.

In addition, you may optionally append +rradius[c|i|m|p] to set a minimum label separation in the x-y plane [no limitation].


Input file(s) has header record(s). If used, the default number of header records is N_HEADER_RECS. Use −Hi if only input data should have header records [Default will write out header records if the input data have them]. Blank lines and lines starting with # are always skipped.


Color the triangles using the color palette table.


Sets the vertical scaling (for 3-D maps). Same syntax as −Jx.


More PostScript code will be appended later [Default terminates the plot system].


Draw the underlying triangular mesh using the specified pen attributes [Default is no mesh]. (See SPECIFYING PENS below).


Do NOT clip contours or image at the boundaries [Default will clip to fit inside region −R].


Selects Overlay plot mode [Default initializes a new plot system].


Selects Portrait plotting mode [Default is Landscape, see gmtdefaults to change this].


Or −Sp: Skip all input xyz points that fall outside the region [Default uses all the data in the triangulation]. Alternatively, use −St to skip triangles whose three vertices are all outside the region.


Give name of file with network information. Each record must contain triplets of node numbers for a triangle [Default computes these using Delaunay triangulation (see triangulate)].


Draw Unix System time stamp on plot. By adding just/dx/dy/, the user may specify the justification of the stamp and where the stamp should fall on the page relative to lower left corner of the plot. For example, BL/0/0 will align the lower left corner of the time stamp with the lower left corner of the plot. Optionally, append a label, or c (which will plot the command string.). The GMT parameters UNIX_TIME, UNIX_TIME_POS, and UNIX_TIME_FORMAT can affect the appearance; see the gmtdefaults man page for details. The time string will be in the locale set by the environment variable TZ (generally local time).


Selects verbose mode, which will send progress reports to stderr [Default runs "silently"].


Select contouring and set contour pen attributes. If the + flag is set then the contour lines are colored according to the cpt file (see −C). (See SPECIFYING PENS below).

−X −Y

Shift plot origin relative to the current origin by (x-shift,y-shift) and optionally append the length unit (c, i, m, p). You can prepend a to shift the origin back to the original position after plotting, or prepend r [Default] to reset the current origin to the new location. If −O is used then the default (x-shift,y-shift) is (0,0), otherwise it is (r1i, r1i) or (r2.5c, r2.5c). Alternatively, give c to align the center coordinate (x or y) of the plot with the center of the page based on current page size.


Toggles between (longitude,latitude) and (latitude,longitude) input and/or output. [Default is (longitude,latitude)]. Append i to select input only or o to select output only. [Default affects both].


Selects binary input. Append s for single precision [Default is d (double)]. Uppercase S or D will force byte-swapping. Optionally, append ncol, the number of columns in your binary input file if it exceeds the columns needed by the program. Or append c if the input file is netCDF. Optionally, append var1/var2/... to specify the variables to be read. [Default is 3 input columns]. Use 4-byte integer triplets for node ids (−T).


Selects binary output. Append s for single precision [Default is d (double)]. Uppercase S or D will force byte-swapping. Optionally, append ncol, the number of desired columns in your binary output file. [Default is 3 output columns].


Specifies the number of plot copies. [Default is 1].


When used in conjunction with −D a single multisegment file is created, and each contour section is preceded by a header record whose first column is flag followed by the contour level.



The attributes of lines and symbol outlines as defined by pen is a comma delimetered list of width, color and texture, each of which is optional. width can be indicated as a measure (points, centimeters, inches) or as faint, thin[ner|nest], thick[er|est], fat[ter|test], or obese. color specifies a gray shade or color (see SPECIFYING COLOR below). texture is a combination of dashes ‘-’ and dots ‘.’.



The color of lines, areas and patterns can be specified by a valid color name; by a gray shade (in the range 0−255); by a decimal color code (r/g/b, each in range 0−255; h-s-v, ranges 0−360, 0−1, 0−1; or c/m/y/k, each in range 0−1); or by a hexadecimal color code (#rrggbb, as used in HTML). See the gmtcolors manpage for more information and a full list of color names.


To make a raw contour plot from the file and drawing the contours (pen = 0.5p) given in the color palette file topo.cpt on a Lambert map at 0.5 inch/degree along the standard parallels 18 and 24, use

pscontour −R 320/330/20/30 −Jl 18/24/0.5i −C topo.cpt −W 0.5p >

To create a color PostScript plot of the numerical temperature solution obtained on a triangular mesh whose node coordinates and temperatures are stored in and mesh arrangement is given by the file mesh.ijk, using the colors in temp.cpt, run

pscontour −R 0/150/0/100 −Jx 0.1 −C temp.cpt −G −W 0.25p >


Sometimes there will appear to be thin lines of the wrong color in the image. This is a round-off problem which may be remedied by using a higher value of DOTS_PR_INCH in the .gmtdefaults4 file.


GMT(1), gmtcolors(5), grdcontour(1), grdimage(1), nearneighbor(1), psbasemap(1), psscale(1), surface(1), triangulate(1)


Watson, D. F., 1982, Acord: Automatic contouring of raw data, Comp. & Geosci., 8, 97−101.
Shewchuk, J. R., 1996, Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator, First Workshop on Applied Computational Geometry (Philadelphia, PA), 124-133, ACM, May 1996.