## NAME

          psxyz - Plot lines, polygons, and symbols in 3-D

## SYNOPSIS

          psxyz files -Jparameters -Rwest/east/south/north/zmin/zmax[r] [
          -Btickinfo ] [ -Ccptfile ] [ -Eazimuth/elevation ] [ -Gfill ] [
          -H[nrec] ] [ -K ] [ -L ] [ -M[flag] ] [ -N ] [ -O ] [ -P ] [
          -S[symbol][size] ] [ -U[/dx/dy/][label] ] [ -V ] [ -W[pen] ] [ -Xx-
          shift ] [ -Yy-shift ] [ -Zzlevel ] [ -: ] [ -ccopies ] [ -bi[s][n] ]

## DESCRIPTION

          psxyz reads (x,y,z) triplets from files [or standard input] and
          generates PostScript code that will plot lines, polygons, or symbols
          at those locations in 3-D.  If a symbol is selected and no symbol size
          given, then psxyz will interpret the fourth column of the input data
          as symbol size in cm.  If no symbols are specified then the symbol
          code (see -S below) must be present as last column in the input.
          Multiple segment files may be plotted using the -M option.  If no
          symbols are selected, a line will be drawn.  To explicitly close
          polygons, use -L.  Select a shade with -G.  If -G is set, -W will
          control whether the polygon outline is drawn or not.  If a symbol is
          selected, -G and -W determines the fill color and outline/no outline,
          respectively.  The PostScript code is written to standard output.

          files
               List one or more file-names. If no files are given, psxyz will
               read standard input.

          -J   Selects the map projection. Scale is cm/degree, 1:xxxxx, or width
               in cm (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.

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

          -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.

## OPTIONS

          No space between the option flag and the associated arguments.

          -B   Sets map boundary tickmark intervals. See psbasemap for details.

          -C   Give a color palette file and let symbol color be determined by
               the t-value in the fourth column.  Must be used with -S.  If
               used, then additional fields are shifted over by one column
               (optional size would be in 5th rather than 4th field, etc.).

          -E   Sets the viewpoint's azimuth and elevation [180/90].

          -G   Select filling of polygons and symbols.  Append the shade
               (0-255), color (r/g/b), or p|pdpi/pattern (polygons only)
               [Default is no fill].  Note when -M is chosen, psxyz will search
               for -G and -W strings in all the subheaders and let any found
               values over-ride the command line settings.

          -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.

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

          -L   Force closed polygons: will connect the endpoints of the line-
               sement(s) and draw polygons.

          -M   Multiple segment file.  Segments are separated by a record whose
               first character is flag.  [Default is '>'].

          -N   Do NOT skip symbols that fall outside map border [Default plots
               points inside border only].

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

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

          -S   Plot symbols.  size is symbol size in cm (unless c, i, m, or p is
               appended).   The uppercase symbols A, C, D, H, I, S, T are
               normalized to have the same area as a circle of given size, while
               the corresponding lowercase symbols are circumscribed by the
               circle.  Choose between:

          -Sa  star.  size is diameter of circumscribing circle.

          -Sb  (b)ar extending from base to y.  size is bar width.  Append u if
               size is in x-units [Default is cm]. By default, base = 0.  Append
               bbase to change this value.

          -Sc  (c)ircle.  size is diameter of circle.

          -Sd  (d)iamond.  size is diameter of circumscribing circle.

          -Se  ellipse.  Direction (in degrees counterclockwise from
               horizontal), major_axis (in cm), and minor_axis (in cm) must be
               found in columns 4, 5, and 6.

          -SE  Same as -Se, except azimuth (in degrees east of north) should be
               given instead of direction.  The azimuth will be mapped into an
               angle based on the chosen map projection (-Se leaves the
               directions unchanged.)  Furthermore, the axes lengths must be
               given in km instead of cm.

          -Sf  fault.  Give distance gap between ticks and ticklength in cm.  If
               gap is negative, it is interpreted to mean number of ticks
               instead.  Append l or r to draw tick on the left or right side of
               line [Default is centered].  Upper case L or R draws a triangle
               instead of line segment.

          -Sh  hexagon.  size is diameter of circumscribing circle.

          -Si  inverted triangle.  size is diameter of circumscribing circle.

          -Sl  letter or text string.  Give size in cm, and append /string after
               the size.  Note that the size is only approximate; no individual
               scaling is done for different characters.  Remember to escape
               special characters like *.

          -So  c(o)lumn (3-D) extending from base to z.  size sets base width
               (Use xsize/ysize if not the same).  Append u if size is in x-
               units [Default is cm].  By default, base = 0.  Append bbase to
               change this value.

          -Sp  (p)oint.  No size needs to be specified.

          -Ss  (s)quare.  size is diameter of circumscribing circle.

          -St  (t)riangle.  size is diameter of circumscribing circle.

          -Su  c(u)be (3-D).  size sets length of all sides in cm. Append u if
               size is in x-units [Default is cm].

          -Sv  (v)ector.  Direction and length (in cm) must be found in columns
               4 and 5.  size means arrowwidth/headlength/headwidth in (cm)
               [[Default is 0.075c/0.3c/0.25c cm].  By default arrow attributes
               remains invariant to the length of the arrow.  To have the size
               of the vector scale down with decreasing size, append nnorm,
               where vectors shorter than norm will have their attributes scaled
               by length/norm.

          -SV  Same as -Sv, except azimuth should be given instead of direction.
               The azimuth will be mapped into an angle based on the chosen map
               projection (-Sv leaves the directions unchanged.)

          -Sx  (x)cross. size is diameter of circumscribing circle.

          -U   Draw Unix System time stamp on plot.  User may specify where the
               lower left corner of the stamp should fall on the page relative
               to lower left corner of plot in cm [Default is (-2c/-2c)].
               Optionally, append a label, or c (which will plot the command
               string.)

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

          -W   Set pen attributes.  [Defaults: width = 1, color = 0/0/0, texture
               = solid].  Implicitly draws the outline of symbol with selected
               pen.

          -X -Y
               Shift origin of plot by (x-shift,y-shift) cm  [Default is
               (a2.5c,a2.5c) for new plots, (0,0) for overlays].  Prepend a for
               absolute coordinates; the default (r) will reset plot origin.

          -Z   For 3-D projections:  Sets the z-level of the basemap [0].

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

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

          -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 the required number of columns given the
               settings].

## EXAMPLES

          To plot blue columns (width = 1.25 cm) at the positions listed in the
          file heights.xyz on a 3-D projection of the space (0-10), (0-10),
          (0-100),  with tickmarks every 2, 2, and 10, viewing it from the
          southeast at 30 degree elevation, try:

          psxyz heights.xyz -R0/10/0/10/0/100 -Jx1.25c -Jz0.125c -So1.25c
          -G0/0/255 -B2:XLABEL:/2:YLABEL:/10:ZLABEL::."3-D PLOT":15 -E135/30 -Uc
          -W -P > heights.ps

## BUGS

          No hidden line removal is employed for polygons and lines.  Symbols,
          however, are first sorted according to their distance from the
          viewpoint so that nearby symbols will overprint more distant ones
          should they project to the same x,y position.
          Header must be plotted separately using pstext.
          The -N option does not adjust the BoundingBox information so you may
          have to post-process the PostScript outout with epstool or ps2epsi to
          obtain a correct BoundingBox.

## SEE ALSO

          gmt, psbasemap, psxy