diff --git a/qim3d/io/load.py b/qim3d/io/load.py index 4d67274de5f4ea26099b39a846ecf369d5abd33b..49736eb3065b8614fe3aa5d7f2bc92ba6896c933 100644 --- a/qim3d/io/load.py +++ b/qim3d/io/load.py @@ -66,10 +66,14 @@ class DataLoader: If 'self.virtual_stack' is True, returns a numpy.memmap object. """ + # Get the number of TIFF series (some BigTIFF have multiple series) + with tifffile.TiffFile(path) as tif: + series = len(tif.series) + if self.virtual_stack: vol = tifffile.memmap(path) else: - vol = tifffile.imread(path) + vol = tifffile.imread(path, key=range(series) if series>1 else None) log.info("Loaded shape: %s", vol.shape) @@ -215,7 +219,7 @@ class DataLoader: """Load a TXRM/XRM/TXM file from the specified path. Args: - path (str): The path to the HDF5 file. + path (str): The path to the TXRM/XRM/TXM file. Returns: numpy.ndarray or tuple: The loaded volume. @@ -412,7 +416,7 @@ def load( log_memory_info(data) else: # Only log if file type is not a np.ndarray, i.e., it is some kind of memmap object - if not isinstance( data[0] if isinstance(data,tuple) else data, np.ndarray ): + if not isinstance( type(data[0]) if isinstance(data,tuple) else type(data), np.ndarray ): log.info("Using virtual stack") else: log.warning('Virtual stack is not supported for this file format')