NDMeta#

class ndcube.NDMeta(meta=None, key_comments=None, axes=None, data_shape=None)[source]#

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()

copy()

fromkeys([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()

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()

Attributes Documentation

axes#
data_shape#
key_comments#
original_meta#
slice#

Methods Documentation

add(name, value, key_comment=None, axes=None, overwrite=False)[source]#

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() None.  Remove all items from D.#
copy() a shallow copy of D#
fromkeys(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() a set-like object providing a view on D's items#
keys() a set-like object providing a view on D'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)[source]#

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() an object providing a view on D's values#