## 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 ] [ -Nstuff ] [ -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 trans-
           forming 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 output 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  direction  mea-
                  sured 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 equiva-
                  lent  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 standard deviation in power[f] are
                  written to stdout.  Append w to write wavelength instead of fre-
                  quency.

           -F     Filter the data. Place x or y immediately after -F to  filter  x
                  or  y  direction only; default is isotropic.  Specify four wave-
                  lengths in correct units (see -M) to design a  bandpass  filter:
                  wavelengths  greater  than lc or less than hc will be cut, wave-
                  lengths 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  wave-
                  lengths  >  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, pass-
                  ing  wavelengths  >  50  and   rejecting   wavelengths   <   10.
                  -Fy1000/250/-/-  will  highpass Y, passing wavelengths < 250 and
                  rejecting 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 rectangular coordinate system using grdproject.

           -N     Choose  or  inquire about suitable grid dimensions for FFT.  -Nf
                  will force the FFT to use the dimensions of the data.  -Nq  will
                  inQuire  about more suitable dimensions.  -Nnx/ny will do FFT on
                  array size nx/ny (Must be >=  grdfile  size).   Default  chooses
                  dimensions  >=  data  which optimize speed, accuracy of FFT.  If
                  FFT dimensions >  grdfile  dimensions,  data  are  extended  and
                  tapered to zero.

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

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

## EXAMPLES

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

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

           To transform geoid heights in m (geoid.grd) on a geographical  grid  to
           free-air gravity anomalies in mGal:

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

           To  transform gravity anomalies in mGal (faa.grd) to deflections of the
           vertical (in micro-radians) in the 038 direction, we must  first  inte-
           grate  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 differenti-
           ating twice:

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

           The first order gravity anomaly (in mGal) due to the compensating  sur-
           face  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    -S0.022    -C4000
           -Gcomp_faa.grd

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

## SEE ALSO

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

    GMT4.0                            1 Oct 2004                         GRDFFT(l)