NAME

     grdfft - Perform mathematical operations on grdfiles in  the
     frequency domain


SYNOPSIS

     grdfft in_grdfile -Gout_grdfile [ -Aazimuth ] [ -Czlevel ] [
     -D[scale|g]  ]  [  -E[x|y][w]  ]  [  -F[x|y]lc/lp/hp/hc  ] [
     -I[scale|g] ] [ -L ] [ -M ] [ -Sscale ] [ -Tte/rl/rm/rw/ri ]
     [ -V ]


DESCRIPTION

     grdfft will take the 2-D forward Fast Fourier Transform  and
     perform one or more mathematical operations in the frequency
     domain before transforming back to  the  space  domain.   An
     option  is provided to scale the data before writing the new
     values to an output file.  The horizontal dimensions of  the
     grdfiles  are  assumed  to be in meters.  Geographical grids
     may be used by specifying the -M option that scales  degrees
     to  meters.  If you have grdfiles with dimensions in km, you
     could change this to meters using grdedit or scale the  out-
     put with grdmath.
          No space between the option  flag  and  the  associated
     arguments.   Use  upper  case for the option flags and lower
     case for modifiers.

     in_grdfile
          2-D binary grd file to be operated on.

     -G   Specify the name of the output grd file.



OPTIONS

     -A   Take the directional derivative in the  azimuth  direc-
          tion measured in degrees CW from north.

     -C   Upward (for zlevel > 0) or downward (for  zlevel  <  0)
          continue the field zlevel meters.

     -D   Differentiate the field, i.e., take d(field)/dz.   This
          is  equivalent  to  multiplying  by kr in the frequency
          domain (kr is radial wave number).  Append a  scale  to
          multiply  by  (kr  *  scale)  instead.   Alternatively,
          append g to indicate that your data are  geoid  heights
          in  meters  and  output  should be gravity anomalies in
          mGal. [Default is no scale].

     -E   Estimate power spectrum in the radial direction.  Place
          x  or y immediately after -E to compute the spectrum in
          the x or y direction instead.  No grdfile is created; f
          (i.e., frequency or wave number), power[f], and 1 stan-
          dard deviation  in  power[f]  are  written  to  stdout.
          Append w to write wavelength instead of frequency.

     -F   Filter the data.  Place x or y immediately after -F  to
          filter  x  or  y  direction only; default is isotropic.
          Specify four wavelengths in correct units (see  -M)  to
          design  a  bandpass filter; wavelengths greater than lc
          or less than hc will be cut, wavelengths  greater  than
          lp  and less than hp will be passed, and wavelengths in
          between     will     be     cosine-tapered.       E.g.,
          -F1000000/250000/50000/10000  -M will bandpass, cutting
          wavelengths > 1000 km and < 10 km, passing  wavelengths
          between  250  km  and  50  km.   To  make a highpass or
          lowpass filter, give hyphens (-) for  hp/hc  or  lc/lp.
          E.g.,  -Fx-/-/50/10 will lowpass X, passing wavelengths
          > 50 and rejecting wavelengths <  10.   -Fy1000/250/-/-
          will  highpass Y, passing wavelengths < 250 and reject-
          ing wavelengths > 1000.

     -I   Integrate  the  field,  i.e.,  compute  integral_over_z
          (field  *  dz).   This is equivalent to divide by kr in
          the  frequency  domain  (kr  is  radial  wave  number).
          Append  a  scale  to  divide  by  (kr * scale) instead.
          Alternatively, append g to indicate that your data  set
          is gravity anomalies in mGal and output should be geoid
          heights in meters.  [Default is no scale].

     -L   Leave trend alone.  By default, a linear trend will  be
          removed prior to the transform.

     -M   Map units.  Choose this option if  your  grdfile  is  a
          geographical  grid and you want to convert degrees into
          meters.  If the data are  close  to  either  pole,  you
          should consider projecting the grdfile onto a rectangu-
          lar coordinate system using grdproject.

     -S   Multiply each element by  scale  in  the  space  domain
          (after  the  frequency domain operations).  [Default is
          1.0].

     -T   Compute the isostatic compensation from the  topography
          load  (input  grdfile) on an elastic plate of thickness
          te.  Also append densities for load, mantle, water, and
          infill  in SI units.  If te == 0 then the Airy response
          is returned.  -T implicitly sets -L.


EXAMPLES

     To upward continue the sea-level magnetic anomalies  in  the
     file mag_0.grd to a level 800 m above sealevel, try

     grdfft mag_0.grd -C800 -V -Gmag_800.grd

     To transform geoid heights in m (geoid.grd) on a  geographi-
     cal grid to free-air gravity anomalies in mGal, do

     grdfft geoid.grd -Dg -M -V -Ggrav.grd

     To transform gravity anomalies in mGal (faa.grd) to  deflec-
     tions  of  the vertical (in micro-radians) in the 038 direc-
     tion, we must first integrate gravity  to  get  geoid,  then
     take  the  directional derivative, and finally scale radians
     to micro-radians:

     grdfft faa.grd -Ig -A38 -S1e6 -V -Gdefl_38.grd

     Second vertical derivatives of gravity anomalies are related
     to  the  curvature  of  the  field.  We can compute these as
     mGal/m^2 by differentiating twice:

     grdfft gravity.grd -D -D -V -Ggrav_2nd_derivative.grd

     The first order gravity anomaly (in mGal) due to the compen-
     sating surface caused by the topography load topo.grd (in m)
     on a 20 km thick elastic plate, assumed to be 4  km  beneath
     the observation level can be computed as

     grdfft topo.grd -T20000/2800/3330/1030/2300  -C4000  -S0.022
     -Gcomp_faa.grd

     where 0.022 is the  scale  needed  for  the  first  term  in
     Parker's  expansion for computing gravity from topography (=
     2 * PI * G * (rhom - rhol)).


SEE ALSO

     gmt(l), grdedit(l), grdmath(l), grdproject(l)