Class TransferFunction

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class TransferFunction
    extends Object
    implements Cloneable, Serializable
    The function converting raster sample values to geophysics values. The function is usually linear, but can sometime be logarithmic or exponential. The later occur most often when measuring concentration of something.
    Supported transfer function types
    TypeEquation
    LINEAR y = scale⋅x + offset
    LOGARITHMIC y = scale⋅logbase(x) + offset
    EXPONENTIAL y = scale⋅basex + offset
    Missing values
    This Transfer­Function class handles only the continuous part of transfer functions. This class does not handle missing values other than Na­N. For a more complete class with support for non-NaN missing values, see org​.apache​.sis​.coverage​.Sample­Dimension.
    Serialization
    Serialized instances of this class are not guaranteed to be compatible with future SIS versions. Serialization should be used only for short term storage or RMI between applications running the same SIS version.
    Since:
    0.5
    See Also:
    Sample­Dimension​.get­Transfer­Function(), Serialized Form

    Defined in the sis-referencing module

    • Constructor Detail

      • TransferFunction

        public TransferFunction()
        Creates a transfer function initialized to the identity transform.
        See Also:
        is­Identity()
    • Method Detail

      • isIdentity

        public boolean isIdentity()
        Returns true if this transfer function is identity. The function is identity if its type is linear, its scale is 1 and its offset is 0.
        Returns:
        whether this transfer function is identity.
        Since:
        1.0
      • getType

        public TransferFunctionType getType()
        Returns the transfer function type (linear, logarithmic or exponential).
        Returns:
        the transfer function type.
      • getBase

        public double getBase()
        Returns the logarithm or exponent base in the transfer function. This value is always 1 for Transfer­Function­Type​.LINEAR, and usually (but not necessarily) 10 for the logarithmic and exponential types.
        Returns:
        the logarithmic or exponent base.
      • setBase

        public void setBase​(double base)
        Sets the logarithm or exponent base in the transfer function. This value is ignored for Transfer­Function­Type​.LINEAR. For other supported types, the default value is 10.
        Parameters:
        base - the new logarithm or exponent base.
        Throws:
        Illegal­Argument­Exception - if the given base is NaN, negative, zero or infinite.
      • getScale

        public double getScale()
        Returns the scale factor of the transfer function.
        Returns:
        the scale factor.
      • setScale

        public void setScale​(double scale)
        Sets the scale factor of the transfer function. The default value is 1.
        Parameters:
        scale - the new scale factor.
        Throws:
        Illegal­Argument­Exception - if the given scale is NaN, zero or infinite.
      • getOffset

        public double getOffset()
        Returns the offset of the transfer function.
        Returns:
        the offset.
      • setOffset

        public void setOffset​(double offset)
        Sets the offset of the transfer function. The default value is 0.
        Parameters:
        offset - the new offset.
        Throws:
        Illegal­Argument­Exception - if the given scale is NaN or infinite.
      • createTransform

        public MathTransform createTransform​(MathTransformFactory factory)
                                      throws FactoryException
        Creates a transform from sample values to geophysics values using the given factory. This method constructs a transform mathematically equivalent to the one returned by get­Transform(), but allows to specify another factory than the default one.
        Parameters:
        factory - the factory to use for creating a transform.
        Returns:
        the transform from sample to geophysics values.
        Throws:
        Factory­Exception - if the given factory failed to create a transform.
        Since:
        1.0
      • getTransform

        public MathTransform1D getTransform()
        Returns the transform from sample values to geophysics values, as specified by the current properties of this Transfer­Function.
        Returns:
        the transform from sample to geophysics values.
      • clone

        public TransferFunction clone()
        Returns a clone of this transfer function.
        Overrides:
        clone in class Object
        Returns:
        a clone of this transfer function.
        Since:
        0.8
      • toString

        public String toString()
        Returns a string representation of this transfer function for debugging purpose. The string returned by this method may change in any future SIS version.
        Overrides:
        to­String in class Object
        Returns:
        a string representation of this transfer function.