pysteps.utils.transformation.boxcox_transform

pysteps.utils.transformation.boxcox_transform

pysteps.utils.transformation.boxcox_transform(R, metadata=None, Lambda=None, threshold=None, zerovalue=None, inverse=False)

The one-parameter Box-Cox transformation.

The Box-Cox transform is a well-known power transformation introduced by Box and Cox (1964). In its one-parameter version, the Box-Cox transform takes the form T(x) = ln(x) for Lambda = 0, or T(x) = (x**Lambda - 1)/Lambda otherwise.

Default parameters will produce a log transform (i.e. Lambda=0).

Parameters
R: array-like

Array of any shape to be transformed.

metadata: dict, optional

Metadata dictionary containing the transform, zerovalue and threshold attributes as described in the documentation of pysteps.io.importers.

Lambda: float, optional

Parameter Lambda of the Box-Cox transformation. It is 0 by default, which produces the log transformation.

Choose Lambda < 1 for positively skewed data, Lambda > 1 for negatively skewed data.

threshold: float, optional

The value that is used for thresholding with the same units as R. If None, the threshold contained in metadata is used. If no threshold is found in the metadata, a value of 0.1 is used as default.

zerovalue: float, optional

The value to be assigned to no rain pixels as defined by the threshold. It is equal to the threshold - 1 by default.

inverse: bool, optional

If set to True, it performs the inverse transform. False by default.

Returns
R: array-like

Array of any shape containing the (back-)transformed units.

metadata: dict

The metadata with updated attributes.

References

Box, G. E. and Cox, D. R. (1964), An Analysis of Transformations. Journal of the Royal Statistical Society: Series B (Methodological), 26: 211-243. doi:10.1111/j.2517-6161.1964.tb00553.x