cf.Field.axes

Field.axes(axes=None, size=None, ordered=False, **kwargs)[source]

Return domain axis identifiers from the field.

The output is a set of domain axis identifiers, which may be empty.

By default all axes of the domain are returned, but particular axes may be selected with the keyword arguments.

When multiple criteria have been specified, the returned items are the intersection of the selections.

Parameters:
axes, kwargs : optional

Select axes. The axes parameter may be one, or a sequence, of

  • None. If there no kwargs arguments have been set then selects all axes.
  • An integer or slice object. Explicitly selects the axes corresponding to the given position(s) in the list of axes of the field’s data array.

    Example:

    To select the third data array axis (counting from the left): axes=2.

    Example:

    To select the last axis (counting from the left): axes=-1.

    Example:

    To select the last three data array axes (counting from the left): axes=slice(-3, None)`

  • Any value accepted by the items parameter of the field’s items method. Used in conjunction with the kwargs arguments to select the axes which span the items that would be identified by this call of the field’s items method: f.items(items=axes, axes=None, **kwargs). See cf.Field.items for details.

    Example:

    To select the axes spanned by one dimensionsal time coordinates: the left): f.axes('T', ndim=1).

  • A domain axis identifier. Explicitly selects this axis.

    Example:

    To select axis “dim1”: axes='dim1'.

If axes is a sequence of any combination of the above then the selected axes are the union of those selected by each element of the sequence.

Example:

>>> x = f.axes(['dim2', 'time', {'units': 'degree_north'}])
>>> y = set()
>>> for axes in ['dim2', 'time', {'units': 'degree_north'}]:
...     y.update(f.axes(axes))
...
>>> x == y
True

If the sequence is empty then no axes are selected.

size : optional

Select axes whose sizes equal size. Axes with a range of sizes may be selected if size is a cf.Query object.

Example:

size=1 selects size 1 axes.

Example:

size=cf.ge(2) selects axes with sizes greater than 1 (see cf.ge).

ordered : bool, optional

Return an ordered list of axes instead of an unordered set. The order of the list will reflect any ordering specified by the selection keywords axes and kwargs.

Example:

If the data array axes, as returned by the field’s data_axes method, are ['dim0', 'dim1', 'dim2'], then f.axes([2, 0, 1, 2]) will return set(['dim0', 'dim1', 'dim2']), but f.axes([2, 0, 1, 2], ordered=True) will return ['dim2', 'dim0', 'dim1', 'dim2'].

Returns:
out : set or list

A set of domain axis identifiers, or a list if ordered is True. The set or list may be empty.

Examples:

All axes and their identities:

>>> f.axes()
set(['dim0', 'dim1', 'dim2', 'dim3'])
>>> dict([(axis, f.domain.axis_name(axis)) for axis in f.axes()])
{'dim0': time(12)
 'dim1': height(19)
 'dim2': latitude(73)
 'dim3': longitude(96)}

Axes which are not spanned by the data array:

>>> f.axes().difference(f.data_axes())

Previous topic

cf.Field.auxs

Next topic

cf.Field.axes_sizes

This Page