xrspatial.classify.equal_interval#
- xrspatial.classify.equal_interval(agg: xarray.core.dataarray.DataArray, k: int = 5, name: Optional[str] = 'equal_interval') xarray.core.dataarray.DataArray [source]#
Reclassifies data for array agg into new values based on intervals of equal width.
- Parameters
agg (xarray.DataArray) – 2D NumPy, CuPy, NumPy-backed Dask, or Cupy-backed Dask array of values to be reclassified.
k (int, default=5) – Number of classes to be produced.
name (str, default='equal_interval') – Name of output aggregate.
- Returns
equal_interval_agg – 2D aggregate array of equal interval allocations. All other input attributes are preserved.
- Return type
xarray.DataArray of the same type as agg
References
PySAL: https://pysal.org/mapclassify/_modules/mapclassify/classifiers.html#EqualInterval # noqa
scikit-learn: https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py # noqa
Examples
>>> import numpy as np >>> import xarray as xr >>> from xrspatial.classify import equal_interval >>> elevation = np.array([ [np.nan, 1., 2., 3., 4.], [ 5., 6., 7., 8., 9.], [10., 11., 12., 13., 14.], [15., 16., 17., 18., 19.], [20., 21., 22., 23., np.inf] ]) >>> agg_numpy = xr.DataArray(elevation, attrs={'res': (10.0, 10.0)}) >>> numpy_equal_interval = equal_interval(agg_numpy, k=5) >>> print(numpy_equal_interval) <xarray.DataArray 'equal_interval' (dim_0: 5, dim_1: 5)> array([[nan, 0., 0., 0., 0.], [ 0., 0., 0., 0., 1.], [ 1., 1., 1., 1., 1.], [ 1., 2., 2., 2., 2.], [ 2., 2., 2., 2., nan]], dtype=float32) Dimensions without coordinates: dim_0, dim_1 Attributes: res: (10.0, 10.0)