shnitsel.data.multi_indices¶
Attributes¶
Functions¶
|
Helper function to create a Multi-index based dimension coordinate for an xarray |
|
Function to flatten a multi-index into a flat index. |
|
|
|
|
|
Assign new values to levels of MultiIndexes in |
|
Group a Dataset or DataArray by several levels of a MultiIndex it contains. |
|
|
|
Select trajectories using a list of trajectories IDs or a boolean mask |
|
Will not generally return trajectories in order given |
|
Unstack the |
|
Stack the |
|
Take successive differences along the 'frame' dimension |
Module Contents¶
- DatasetOrArray¶
- midx_combs(values, name=None)¶
Helper function to create a Multi-index based dimension coordinate for an xarray from all (unordered) pairwise combinations of entries in values
- Parameters:
- Raises:
ValueError – If no name was provided and the name could not be extracted from the values parameter
- Returns:
The resulting coordinates object.
- Return type:
xr.Coordinates
- flatten_midx(obj, idx_name, renamer=None)¶
Function to flatten a multi-index into a flat index.
Has the option to provide a custom renaming function
- Parameters:
obj (xr.Dataset | xr.DataArray) – The object with the index intended to be flattened
idx_name (str) – The name of the index to flatten.
renamer (callable | None, optional) – An optional function to carry out the renaming of the combined entry from individual entries. Defaults to None.
- Returns:
The refactored object without the original index coordinates but with a combined index instead
- Return type:
xr.Dataset | xr.DataArray
- flatten_levels(obj, idx_name, levels, new_name=None, position=0, renamer=None)¶
- expand_midx(obj, midx_name, level_name, value)¶
- assign_levels(obj, levels=None, **levels_kwargs)¶
Assign new values to levels of MultiIndexes in
obj- Parameters:
obj (DatasetOrArray) – An
xarrayobject with at least one MultiIndexlevels (dict[str, numpy.typing.ArrayLike] | None) – A mapping whose keys are the names of the levels and whose values are the levels to assign. The mapping will be passed to
xarray.DataArray.assign_coords()(or thexarray.Datasetequivalent).optional – A mapping whose keys are the names of the levels and whose values are the levels to assign. The mapping will be passed to
xarray.DataArray.assign_coords()(or thexarray.Datasetequivalent).levels_kwargs (numpy.typing.ArrayLike)
- Return type:
A new object (of the same type as obj) with the new level values replacing the old level values.
- Raises:
ValueError – If levels are provided in both keyword and dictionary form.
- mgroupby(obj, levels)¶
Group a Dataset or DataArray by several levels of a MultiIndex it contains.
- Parameters:
obj (xarray.Dataset | xarray.DataArray) – The
xrobject to grouplevels (Sequence[str]) – Names of MultiIndex levels all belonging to the same MultiIndex
- Returns:
The grouped object, which behaves as documented at
xr.Dataset.groupby()and xr.DataArray.groupby with the caveat that the specified levels have been
”flattened” into a single Multiindex level of tuples.
- Raises:
ValueError – If no MultiIndex is found, or if the named levels belong to different MultiIndexes.
- Return type:
xarray.core.groupby.DataArrayGroupBy | xarray.core.groupby.DatasetGroupBy
Warning
The function does not currently check whether the levels specified are really levels of a MultiIndex, as opposed to names of non-MultiIndex indexes.
- msel(obj, **kwargs)¶
- Parameters:
obj (xarray.Dataset | xarray.DataArray)
- Return type:
- sel_trajs(frames, trajids_or_mask, invert=False)¶
Select trajectories using a list of trajectories IDs or a boolean mask
- Parameters:
frames (xarray.Dataset | xarray.DataArray) – The
xr.Datasetfrom which a selection is to be drawntrajids_or_mask (Sequence[int] | Sequence[bool]) –
- Either
A sequences of integers representing trajectory IDs to be included, in which case the trajectories may not be returned in the order specified.
Or a sequence of booleans, each indicating whether the trajectory with an ID in the corresponding entry in the
Dataset’strajid_coordinate should be included
invert – Whether to invert the selection, i.e. return those trajectories not specified, by default False
optional – Whether to invert the selection, i.e. return those trajectories not specified, by default False
- Return type:
A new
xr.Datasetcontaining only the specified trajectories- Raises:
NotImplementedError – when an attempt is made to index an
xr.Datsetwithout atrajid_dimension/coordinate using a boolean maskTypeError – If
trajids_or_maskhas a dtype other than integer or boolean
- sel_trajids(frames, trajids, invert=False)¶
Will not generally return trajectories in order given
- Parameters:
frames (xarray.Dataset)
trajids (numpy.typing.ArrayLike)
- Return type:
- unstack_trajs(frames)¶
Unstack the
frameMultiIndex so thattrajidandtimebecome separate dims. Wraps thexarray.Dataset.unstack()method.- Parameters:
frames (DatasetOrArray) – An
xarray.Datasetwith aframedimension associated with a MultiIndex coordinate with levels namedtrajidandtime. The Dataset may also have atrajid_dimension used for variables and coordinates that store information pertaining to each trajectory in aggregate; this will be aligned along thetrajiddimension of the unstacked Dataset.DatasetOrArray – An
xarray.Datasetwith aframedimension associated with a MultiIndex coordinate with levels namedtrajidandtime. The Dataset may also have atrajid_dimension used for variables and coordinates that store information pertaining to each trajectory in aggregate; this will be aligned along thetrajiddimension of the unstacked Dataset.
- Returns:
An
xarray.Datasetwith independenttrajidandtimedimensions. Same type as frames
- Return type:
DatasetOrArray
- stack_trajs(unstacked)¶
Stack the
trajidandtimedims of an unstacked Dataset into a MultiIndex along a new dimension calledframe. Wraps thexarray.Dataset.stack()method.- Parameters:
frames – An
xarray.Datasetwith independenttrajidandtimedimensions.unstacked (xarray.Dataset | xarray.DataArray)
- Returns:
An
xarray.Datasetwith aframedimension associated witha MultiIndex coordinate with levels named
trajidandtime. Those variablesand coordinates which only depended on one of
trajidor
timebut not the other in the unstacked Dataset, will be aligned along newdimensions named
trajid_andtime_. The new dimensionstrajid_andtime_will be independent of theframedimension and itstrajidandtimelevels.
- Return type:
- mdiff(da)¶
Take successive differences along the ‘frame’ dimension
- Parameters:
da (xarray.DataArray) – An
xarray.DataArraywith a ‘frame’ dimension corresponding to apandas.MultiIndexof which the innermost level is ‘time’.- Returns:
An
xarray.DataArraywith the same shape, dimension names etc.,but with the data of the (i)th frame replaced by the difference between
the original (i+1)th and (i)th frames, with zeros filling in for both the
initial frame and any frame for which time = 0, to avoid taking differences
between the last and first frames of successive trajectories.
- Return type: