MCPcopy Index your code
hub / github.com/pydata/xarray / __init__

Method __init__

xarray/groupers.py:103–150  ·  view source on GitHub ↗
(
        self,
        codes: DataArray,
        full_index: pd.Index,
        group_indices: GroupIndices | None = None,
        unique_coord: Variable | _DummyGroup | None = None,
        coords: Coordinates | None = None,
    )

Source from the content-addressed store, hash-verified

101 coords: Coordinates = field(init=False, repr=False)
102
103 def __init__(
104 self,
105 codes: DataArray,
106 full_index: pd.Index,
107 group_indices: GroupIndices | None = None,
108 unique_coord: Variable | _DummyGroup | None = None,
109 coords: Coordinates | None = None,
110 ):
111 from xarray.core.groupby import _codes_to_group_indices
112
113 assert isinstance(codes, DataArray)
114 if codes.name is None:
115 raise ValueError("Please set a name on the array you are grouping by.")
116 self.codes = codes
117 assert isinstance(full_index, pd.Index)
118 self.full_index = full_index
119
120 if group_indices is None:
121 if not is_chunked_array(codes.data):
122 self.group_indices = tuple(
123 g
124 for g in _codes_to_group_indices(
125 codes.data.ravel(), len(full_index)
126 )
127 if g
128 )
129 else:
130 # We will not use this when grouping by a chunked array
131 self.group_indices = tuple()
132 else:
133 self.group_indices = group_indices
134
135 if unique_coord is None:
136 unique_codes = np.sort(pd.unique(codes.data))
137 # Skip the -1 sentinel
138 unique_codes = unique_codes[unique_codes >= 0]
139 unique_values = full_index[unique_codes]
140 self.unique_coord = Variable(
141 dims=codes.name, data=unique_values, attrs=codes.attrs
142 )
143 else:
144 self.unique_coord = unique_coord
145
146 if coords is None:
147 assert not isinstance(self.unique_coord, _DummyGroup)
148 self.coords = coordinates_from_variable(self.unique_coord)
149 else:
150 self.coords = coords
151
152
153class Grouper(ABC):

Callers

nothing calls this directly

Calls 4

is_chunked_arrayFunction · 0.90
_codes_to_group_indicesFunction · 0.90
VariableClass · 0.90

Tested by

no test coverage detected