dbdicom.Series.set_values#

Series.set_values(values, tags, dims=('InstanceNumber',), slice={}, coords={}, **filters)[source]#

Set the values of an attribute.

Parameters:
  • tag – either a keyword string or a (group, element) tag of a DICOM data element.

  • value – a single value or a numpy array of values for the attribute.

  • dims (tuple, optional) – Dimensions of value. If value is a single value, dims is ignored. Otherwise, if dim is not provided, values are ordered by instance number. Defaults to None.

Raises:

ValueError – if the size of value does not match the size of the series.

See also

value

Example

Create a zero-filled series with 3 slice dimensions.

>>> loc = np.arange(4)
>>> fa = [2, 15, 30]
>>> tr = [2.5, 5.0]
>>> coords = {
...     'SliceLocation': np.arange(4),
...     'FlipAngle': [2, 15, 30],
...     'RepetitionTime': [2.5, 5.0] }
>>> series = db.zeros((128,128,8,3,2), coords)

Change the acquisition time of the series to midnight (0 sec):

>>> series.value('AcquisitionTime')
28609.057496
>>> series.set_value('AcquisitionTime', 0)
>>> series.value('AcquisitionTime')
0

Set the acquisition time to a different value for each flip angle:

>>> tacq = np.repeat(60*np.arange(3), 8)
>>> series.set_value('AcquisitionTime', tacq, dims=('FlipAngle','InstanceNumber'))

Set the acquisition time to a different value for each flip angle and acquisition time:

>>> tacq = np.repeat(60*np.arange(6), 4)
>>> series.set_value('AcquisitionTime', tacq, dims=('FlipAngle','RepetitionTime','SliceLocation'))

Note: the size of the value and of the series need to match up. If not, an error is raised:

>>> series.set_value('AcquisitionTime', np.arange(25), dims=tuple(coords))
ValueError: The size of the value array is different from the size of the series.
The value array has shape (25,), but the series has shape (4, 3).