geocat.comp.polynomial.detrend
geocat.comp.polynomial.detrend#
- geocat.comp.polynomial.detrend(data, deg=1, axis=0, **kwargs)#
Deprecated since version 2022.10.0:
detrend
is deprecated and should be replaced by scipy.signal.detrend.Estimates and removes the trend of the leftmost dimension from all grid points. This method, at the minimum, provides all the functionality that is provided by NCL’s
dtrend
,dtrend_quadratic
,dtrend_quadratic_msg_n
,dtrend_msg_n
,dtrend_msg
,dtrend_n
. However, this function is not limited to quadratic detrending, and you could use higher polynomial degree as well.- Parameters
data (
array_like
) – a multi-dimensional numeric arraydeg (
int
, optional) – a non-negative integer determining the degree of the polynomial to use for detrending. Default value is 1.axis (
int
, optional) – the axis along which the data is detrended. Default value is 0.kwargs (
dict
, optional) – See below
- Keyword Arguments
return_info (
bool
) – If set to true, the fitted polynomial is returned as part of the attributes. Default value isTrue
.missing_value (
numeric
) – A value that must be ignored. Default isNaN
.
- Returns
detrended_data (
xarray.DataArray
) – Array containing the detrended data.
Examples
Detrending a dataset:
>>> from geocat.comp.polynomial import ndpolyfit >>> from geocat.comp.polynomial import detrend >>> # Creating synthetic data >>> x = np.linspace(-8 * np.pi, ... 8 * np.pi, ... 33, ... dtype=np.float64) >>> y0 = 1.0 * x >>> y1 = np.sin(x) >>> y = y0 + y1 >>> p = ndpolyfit(np.arange(x.size), y, deg=1) >>> y_trend = ndpolyval(p, np.arange(x.size)) >>> y_detrended = detrend(y) >>> np.testing.assert_almost_equal(y_detrended + y_trend, y)
Detrending a multi-dimensional dataset:
>>> # Creating synthetic data >>> x = np.linspace(-8 * np.pi, ... 8 * np.pi, ... 33, ... dtype=np.float64) >>> y0 = 1.0 * x >>> y1 = np.sin(x) >>> y = np.tile((y0 + y1).reshape((1, -1, 1, 1)), ... (2, 1, 3, 4)) >>> p = ndpolyfit(x, y, deg=1, axis=1) >>> y_trend = ndpolyval(p, x, axis=1) >>> y_detrended = detrend(y, x=x, axis=1) >>> np.testing.assert_almost_equal(y_detrended + y_trend, y)
See also
Related NCL Functions: dtrend, dtrend_n, dtrend_msg, dtrend_msg_n, dtrend_quadratic, dtrend_quadratic_msg_n