Interface Kernel1dShape

All Known Implementing Classes:
StandardKernel1dShape

public interface Kernel1dShape
Factory interface for for Kernel1d smoothing functional forms.

Some implementations are provided in the StandardKernel1dShape class.

Since:
2 Mar 2015
Author:
Mark Taylor
  • Method Summary

    Modifier and Type
    Method
    Description
    createFixedWidthKernel(double width)
    Creates a fixed width kernel with a given nominal width.
    createKnnKernel(double k, boolean isSymmetric, int minWidth, int maxWidth)
    Creates an adaptive kernel that uses a K-nearest-neighbours algorithm to determine local smoothing width, so that the width of the kernel is determined by the distance (number of 1-pixel bins) within which the given number k of samples is found.
    createMeanKernel(double width)
    Creates an averaging kernel with a given nominal fixed width.
    Returns a short description for this shape.
    Returns a one-word name for this shape.
  • Method Details

    • getName

      String getName()
      Returns a one-word name for this shape.
      Returns:
      name
    • getDescription

      String getDescription()
      Returns a short description for this shape.
      Returns:
      description
    • createFixedWidthKernel

      Kernel1d createFixedWidthKernel(double width)
      Creates a fixed width kernel with a given nominal width. The width is some kind of characteristic half-width in one direction of the smoothing function. It is in units of grid points (array element spacing). It would generally be less than or equal to the kernel's extent.
      Parameters:
      width - half-width
      Returns:
      new kernel
    • createMeanKernel

      Kernel1d createMeanKernel(double width)
      Creates an averaging kernel with a given nominal fixed width. The 'convolution' it performs is not really a convolution, instead it's a sort of weighted moving average. This is a smoothing that's suitable for intensive quantities. Using proper convolution for intensive quantities like the mean or median is problematic if there may be blank values in the input array, since the smoothed value has to keep track of how many non-blank values it has encountered.
      Parameters:
      width - half-width
      Returns:
      new kernel
    • createKnnKernel

      Kernel1d createKnnKernel(double k, boolean isSymmetric, int minWidth, int maxWidth)
      Creates an adaptive kernel that uses a K-nearest-neighbours algorithm to determine local smoothing width, so that the width of the kernel is determined by the distance (number of 1-pixel bins) within which the given number k of samples is found.

      The nearest neighbour search may be symmetric or asymmetric. In the asymmetric case, the kernel width is determined separately for the positive and negative directions along the axis.

      Minimum and maximum smoothing widths are also supplied as bounds on the smoothing width for the case that the samples are very dense or very spread out (the latter case covers the edge of the data region as well). If minWidth==maxWidth, the result is a fixed-width kernel.

      Parameters:
      k - number of nearest neighbours included in the distance that characterises the smoothing
      isSymmetric - true for bidirectional KNN search, false for unidirectional
      minWidth - minimum smoothing width
      maxWidth - maximum smoothing width
      Returns:
      new kernel