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