Provided by: gmt-manpages_3.4.4-1_all bug

NAME

       grdhisteq - Histogram equalization for grd files

SYNOPSIS

       grdhisteq in_grdfile [ -Gout_grdfile ] [ -Cn_cells ] [ -D ] [ -N[norm] ] [ -Q ] [ -V ]

DESCRIPTION

       grdhisteq  allows  the  user  to  find  the  data values which divide a given grdfile into
       patches of equal area. One common use of grdhisteq is in a kind of histogram  equalization
       of  an image. In this application, the user might have a grdfile of flat topography with a
       mountain in the middle.  Ordinary gray shading of this file (using grdimage/grdview)  with
       a  linear  mapping from topography to graytone will result in most of the image being very
       dark gray, with the mountain being almost white. One  could  use  grdhisteq  to  write  to
       stdout  an ASCII list of those data values which divide the range of the data into n_cells
       segments, each of which has an equal area in the image. Using awk or makecpt one can  take
       this  output and build a cpt file; using the cptfile with grdimage will result in an image
       with all levels of gray occurring equally. Alternatively, see grd2cpt.
               The second common use of grdhisteq is in writing a grdfile with  statistics  based
       on  some  kind  of  cumulative  distribution function. In this application, the output has
       relative highs and lows in the same (x,y) locations as the input file, but the values  are
       changed  to  reflect  their place in some cumulative distribution. One example would be to
       find the lowest 10% of the data: Take a grdfile, run grdhisteq and make  a  grdfile  using
       n_cells  =  10, and then contour the result to trace the 1 contour.  This will enclose the
       lowest 10% of the data, regardless  of  their  original  values.  Another  example  is  in
       equalizing  the  output  of grdgradient.  For shading purposes it is desired that the data
       have a smooth distribution, such as a gaussian.  If  you  run  grdhisteq  on  output  from
       grdgradient  and  make  a grdfile output with the Gaussian option, you will have a grdfile
       whose values are distributed according to a gaussian distribution with zero mean and  unit
       variance.  The  locations  of  these values will correspond to the locations of the input;
       that is, the most negative output value will be in the (x,y) location of the most negative
       input value, and so on.
               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 equalized.

OPTIONS

       -C     Sets how many cells (or divisions) of data range to make.

       -D     Dump level information to standard output.

       -G     Name of output 2-D grd file. Used with -N only.

       -N     Gaussian output. Use with -G to make an output grdfile with standard normal scores.
              Append  norm  to force the scores to fall in the <-1,+1> range [Default is standard
              normal scores].

       -Q     Use quadratic intensity scaling. [Default is linear].

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

EXAMPLES

       To  find  the height intervals that divide the file heights.grd into 16 divisions of equal
       area, try

       grdhisteq heights.grd -C16 -D > levels.d

       To make the poorly distributed intensities in the file  raw_intens.grd  suitable  for  use
       with grdimage or grdview, try

       grdhisteq raw_intens.grd -Gsmooth_intens.grd -N -V

RESTRICTIONS

       If  you  use  grdhisteq  to  make  a  gaussian  output for gradient shading in grdimage or
       grdview, you should be aware of the following: the output will be in the  range  [-x,  x],
       where  x  is based on the number of data in the input grdfile (nx * ny) and the cumulative
       gaussian distribution function F(x).  That is, let N = nx * ny. Then x will be adjusted so
       that  F(x)  =  (N  -  1  +  0.5)/N.  Since  about 68% of the values from a standard normal
       distribution fall within +/- 1, this will be true of the output grdfile.  But if N is very
       large,  it  is  possible  for x to be greater than 4. Therefore, with the grdimage program
       clipping gradients to the range [-1, 1], you will get correct shading of 68% of your data,
       while  16%  of them will be clipped to -1 and 16% of them clipped to +1. If this makes too
       much of the image too light or too dark, you should  take  the  output  of  grdhisteq  and
       rescale  it  using grdmath and multiplying by something less than 1.0, to shrink the range
       of the values, thus bringing  more  than  68%  of  the  image  into  the  range  [-1,  1].
       Alternatively, supply a normalization factor with -N.

SEE ALSO

       gmtdefaults(1gmt),    gmt(1gmt),    grd2cpt(1gmt),    grdgradient(1gmt),   grdimage(1gmt),
       grdmath(1gmt), grdview(1gmt), makecpt(1gmt)

                                            1 Jan 2004                               GRDHISTEQ(l)