spacepy.pycdf.Attr

class spacepy.pycdf.Attr(cdf_file, attr_name, create=False)[source]

An attribute, g or z, for a CDF

Warning

This class should not be used directly, but only in its subclasses, gAttr and zAttr. The methods listed here are safe to use in the subclasses.

Represents a CDF attribute, providing access to the Entries in a format that looks like a Python list. General list information is available in the python docs: 1, 2, 3.

An introduction to CDF attributes can be found in section 2.4 of the CDF user’s guide.

Each element of the list is a single Entry of the appropriate type. The index to the elements is the Entry number.

Multi-dimensional slicing is not supported; an Entry with multiple elements will have all elements returned (and can thus be sliced itself). Example:

>>> first_three = attribute[5, 0:3] #will fail
>>> first_three = attribute[5][0:3] #first three elements of 5th Entry
__init__(cdf_file, attr_name, create=False)[source]

Initialize this attribute

Parameters:
cdf_fileCDF

CDF file containing this attribute

attr_namestr

Name of this attribute

createbool

True to create attribute, False to look up existing

Methods

append(data)

Add an entry to end of attribute

global_scope()

Determine scope of this attribute.

has_entry(number)

Check if this attribute has a particular Entry number

insert(index, data)

Insert an entry at a particular number

max_idx()

Maximum index of Entries for this Attr

new(data[, type, number])

Create a new Entry in this Attribute

number()

Find the attribute number for this attribute

rename(new_name)

Rename this attribute

type(number[, new_type])

Find or change the CDF type of a particular Entry number

append(data)[source]

Add an entry to end of attribute

Puts entry after last defined entry (does not fill gaps)

Parameters:
data

data for the new entry

global_scope()[source]

Determine scope of this attribute.

Returns:
outbool

True if global (i.e. gAttr), False if zAttr

has_entry(number)[source]

Check if this attribute has a particular Entry number

Parameters:
numberint

number of Entry to check or change

Returns:
outbool

True if number is a valid entry number; False if not

insert(index, data)[source]

Insert an entry at a particular number

Inserts entry at particular number while moving all subsequent entries to one entry number later. Does not close gaps.

Parameters:
indexint

index where to put the new entry

data

data for the new entry

max_idx()[source]

Maximum index of Entries for this Attr

Returns:
outint

maximum Entry number

new(data, type=None, number=None)[source]

Create a new Entry in this Attribute

Note

If number is provided and an Entry with that number already exists, it will be overwritten.

Parameters:
data

data to put in the Entry

Other Parameters:
typeint

type of the new Entry, from const (otherwise guessed from data)

numberint

Entry number to write, default is lowest available number.

number()[source]

Find the attribute number for this attribute

Returns:
outint

attribute number

rename(new_name)[source]

Rename this attribute

Renaming a zAttribute renames it for all zVariables in this CDF!

Parameters:
new_namestr

the new name of the attribute

type(number, new_type=None)[source]

Find or change the CDF type of a particular Entry number

Parameters:
numberint

number of Entry to check or change

Returns:
outint

CDF variable type, see const

Other Parameters:
new_type

type to change this Entry to, from const. Omit to only check type.

Notes

If changing types, old and new must be equivalent, see CDF User’s Guide section 2.5.5 pg. 57