Provided by: gmt-common_5.4.5+dfsg-1_all bug


       grdfilter - Filter a grid in the space (or time) domain


       grdfilter ingrid  -Ddistance_flag
        -Goutgrid [  -Iincrement ] [  -Ni|p|r ] [  -Rregion ] [  -T ] [  -V[level] ] [ -fflags ]

       Note: No space is allowed between the option flag and the associated arguments.


       grdfilter will filter a grid file in the time domain using one of the selected convolution
       or non-convolution isotropic or rectangular filters and compute distances using  Cartesian
       or Spherical geometries.  The output grid file can optionally be generated as a sub-region
       of the input (via -R) and/or with new increment (via -I) or registration (via -T). In this
       way,  one  may have "extra space" in the input data so that the edges will not be used and
       the output can be within one half-width of the input edges. If  the  filter  is  low-pass,
       then the output may be less frequently sampled than the input.


       ingrid The grid file of points to be filtered. (See GRID FILE FORMATS below).

              Distance flag tells how grid (x,y) relates to filter width as follows:

              flag = p: grid (px,py) with width an odd number of pixels; Cartesian distances.

              flag = 0: grid (x,y) same units as width, Cartesian distances.

              flag = 1: grid (x,y) in degrees, width in kilometers, Cartesian distances.

              flag = 2: grid (x,y) in degrees, width in km, dx scaled by cos(middle y), Cartesian

              The above options are fastest because they allow weight matrix to be computed  only
              once.  The  next  three  options are slower because they recompute weights for each

              flag = 3: grid (x,y) in degrees, width in km, dx  scaled  by  cosine(y),  Cartesian
              distance calculation.

              flag = 4: grid (x,y) in degrees, width in km, Spherical distance calculation.

              flag  =  5:  grid (x,y) in Mercator -Jm1 img units, width in km, Spherical distance

              Sets the filter type. Choose among convolution and non-convolution filters. Use any
              filter  code  x  (listed  below) followed by the full diameter width. This gives an
              isotropic filter; append /width2 for a rectangular filter (requires  -Dp  or  -D0).
              By  default we perform low-pass filtering; append +h to select high-pass filtering.
              Some filters allow for optional arguments and modifiers.

              Convolution filters (and their codes) are:

              (b) Boxcar: All weights are equal.

              (c) Cosine Arch: Weights follow a cosine arch curve.

              (g) Gaussian: Weights are given by the Gaussian function, where width  is  6  times
              the conventional Gaussian sigma.

              (f)  Custom:  Weights are given by the precomputed values in the filter weight grid
              file weight, which must have odd dimensions; also requires -D0 and  output  spacing
              must match input spacing or be integer multiples.

              (o) Operator: Weights are given by the precomputed values in the filter weight grid
              file weight, which must have odd dimensions; also requires -D0 and  output  spacing
              must  match  input  spacing  or be integer multiples. Weights are assumed to sum to
              zero so no accumulation of weight sums and normalization will be done.

              Non-convolution filters (and their codes) are:

              (m) Median: Returns median value. To select another quantile append  +qquantile  in
              the 0-1 range [Default is 0.5, i.e., median].

              (p)  Maximum likelihood probability (a mode estimator): Return modal value. If more
              than one mode is found we return their average value. Append +l or +u if you rather
              want to return the lowermost or uppermost of the modal values.

              (h)  Histogram  mode (another mode estimator): Return the modal value as the center
              of the dominant peak in a  histogram.  Append  /binwidth  to  specify  the  binning
              interval.  Use modifier +c to center the bins on multiples of binwidth [Default has
              bin edges that are multiples of binwidth].  If more  than  one  mode  is  found  we
              return  their  average  value.  Append  +l  or  +u if you rather want to return the
              lowermost or uppermost of the modal values.

              (l) Lower: Return the minimum of all values.

              (L) Lower: Return minimum of all positive values only.

              (u) Upper: Return maximum of all values.

              (U) Upper: Return maximum or all negative values only.

              In the case of L|U it is possible that no data passes the  initial  sign  test;  in
              that case the filter will return NaN.

              outgrid is the output grid file of the filter. (See GRID FILE FORMATS below).


              x_inc  [and  optionally  y_inc]  is  the  grid spacing. Optionally, append a suffix
              modifier. Geographical (degrees) coordinates: Append m to indicate arc minutes or s
              to  indicate  arc  seconds.  If  one  of  the  units e, f, k, M, n or u is appended
              instead, the increment is assumed to be given in meter, foot,  km,  Mile,  nautical
              mile  or  US  survey  foot,  respectively,  and will be converted to the equivalent
              degrees longitude at the middle latitude of the region (the conversion  depends  on
              PROJ_ELLIPSOID).  If  y_inc  is given but set to 0 it will be reset equal to x_inc;
              otherwise it will be converted to degrees  latitude.  All  coordinates:  If  +e  is
              appended  then the corresponding max x (east) or y (north) may be slightly adjusted
              to fit exactly the given increment  [by  default  the  increment  may  be  adjusted
              slightly  to fit the given domain]. Finally, instead of giving an increment you may
              specify the number of nodes  desired  by  appending  +n  to  the  supplied  integer
              argument;  the  increment  is  then  recalculated  from the number of nodes and the
              domain. The resulting increment value  depends  on  whether  you  have  selected  a
              gridline-registered  or  pixel-registered  grid;  see App-file-formats for details.
              Note: if -Rgrdfile is used then the grid spacing has already been initialized;  use
              -I to override the values.

              Determine how NaN-values in the input grid affects the filtered output: Append i to
              ignore all NaNs in the calculation of filtered value [Default],  r  is  same  as  i
              except  if  the  input  node  was NaN then the output node will be set to NaN (only
              applies if both grids are co-registered), and p which will force the filtered value
              to be NaN if any grid-nodes with NaN-values are found inside the filter circle.

       -R     west,  east,  south,  and  north defines the Region of the output points. [Default:
              Same as input.]

       -T     Toggle the node registration for the output grid so as to become  the  opposite  of
              the input grid [Default gives the same registration as the input grid].

       -V[level] (more ...)
              Select verbosity level [c].

       -f[i|o]colinfo (more ...)
              Specify data types of input and/or output columns.

       -^ or just -
              Print a short message about the syntax of the command, then exits (NOTE: on Windows
              just use -).

       -+ or just +
              Print  an  extensive  usage  (help)  message,  including  the  explanation  of  any
              module-specific option (but not the GMT common options), then exits.

       -? or no arguments
              Print  a  complete  usage (help) message, including the explanation of all options,
              then exits.


       By default GMT writes out grid as single precision floats  in  a  COARDS-complaint  netCDF
       file  format.  However, GMT is able to produce grid files in many other commonly used grid
       file formats and also facilitates so called "packing" of grids, writing out floating point
       data as 1- or 2-byte integers. (more ...)


       When  the  output  grid  type  is  netCDF,  the  coordinates  will be labeled "longitude",
       "latitude", or "time" based on the attributes of the input data or grid (if any) or on the
       -f  or  -R  options.  For  example,  both  -f0x  -f1t and -R90w/90e/0t/3t will result in a
       longitude/time grid. When the x, y, or z coordinate is time, it will be stored in the grid
       as relative time since epoch as specified by TIME_UNIT and TIME_EPOCH in the gmt.conf file
       or on the command line. In addition, the unit attribute of the time variable will indicate
       both this unit and epoch.


       Suppose  that  is a file of 5 minute bathymetry from 140E to 260E
       and 0N to 50N, and you want to find the medians of values within  a  300km  radius  (600km
       full width) of the output points, which you choose to be from 150E to 250E and 10N to 40N,
       and you want the output values every 0.5 degree. Using  spherical  distance  calculations,
       you need:

              gmt grdfilter -Fm600 \
                            -D4 -R150/250/10/40 -I0.5 -V

       If  we  instead  wanted a high-pass result then one can perform the corresponding low-pass
       filter using a coarse grid interval as grdfilter will resample  the  result  to  the  same
       resolution as the input grid so we can compute the residuals, e.g.,

              gmt grdfilter -Fm600+h \
                            -D4 -R150/250/10/40 -I0.5 -V

       Here, the grid will have the same 5 minute resolution as the original.

       To  filter  the  dataset  in  using  a  custom anisotropic Gaussian filter exp
       (-0.5*r^2) whose distances r from the center is given by (2x^2 + y^2 -2xy)/6,  with  major
       axis at an angle of 63 degrees with the horizontal, try

              gmt grdmath -R-10/10/-10/10 -I1 X 2 POW 2 MUL Y 2 POW ADD X Y MUL 2 MUL \
                          SUB 6 DIV NEG 2 DIV EXP DUP SUM DIV =
              gmt grdfilter -D0 -V


       1. To  use the -D5 option the input Mercator grid must be created by img2mercgrd using the
          -C option so the origin of the y-values is the Equator (i.e., x = y = 0  correspond  to
          lon = lat = 0).

       2. If  the new x_inc, y_inc set with -I are NOT integer multiples of the increments in the
          input data, filtering will  be  considerably  slower.   [Default  increments:  Same  as


       gmt, grdfft img2grd


       2019, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe