File tree Expand file tree Collapse file tree 4 files changed +18
-8
lines changed Expand file tree Collapse file tree 4 files changed +18
-8
lines changed Original file line number Diff line number Diff line change @@ -405,8 +405,11 @@ def get_scaled(self, dtype=None):
405
405
"""
406
406
return self ._get_scaled (dtype = dtype , slicer = ())
407
407
408
- def __array__ (self ):
409
- return self ._get_scaled (dtype = None , slicer = ())
408
+ def __array__ (self , dtype = None ):
409
+ arr = self ._get_scaled (dtype = dtype , slicer = ())
410
+ if dtype is not None :
411
+ arr = arr .astype (dtype , copy = False )
412
+ return arr
410
413
411
414
def __getitem__ (self , slicer ):
412
415
return self ._get_scaled (dtype = None , slicer = slicer )
Original file line number Diff line number Diff line change @@ -689,15 +689,16 @@ def ndim(self):
689
689
def is_proxy (self ):
690
690
return True
691
691
692
- def __array__ (self ):
692
+ def __array__ (self , dtype = None ):
693
693
''' Read of data from file
694
694
695
695
This reads ALL FRAMES into one array, can be memory expensive.
696
696
697
697
If you want to read only some slices, use the slicing syntax
698
698
(``__getitem__``) below, or ``subheader.data_from_fileobj(frame)``
699
699
'''
700
- data = np .empty (self .shape )
700
+ # dtype=None is interpreted as float64
701
+ data = np .empty (self .shape , dtype = dtype )
701
702
frame_mapping = get_frame_order (self ._subheader ._mlist )
702
703
for i in sorted (frame_mapping ):
703
704
data [:, :, :, i ] = self ._subheader .data_from_fileobj (
Original file line number Diff line number Diff line change @@ -290,9 +290,12 @@ def get_scaled(self, dtype=None):
290
290
"""
291
291
return self ._get_scaled (dtype = dtype , slicer = ())
292
292
293
- def __array__ (self ):
293
+ def __array__ (self , dtype = None ):
294
294
''' Read of data from file '''
295
- return self ._get_scaled (dtype = None , slicer = ())
295
+ arr = self ._get_scaled (dtype = dtype , slicer = ())
296
+ if dtype is not None :
297
+ arr = arr .astype (dtype , copy = False )
298
+ return arr
296
299
297
300
def __getitem__ (self , sliceobj ):
298
301
""" Read slice `sliceobj` of data from file """
Original file line number Diff line number Diff line change @@ -699,8 +699,11 @@ def get_scaled(self, dtype=None):
699
699
"""
700
700
return self ._get_scaled (dtype = dtype , slicer = ())
701
701
702
- def __array__ (self ):
703
- return self ._get_scaled (dtype = None , slicer = ())
702
+ def __array__ (self , dtype = None ):
703
+ arr = self ._get_scaled (dtype = dtype , slicer = ())
704
+ if dtype is not None :
705
+ arr = arr .astype (dtype , copy = False )
706
+ return arr
704
707
705
708
def __getitem__ (self , slicer ):
706
709
return self ._get_scaled (dtype = None , slicer = slicer )
You can’t perform that action at this time.
0 commit comments