Binning¶
- class weatherbenchX.binning.Binning(bin_dim_name: str)[source]¶
Binning base class.
Init.
- Parameters:
bin_dim_name – Name of binning dimension.
- class weatherbenchX.binning.Regions(regions: Mapping[Hashable, Tuple[Tuple[int, int], Tuple[int, int]]], bin_dim_name: str = 'region', land_sea_mask: DataArray | None = None)[source]¶
Class for rectangular region binning.
Note that coordinate must be named latitude and longitude.
Init.
- Parameters:
regions – Dictionary specifying {name: ((lat_lims), (lon_lims))}.
bin_dim_name – Name of binning dimension. Default: ‘region’
land_sea_mask – (Optional) Boolean mask (land = True) with same latitude/longitude coordinates as the statistic. If provided, for each region will add a new land-onlybin with the name {region}_land.
- class weatherbenchX.binning.ByExactCoord(coord: str, add_global_bin: bool = False)[source]¶
Binning by unique coordinate values.
This will create a bin for each unique coordinate value, for example for each unique lead time in the case of sparse forecasts where lead_time is a coordinate but not a dimension.
Init.
- Parameters:
coord – Name of coordinate to bin by.
add_global_bin – If True, add a global bin containing all data. Default: False.
- class weatherbenchX.binning.ByTimeUnit(unit: str, time_dim: str, add_global_bin: bool = False)[source]¶
Bin by time unit for given axis.
This uses the .dt datetime accessor in xarray, and will work with both datetime64 and timedelta64 coordinates. However, the units should be in the datetime64 convention, i.e. ‘second’, ‘minute’, ‘hour’, etc.
See: https://docs.xarray.dev/en/latest/generated/xarray.core.accessor_dt.DatetimeAccessor.html
Example
` unit = 'hour' time_dim = 'init_time' `This will aggregate together all data initialized at the same time of day, e.g. [0, 1, 2, .., 23].Init.
- Parameters:
unit – Time unit to bin by.
time_dim – Time dimension to bin by.
add_global_bin – If True, add a global bin containing all data. Default: False.
- class weatherbenchX.binning.ByCoordBins(dim_name: str, bin_edges: ndarray, add_global_bin: bool = False)[source]¶
Binning by specified bins over a coordinate.
Init.
- Parameters:
dim_name – Name of dimension to bin by.
bin_edges – Bin edges to bin by.
add_global_bin – If True, add a global bin containing all data. Default: False.
- class weatherbenchX.binning.BySets(sets: Mapping[str, Sequence[Any] | Any], coord_name: str, bin_dim_name: str | None = None, add_set_complements: bool = False, add_global_bin: bool = False)[source]¶
Bin by sets of values along a coordinate.
This is, for example, useful for binning by different sets of station names.
Init.
- Parameters:
sets – Dictionary specifying sets of values to bin by.
coord_name – Name of coordinate to bin over.
bin_dim_name – Name of binning dimension. Default: dim_name
add_set_complements – If True, for each set, also add a bin for all values not in the set.
add_global_bin – If True, add a global bin containing all data. Default: False.