Chapters: 1: Introduction 2: Simple example 3: Invocation 4: Finer Control 5: X-Y Plots 6: Contour Plots 7: Image Plots 8: Examples 9: Gri Commands 10: Programming 11: Environment 12: Emacs Mode 13: History 14: Installation 15: Gri Bugs 16: Test Suite 17: Gri in Press 18: Acknowledgments 19: License Indices: Concepts Commands Variables | ### 9.3.45: ``smooth`' All these smoothing commands ignore the location of the data. For equispaced data these algorithms have the standard interpretation in terms of digital filters. For non-equispaced data, the interpretation is up to the user.
    `smooth {x [.n.]} \
      | {y [.n.]} \
      | {grid data [.f.|{along x|y}]}'
The ``smooth x`' command does smoothing by the following formula
    x[i-1]   x[i]   x[i+1]
    ------ + ---- + ------
      4       2       4
The ``smooth x .n.`' command does boxcar smoothing with centred boxcars ``.n.`' points wide. The ``smooth y`' command does the same as ``smooth x`', but on the ``y`' column. There are several methods of smoothing grid data. Note that isolated missing values are filled in by each method. (Let the author know if you'd like that `feature' to be an option.) The ``smooth grid data`' command smooths gridded data, by weighted average in a plus-shaped window about each gridpoint. The smoothing algorithm replaces each interior gridpoint value ``z[i][j]`' by
    z[i][j]   z[i-1][j] + z[i+1][j] + z[i][j-1] + z[i][j+1]
    ------- + ---------------------------------------------
       2                          8
Points along the edges are smoothed by the same formula, after inventing image points outside the domain by planar extrapolation. The ``smooth grid data .f.`' command performs partial smoothing. A temporary fully-smoothed grid ``zSMOOTH[i][h]`' is constructed as above, and a linear combination of this grid and the original grid is used as the replacement grid:
    z[i][j] = (1-f) * z[i][j] + f * zSMOOTH[i][j]
where ``f`' is the value indicated on the command line. Thus, ``smooth grid data 0`' performs no smoothing at all, while ``smooth grid data 1`' is equivalent to ``smooth grid data`'. The ``smooth grid data along x`' command smooths the grid data across ``x`' (i.e., horizontally), by replacing each value ``z[i][j]`' with the value
    z[i][j]   z[i-1][j] + z[i+1][j]
    ------- + ---------------------
       2                4
Points along the edges are smoothed by the same formula, after inventing image points outside the domain by linear extrapolation. The ``smooth grid data along y`' command does the same thing as ``smooth grid data along x`', but the smoothing is along ``y`'. See also see Filter, a generalization of ``smooth x|y`' which allows for more sophisticated filters.