## NAME

          pswiggle - Plot anomaly along track on a map

## SYNOPSIS

          pswiggle xyz_files -Jparameters -Rwest/east/south/north[r] -Zscale [
          -Adirection ] [ -Btickinfo ] [ -Ccenter ] [ -Dgap ] [
          -Eazimuth/elevation ] [ -Gfillrgb ] [ -H[nrec] ] [ -Ifix_az ] [ -K ] [
          -M[flag] ] [ -N ] [ -O ] [ -P ] [ -S[x]lon0/lat0/length[units] ] [
          -Ttrack_pen ] [ -U[/dx/dy/][label] ] [ -V  ] [ -Wwiggle_pen ] [ -Xx-
          shift ] [ -Yy-shift ] [ -ccopies ] [ -: ] [ -bi[s][n] ]

## DESCRIPTION

          pswiggle reads (x,y,z) triplets from files [or standard input] and
          plots z as a function of distance along track.  This means that two
          consecutive (x,y) points define the local distance axis, and the local
          z axis is then perpendicular to the distance axis.  The user may set a
          preferred positive anomaly plot direction, and if the positive normal
          is outside the plus/minus 90 degree window around the preferred
          direction, then 180 degrees are added to the direction.  Either the
          positive or the negative wiggle may be shaded.  The resulting
          PostScript code is written to standard output.

          files
               List one or more file-names. If no files are given, pswiggle 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.

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

          -Z   Gives anomaly scale in data-units/cm.

## OPTIONS

          No space between the option flag and the associated arguments.

          -A   Sets the preferred positive direction.  Positive wiggles will
               "gravitate" towards that direction.

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

          -C   Subtract center from the data set before plotting [0].

          -D   Means there is a data gap if 2 consecutive points are more than
               gap distance units apart.  For longitude/latitude data gap is in
               km, else it is in the user's units.

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

          -G   Set fill of positive wiggles. [Default is black] Specify the
               shade (0-255) or color (r/g/b), or -Gpdpi/pattern, where pattern
               gives the number of the built-in pattern (1-90) OR the name of a
               Sun 1-, 8-, or 24-bit raster file.  dpi sets the resolution of
               the image.  For 1-bit rasters: use -GP for inverse video, or
               append :Fr/g/b[B[r/g/b]] to specify fore- and background colors
               (use r/g/b = - for transparency).  See GMT Cookbook & Technical
               Reference Appendix E for information on individual patterns.

          -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   Set a fixed azimuth projection for wiggles [Default uses track
               azimuth, but see -A].

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

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

          -N   Paint negative wiggles instead of positive [Default].

          -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   Draws a simple vertical scale centered on lon0/lat0.  Use -Sx to
               specify cartesian coordinates instead.  length is in z units,
               append unit name for labeling

          -T   Draw track  [Default is no track].  Append pen attributes to use
               [Defaults: width = 1, color = 0/0/0, texture = solid].

          -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   Draw wiggle outline  [Default is no outline].  Append pen
               attributes to use [Defaults: width = 1, color = 0/0/0, texture =
               solid].

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

          -:   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 3 input columns].

## EXAMPLES

          To plot the magnetic anomaly stored in the file track.xym along track
          @ 1000 nTesla/cm (after removing a mean value of 32000 Tesla), using a
          15-cm-wide Polar Stereographic map ticked every 5 degrees in Portrait
          mode, with positive anomalies in red on a blue track of width 0.25
          points, try

          pswiggle track.xym -R-20/10/-80/-60 -JS0/90/15c -Z1000 -B5 -P
          -G255/0/0 -T0.25p/0/0/255 -S1000 -V > track_xym.ps

## BUGS

          Sometimes the (x,y) coordinates are not printed with enough
          significant digits, so the local perpendicular to the track swings
          around a lot.  To see if this is the problem, you should do this:

          awk '{ if (NR > 1) print atan2(y-$1, x-$2); y=$1; x=$2; }'
          yourdata.xyz | more

          (note that output is in radians; on some machines you need "nawk" to
          do this).  Then if these numbers jump around a lot, you may do this:

          gmtset D_FORMAT %.12lg
          awk '{ print NR, $0 }' yourdata.xyz | filter1d -Fb5 -N4/0 >
          smoothed.xyz

          and plot this data set instead.

## SEE ALSO

          gmt, filter1d, psbasemap, splitxyz