Skip to main content
`Ctrl`+`K`

# NDMeta

class ndcube.NDMeta(meta=None, key_comments=None, axes=None, data_shape=None)

  Bases: `dict`, `NDMetaABC`

  Attributes Summary

  `axes` | Mapping from metadata keys to axes with which they are associated.
  `data_shape` | The shape of the data with which the metadata is associated.
  `key_comments` | Mapping from metadata keys to associated comments.
  `original_meta` |
  `slice` | A helper class which, when sliced, returns a new NDMeta with axis- and grid-aligned metadata sliced.

  Methods Summary

  `add`(name, value[, key_comment, axes, overwrite]) | Add a new piece of metadata to instance.
  `clear`() | Remove all items from the dict.
  `copy`() | Return a shallow copy of the dict.
  `fromkeys`(iterable[, value]) | Create a new dictionary with keys from iterable and values set to value.
  `get`(key[, default]) | Return the value for key if key is in the dictionary, else default.
  `items`() | Return a set-like object providing a view on the dict's items.
  `keys`() | Return a set-like object providing a view on the dict's keys.
  `pop`(k[,d]) | If the key is not found, return the default if given; otherwise, raise a KeyError.
  `popitem`() | Remove and return a (key, value) pair as a 2-tuple.
  `rebin`(bin_shape) | Adjusts axis-aware metadata to stay consistent with a rebinned `NDCube`.
  `setdefault`(key[, default]) | Insert key with a value of default if key is not in the dictionary.
  `update`([E, ]**F) | If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
  `values`() | Return an object providing a view on the dict's values.

  Attributes Documentation

  axes
  data_shape
  key_comments
  original_meta
  slice

  Methods Documentation

  add(name, value, key_comment=None, axes=None, overwrite=False)

    Add a new piece of metadata to instance.

    Parameters:

      - name (`str`) – The name/label of the metadata.

      - value (Any) – The value of the metadata. If axes input is not None, this must have the same length/shape as those axes as defined by `self.data_shape`.

      - key_comment (`str` or `None`) – Any comment associated with this metadata. Set to None if no comment desired.

      - axes (`int`, iterable of `int`, or `None`) – The axis/axes with which the metadata is linked. If not associated with any axis, set this to None.

      - overwrite (`bool`, optional) – If True, overwrites the entry of the name name if already present.

  clear()

    Remove all items from the dict.

  copy()

    Return a shallow copy of the dict.

  classmethod fromkeys(iterable, value=None, /)

    Create a new dictionary with keys from iterable and values set to value.

  get(key, default=None, /)

    Return the value for key if key is in the dictionary, else default.

  items()

    Return a set-like object providing a view on the dict’s items.

  keys()

    Return a set-like object providing a view on the dict’s keys.

  pop(k[, d]) → v, remove specified key and return the corresponding value.

    If the key is not found, return the default if given; otherwise, raise a KeyError.

  popitem()

    Remove and return a (key, value) pair as a 2-tuple.

    Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

  rebin(bin_shape)

    Adjusts axis-aware metadata to stay consistent with a rebinned `NDCube`.

    This is done by simply removing the axis-awareness of metadata associated with rebinned axes. The metadata itself is not changed or removed. This operation does not remove axis-awareness from metadata only associated with non-rebinned axes, i.e. axes whose corresponding entries in `bin_shape` are 1.

    Parameters:

      bin_shape (array-like) – The number of pixels in a bin in each dimension.

  setdefault(key, default=None, /)

    Insert key with a value of default if key is not in the dictionary.

    Return the value for key if key is in the dictionary, else default.

  update([E, ]**F) → None. Update D from mapping/iterable E and F.

    If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

  values()

    Return an object providing a view on the dict’s values.