# PSWIGGLE

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
BUGS
SEE ALSO

## NAME

| pswiggle − Plot anomaly along track on a map

## SYNOPSIS

| pswiggle xyz_files −J parameters −R west/east/south/north[r] −Z scale [ −A azimuth ] [ −B[p|s]parameters ] [ −C center ] [ −D gap ] [ −E azimuth/elevation ] [ −G color ] [ −H[i][nrec] ] [ −Jz|Z parameters ] [ −I fix_az ] [ −K ] [ −M[flag] ] [ −N ] [ −O ] [ −P ] [ −S[x]lon0/lat0/length[units] ] [ −T track_pen ] [ −U[/dx/dy/][label] ] [ −V ] [ −W wiggle_pen ] [ −X[a|c|r][x-shift[u]] ] [ −Y[a|c|r][y-shift[u]] ] [ −c copies ] [ −:[i|o] ] [ −bi[s|S|d|D][ncol] ] [ −f colinfo ]

## 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 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. 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. CYLINDRICAL PROJECTIONS: −Jc lon0/lat0/scale (Cassini) −Jj lon0/scale (Miller) −Jm scale (Mercator - Greenwich and Equator as origin) −Jm lon0/lat0/scale (Mercator - Give meridian and standard parallel) −Joa lon0/lat0/azimuth/scale (Oblique Mercator - point and azimuth) −Job lon0/lat0/lon1/lat1/scale (Oblique Mercator - two points) −Joc lon0/lat0/lonp/latp/scale (Oblique Mercator - point and pole) −Jq lon0/scale (Equidistant Cylindrical Projection (Plate Carree)) −Jt lon0/scale (TM - Transverse Mercator, with Equator as y = 0) −Jt lon0/lat0/scale (TM - Transverse Mercator, set origin) −Ju zone/scale (UTM - Universal Transverse Mercator) −Jy lon0/lats/scale (Basic Cylindrical Projection) AZIMUTHAL PROJECTIONS: −Ja lon0/lat0/scale (Lambert) −Je lon0/lat0/scale (Equidistant) −Jf lon0/lat0/horizon/scale (Gnomonic) −Jg lon0/lat0/scale (Orthographic) −Js lon0/lat0/[slat/]scale (General Stereographic) CONIC PROJECTIONS: −Jb lon0/lat0/lat1/lat2/scale (Albers) −Jd lon0/lat0/lat1/lat2/scale (Equidistant) −Jl lon0/lat0/lat1/lat2/scale (Lambert) MISCELLANEOUS PROJECTIONS: −Jh lon0/scale (Hammer) −Ji lon0/scale (Sinusoidal) −Jk[f|s]lon0/scale (Eckert IV (f) and VI (s)) −Jn lon0/scale (Robinson) −Jr lon0/scale (Winkel Tripel) −Jv lon0/scale (Van der Grinten) −Jw lon0/scale (Mollweide) NON-GEOGRAPHICAL PROJECTIONS: −Jp[a]scale[/origin][r|z] (Polar coordinates (theta,r)) −Jx x-scale[d|l|p pow|t|T][/y-scale[d|l|p pow|t|T]] (Linear, log, and power scaling)

| −R |  | 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[:ss.xxx][W|E|S|N] format. Append r if lower left and upper right map coordinates are given instead of wesn. The two shorthands −Rg −Rd stand for global domain (0/360 or -180/+180 in longitude respectively, with -90/+90 in latitude). For calendar time coordinates you may either give relative time (relative to the selected TIME_EPOCH and in the selected TIME_UNIT; append t to −JX|x), or 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 as indicated (however, input/output and plotting formats are flexible).
| −Z |  | Gives anomaly scale in data-units/distance-unit.

## OPTIONS

| No space between the option flag and the associated arguments.

| −A |  | Sets the preferred positive azimuth. Positive wiggles will "gravitate" towards that direction.
| −B |  | Sets map boundary annotation and tickmark intervals; see the psbasemap man page for all the 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 grey shade (0−255) or color (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−100%; or valid color name). Alternatively, specify −Gp dpi/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. The dpi sets the resolution of the image. For 1-bit rasters: use −GP for inverse video, or append :F color[B[color]] to specify fore- and background colors (use color = - 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 .gmtdefaults4 file. If used, GMT default is 1 header record. Use −Hi if only input data should have header records [Default will write out header records if the input data have them].
| −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 = black, texture = solid]. 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 grey shade (0−255) or color (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−100%; or valid color name). texture is a combination of dashes ‘-’ and dots ‘.’.
| −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. Optionally, append a label, or c (which will plot the command string.). The GMT parameters UNIX_TIME and UNIX_TIME_POS can affect the appearance; see the gmtdefaults man page for details.
| −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 = black, texture = solid].
| −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].
| −bi |  | 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 file if it exceeds the columns needed by the program. [Default is 3 input columns].
| −c |  | Specifies the number of plot copies. [Default is 1].
| −f |  | Special formatting of input and output columns (time or geographical data). Specify i(nput) or o(utput) [Default is both input and output]. Give one or more columns (or column ranges) separated by commas. Append T (Absolute calendar time), t (time relative to chosen TIME_EPOCH), x (longitude), y (latitude), or f (floating point) to each column or column range item. Shorthand −f[i|o]g means −f[i|o]0x,1y (geographic coordinates).

## 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, use pswiggle track.xym −R-20/10/-80/-60 −JS0/90/15c −Z1000 −B5 −P −Gred −T0.25p,blue −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: awk ’{ print NR, $0 }’ yourdata.xyz | filter1d −Fb5 −N4/0 −−D_FORMAT=%.12lg > smoothed.xyz and plot this data set instead.

## SEE ALSO

| GMT(l), filter1d(l), psbasemap(l), splitxyz(l)