dbdicom.Series.gridcoords#

Series.gridcoords(dims=('InstanceNumber',), slice={}, coords={}, exclude=False, **filters) dict[source]#

return a dictionary of grid coordinates.

Parameters:

dims (tuple) – Attributes to be used as coordinates.

Returns:

dictionary of coordinates, one entry for each dimension.

Return type:

dict

Examples

Create an empty series with 3 slice dimensions:

>>> gridcoords = {
...     'SliceLocation': np.arange(4),
...     'FlipAngle': np.array([2, 15, 30]),
...     'RepetitionTime': np.array([2.5, 5.0]),
... }
>>> series = db.empty_series(gridcoords=gridcoords)

Recover the grid coordinates:

>>> gridcoords_rec = series.gridcoords(tuple(gridcoords))
>>> coords_rec['SliceLocation']
[0. 1. 2. 3.]
>>> coords_rec['FlipAngle']
[ 2. 15. 30.]
>>> coords_rec['RepetitionTime']
[2.5 5. ]

Note an error is raised if the coordinates are not grid coordinates:

>>> coords = {
...     'SliceLocation': np.array([0,1,2,0,1,2]),
...     'FlipAngle': np.array([10,10,10,2,2,2]),
...     'RepetitionTime': np.array([1,5,15,1,5,15]),
... }
>>> series = db.empty_series(coords)

The coordinates form a proper mesh, so this works fine:

>>> coords = series.meshcoords(tuple(coords))

But this raises an error:

>>> series.gridcoords(tuple(coords))
ValueError: These are not grid coordinates.