def test_mean(ddf): out = xr.DataArray( values(df_pd.i32).reshape((2, 2, 5)).mean(axis=2, dtype='f8').T, coords=coords, dims=dims) assert_eq_xr(c.points(ddf, 'x', 'y', ds.mean('i32')), out) assert_eq_xr(c.points(ddf, 'x', 'y', ds.mean('i64')), out) out = xr.DataArray( np.nanmean(values(df_pd.f64).reshape((2, 2, 5)), axis=2).T, coords=coords, dims=dims) assert_eq_xr(c.points(ddf, 'x', 'y', ds.mean('f32')), out) assert_eq_xr(c.points(ddf, 'x', 'y', ds.mean('f64')), out)
def test_std(ddf): if dask_cudf and isinstance(ddf, dask_cudf.DataFrame): pytest.skip("std not supported with cudf") out = xr.DataArray( values(df_pd.i32).reshape((2, 2, 5)).std(axis=2, dtype='f8').T, coords=coords, dims=dims) assert_eq_xr(c.points(ddf, 'x', 'y', ds.std('i32')), out) assert_eq_xr(c.points(ddf, 'x', 'y', ds.std('i64')), out) out = xr.DataArray( np.nanstd(values(df_pd.f64).reshape((2, 2, 5)), axis=2).T, coords=coords, dims=dims) assert_eq_xr(c.points(ddf, 'x', 'y', ds.std('f32')), out) assert_eq_xr(c.points(ddf, 'x', 'y', ds.std('f64')), out)
def test_multiple_aggregates(ddf): if dask_cudf and isinstance(ddf, dask_cudf.DataFrame): pytest.skip("std not supported with cudf") agg = c.points(ddf, 'x', 'y', ds.summary(f64_std=ds.std('f64'), f64_mean=ds.mean('f64'), i32_sum=ds.sum('i32'), i32_count=ds.count('i32'))) f = lambda x: xr.DataArray(x, coords=coords, dims=dims) assert_eq_xr(agg.f64_std, f(np.nanstd(values(df_pd.f64).reshape((2, 2, 5)), axis=2).T)) assert_eq_xr(agg.f64_mean, f(np.nanmean(values(df_pd.f64).reshape((2, 2, 5)), axis=2).T)) assert_eq_xr(agg.i32_sum, f(values(df_pd.i32).reshape((2, 2, 5)).sum(axis=2, dtype='f8').T)) assert_eq_xr(agg.i32_count, f(np.array([[5, 5], [5, 5]], dtype='i4')))
def test_max(ddf): out = xr.DataArray( values(df_pd.i64).reshape((2, 2, 5)).max(axis=2).astype('f8').T, coords=coords, dims=dims) assert_eq_xr(c.points(ddf, 'x', 'y', ds.max('i32')), out) assert_eq_xr(c.points(ddf, 'x', 'y', ds.max('i64')), out) assert_eq_xr(c.points(ddf, 'x', 'y', ds.max('f32')), out) assert_eq_xr(c.points(ddf, 'x', 'y', ds.max('f64')), out)