## NAME

          triangulate - Perform optimal Delauney triangulation and gridding

## SYNOPSIS

          triangulate infiles [ -Dx|y ] [ -Eempty ] [ -Ggrdfile ] [ -H[nrec] ] [
          -Ix_inc[m|c][/y_inc[m|c]] ] [ -Jparameters ] [ -M[flag] ] [
          -Rwest/east/south/north[r] ] [ -V ] [ -Z ] [ -: ] [ -bi[s][n] ] [
          -bo[s] ]

## DESCRIPTION

          triangulate reads one or more ASCII [or binary] files (or standard
          input) containing x,y[,z] and performs Delauney triangulation, i.e.,
          it find how the points should be connected to give the most
          equilateral triangulation possible.  If a map projection is chosen
          then it is applied before the triangulation is calculated.  By
          default, the output is triplets of point id numbers that make up each
          triangle and is written to standard output.  The id numbers refer to
          the points position in the input file.  As an option, you may choose
          to create a multiple segment file that can be piped through psxy to
          draw the triangulation network.  If -G -I are set a grid will be
          calculated based on the surface defined by the planar triangles.  The
          actual algorithm used in the triangulations is either that of
          Shewchuck [1996] or Watson [1982].  This choice is made during the GMT
          installation.

          infiles
               Data files with the point coordinates in ASCII (or binary; see
               -b).  If no files are given the standard input is read.

## OPTIONS

          -D   Take either the x- or y-derivatives of surface represented by the
               planar facets (only used when -G is set).

          -E   Set the value assigned to empty nodes when -G is set [NaN].

          -G   Use triangulation to grid the data onto an even grid (specified
               with -I, -R).  Append the name of the output grid file.  The
               interpolation is performed in the original coordinates, so if
               your triangles are close to the poles you are better off
               projecting all data to a local coordinate system before using
               triangulate (this is true of all gridding routines).

          -H   Input file(s) has Header record(s).  Number of header records can
               be changed by editing your .gmtdefaults file.  If used, GMT
               default is 1 header record.

          -I   x_inc [and optionally y_inc] sets the grid  size for optional
               grid output (see -G).  Append m to indicate minutes or c to
               indicate seconds.

          -J   Selects the map projection. Scale is inch/degree, 1:xxxxx, or
               width in inch (upper case modifier).

               CYLINDRICAL PROJECTIONS:

               -Jclon0/lat0/scale (Cassini)
               -Jjlon0/scale (Miller)
               -Jmscale (Mercator - Greenwich and Equator as origin)
               -Jmlon0/lat0/scale (Mercator - Give meridian and standard
               parallel)
               -Joalon0/lat0/azimuth/scale (Oblique Mercator - point and
               azimuth)
               -Joblon0/lat0/lon1/lat1/scale (Oblique Mercator - two points)
               -Joclon0/lat0/lonp/latp/scale (Oblique Mercator - point and pole)
               -Jqlon0/scale (Equidistant Cylindrical Projection (Plate Carree))
               -Jtlon0/scale (TM - Transverse Mercator, with Equator as y = 0)
               -Jtlon0/lat0/scale (TM - Transverse Mercator, set origin)
               -Juzone/scale (UTM - Universal Transverse Mercator)
               -Jylon0/lats/scale (Basic Cylindrical Projection)

               AZIMUTHAL PROJECTIONS:

               -Jalon0/lat0/scale (Lambert).
               -Jelon0/lat0/scale (Equidistant).
               -Jflon0/lat0/horizon/scale (Gnomonic).
               -Jglon0/lat0/scale (Orthographic).
               -Jslon0/lat0/scale (General Stereographic)

               CONIC PROJECTIONS:

               -Jblon0/lat0/lat1/lat2/scale (Albers)
               -Jdlon0/lat0/lat1/lat2/scale (Equidistant)
               -Jllon0/lat0/lat1/lat2/scale (Lambert)

               MISCELLANEOUS PROJECTIONS:

               -Jhlon0/scale (Hammer)
               -Jilon0/scale (Sinusoidal)
               -Jk[f|s]lon0/scale (Eckert IV (f) and VI (s))
               -Jnlon0/scale (Robinson)
               -Jrlon0/scale (Winkel Tripel)
               -Jvlon0/scale (Van der Grinten)
               -Jwlon0/scale (Mollweide)

               NON-GEOGRAPHICAL PROJECTIONS:

               -Jpscale (Linear projection for polar (theta,r) coordinates)
               -Jxx-scale[l|ppow][/y-scale[l|ppow]] (Linear, log, and power
               scaling)
               More details can be found in the psbasemap manpages.

          -M   Output triangulation network as multiple line segments separated
               by a record whose first character is flag [>].  To plot, use psxy
               with the -M option (see Examples).

          -R   west, east, south, and north specify the Region of interest.  To
               specify boundaries in degrees and minutes [and seconds], use the
               dd:mm[:ss] format.  Append r if lower left and upper right map
               coordinates are given instead of wesn.

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

          -Z   Controls whether binary data file has two or three columns [2].
               Ignored if -b is not set.

          -:   Toggles between (longitude,latitude) and (latitude,longitude)
               input/output.  [Default is (longitude,latitude)].

          -bi  Selects binary input.  Append s for single precision [Default is
               double].  Append n for the number of columns in the binary
               file(s).  [Default is 2 input columns].

          -bo  Selects binary output.  Append s for single precision [Default is
               double].  Node ids are stored as binary 4-byte integer triplets.
               -bo is ignored if -M is selected.

## EXAMPLES

          To triangulate the points in the file samples.xyz, store the triangle
          information in a binary file, and make a grid for the given area and
          spacing, try

          triangulate samples.xyz -bo -R0/30/0/30 -I2 -Gsurf.grd > samples.ijk

          To draw the optimal Delauney triangulation network based on the same
          file using a 6-inch-wide Mercator map, try

          triangulate samples.xyz -M -R-100/-90/30/34 -JM6i | psxy -M -R-100/-
          90/30/34 -JM6i -W0.5p -B1 > network.ps

## SEE ALSO

          gmt, pscontour

## REFERENCES

          Watson, D. F., 1982, Acord: Automatic contouring of raw data, Comp. &
          Geosci., 8, 97-101.
          Shewchuck, 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.
          www.cs.cmu.edu/~quake/triangle.html