Esempio n. 1
0
def test_corr_grid_and_ts_dask(ts_monthly_da, gridded_da_datetime):
    """Tests that correlation works between a grid and a time series with dask."""
    x = ts_monthly_da().chunk()
    y = gridded_da_datetime().chunk()
    expected = corr(x.load(), y.load(), dim='time')
    actual = corr(x, y, dim='time').compute()
    assert (expected == actual).all()
Esempio n. 2
0
def test_corr_two_grids_dask(gridded_da_float):
    """Tests that correlations between two grids work with dask."""
    x = gridded_da_float().chunk()
    y = gridded_da_float().chunk()
    expected = corr(x.load(), y.load(), dim='time')
    actual = corr(x, y, dim='time').compute()
    assert (expected == actual).all()
Esempio n. 3
0
def test_autocorr(gridded_da_float):
    """Tests that ``autocorr`` functions properly."""
    x = gridded_da_float()
    actual = autocorr(x, nlags=None)
    actual = autocorr(x, nlags=10)
    expected = xr.concat([corr(x, x, lead=i) for i in range(10)], 'lead')
    assert (actual.values == expected.values).all()
Esempio n. 4
0
def decorrelation_time(da, r=20, dim="time"):
    """Calculate the decorrelaton time of a time series.

    .. math::
        \\tau_{d} = 1 + 2 * \\sum_{k=1}^{r}(\\alpha_{k})^{k}

    Args:
        da (xarray object): Time series.
        r (optional int): Number of iterations to run the above formula.
        dim (optional str): Time dimension for xarray object.

    Returns:
        Decorrelation time of time series.

    Reference:
        * Storch, H. v, and Francis W. Zwiers. Statistical Analysis in Climate
          Research. Cambridge ; New York: Cambridge University Press, 1999.,
          p.373

    """
    one = xr.ones_like(da.isel({dim: 0}))
    one = one.where(da.isel({dim: 0}).notnull())
    return one + 2 * xr.concat(
        [corr(da, da, dim=dim, lead=i)**i
         for i in range(1, r)], "it").sum("it")
Esempio n. 5
0
def test_corr_return_p(gridded_da_float):
    """Tests that p-value is returned properly for correlation."""
    x = gridded_da_float()
    y = gridded_da_float()
    corrcoeff, pval = corr(x, y, dim='time', return_p=True)
    assert not (corrcoeff.isnull().any()) & (pval.isnull().any())
Esempio n. 6
0
def test_corr_two_grids(gridded_da_float):
    """Tests that correlations between two grids work."""
    x = gridded_da_float()
    y = gridded_da_float()
    corrcoeff = corr(x, y, dim='time')
    assert not corrcoeff.isnull().any()
Esempio n. 7
0
def test_corr_lag(gridded_da_float):
    """Tests negative lead for correlation."""
    x = gridded_da_float()
    y = gridded_da_float()
    corrcoeff = corr(x, y, dim='time', lead=-3)
    assert not corrcoeff.isnull().any()
Esempio n. 8
0
def test_corr_grid_and_ts(ts_monthly_da, gridded_da_datetime):
    """Tests that correlation works between a grid and a time series."""
    x = ts_monthly_da()
    y = gridded_da_datetime()
    corrcoeff = corr(x, y, dim='time')
    assert not corrcoeff.isnull().any()
Esempio n. 9
0
def test_corr_lead(gridded_da_float):
    """Tests positive lead for correlation."""
    x = gridded_da_float()
    y = gridded_da_float()
    corrcoeff = corr(x, y, dim="time", lead=3)
    assert not corrcoeff.isnull().any()