Skip to content

Commit 16e3552

Browse files
committed
ENH: Add get_scaled to Minc, Ecat
1 parent 2018e94 commit 16e3552

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

nibabel/ecat.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,12 @@ def __array__(self):
704704
frame_mapping[i][0])
705705
return data
706706

707+
def get_scaled(self, dtype=None):
708+
data = self.__array__()
709+
if dtype is not None and np.dtype(dtype) > data.dtype:
710+
data = data.astype(dtype)
711+
return data
712+
707713
def __getitem__(self, sliceobj):
708714
""" Return slice `sliceobj` from ECAT data, optimizing if possible
709715
"""

nibabel/minc1.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,13 +261,22 @@ def ndim(self):
261261
def is_proxy(self):
262262
return True
263263

264+
def _get_scaled(self, dtype, slicer):
265+
data = self.minc_file.get_scaled_data(slicer)
266+
if dtype is not None and np.dtype(dtype) > data.dtype:
267+
data = data.astype(dtype)
268+
return data
269+
270+
def get_scaled(self, dtype=None):
271+
return self._get_scaled(dtype=dtype, slicer=())
272+
264273
def __array__(self):
265274
''' Read of data from file '''
266-
return self.minc_file.get_scaled_data()
275+
return self._get_scaled(dtype=None, slicer=())
267276

268277
def __getitem__(self, sliceobj):
269278
""" Read slice `sliceobj` of data from file """
270-
return self.minc_file.get_scaled_data(sliceobj)
279+
return self._get_scaled(dtype=None, slicer=sliceobj)
271280

272281

273282
class MincHeader(SpatialHeader):

nibabel/tests/test_spatialimages.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,8 @@ class DataLike(object):
195195
# Minimal class implementing 'data' API
196196
shape = (3,)
197197

198-
def __array__(self):
199-
return np.arange(3, dtype=np.int16)
198+
def __array__(self, dtype='int16'):
199+
return np.arange(3, dtype=dtype)
200200

201201

202202
class TestSpatialImage(TestCase):

0 commit comments

Comments
 (0)