tomoscan.esrf.volume.tiffvolume.MultiTIFFVolume#
- class tomoscan.esrf.volume.tiffvolume.MultiTIFFVolume(file_path=None, data=None, source_scan=None, metadata=None, data_url=None, metadata_url=None, overwrite=False, append=False, data_extension='tiff', metadata_extension='txt')#
Bases:
VolumeBaseSave tiff into a single tiff file
- Parameters:
file_path (str | None) – path to the multiframe tiff file
- __init__(file_path=None, data=None, source_scan=None, metadata=None, data_url=None, metadata_url=None, overwrite=False, append=False, data_extension='tiff', metadata_extension='txt')#
Methods
__init__([file_path, data, source_scan, ...])browse_data_files([url])return a generator go through all the existings files associated to the data volume
browse_data_urls([url])generator on data urls used.
browse_metadata_files([url])return a generator go through all the existings files associated to the data volume
browse_slices([url])generator of 2D numpy array representing a slice
build the drac (successor of icat) metadata dict from existing volume metadata.
check_can_provide_identifier()remove object stored in data and metadata
data_file_saver_generator(n_frames, ...)Provide a helper class to dump data frame by frame.
compute data and metadata urls from 'parent url' :rtype: tuple :return: data_url: DataUrl | None, metadata_url: DataUrl | None
example as string to explain how users can defined identifiers from a string
from_identifier(identifier)Return the Dataset from a identifier
get_bounding_box([axis])Return the bounding box covered by the Tomo object axis is expected to be in (0, 1, 2) or (x==0, y==1, z==2)
dataset unique identifier.
compute min max of the volume.
get_min_max_values([url])compute min max over 'data' if exists else browsing the volume slice by slice
get_slice([index, axis, xy, xz, yz, url])read a single slice of the volume
get_slices(slices)retrieve a couple of slices along any axis:
get_volume_shape([url])return volume shape as a tuple
load()load_chunk(chunk[, url])Load a sub-volume.
load_data([url, store])load volume data from disk
load_metadata([url, store])load volume metadata from disk
save([url])save volume data and metadata to disk
save_data([url])save data to the provided url or existing one if none is provided
save_metadata([url])save metadata to the provided url or existing one if none is provided
select(volume[, xy, xz, yz, axis, index])select a slice at 'index' along an axis (axis)
select_slices(volume, slices)- rtype:
dict
Attributes
DEFAULT_DATA_EXTENSIONDEFAULT_METADATA_EXTENSIONEXTENSIONdata- rtype:
numpy.ndarray | None
data_extensiondata_urlextension- rtype:
str
metadata- rtype:
dict | None
metadata_extensionmetadata_urloverwrite- rtype:
bool
pixel_sizeposition are provided as a tuple using the same reference for axis as the volume data.
source_scan- rtype:
TomoScanBase | None
urlvoxel size as (axis 0 dim - aka z, axis 1 dim - aka y, axis 2 dim aka z) Returned in meter
- browse_data_files(url=None)#
return a generator go through all the existings files associated to the data volume
- browse_data_urls(url=None)#
generator on data urls used.
- Parameters:
url – data url to be used. If not provided will take self.data_url
- browse_metadata_files(url=None)#
return a generator go through all the existings files associated to the data volume
- browse_slices(url=None)#
generator of 2D numpy array representing a slice
- Parameters:
url – data url to be used. If not provided will browse self.data if exists else self.data_url
- Warning:
this will get the slice from the data on disk and never use data property. so before browsing slices you might want to check if data is already loaded
- build_drac_metadata()#
build the drac (successor of icat) metadata dict from existing volume metadata.
- Return type:
dict
- clear_cache()#
remove object stored in data and metadata
- data_file_saver_generator(n_frames, data_url, overwrite)#
Provide a helper class to dump data frame by frame. For know the only possible interaction is Helper[:] = frame
- Parameters:
n_frames – number of frame the final volume will contain
data_url (DataUrl) – url to dump data
overwrite (
bool) – overwrite existing file ?
- deduce_data_and_metadata_urls(url)#
compute data and metadata urls from ‘parent url’ :rtype: tuple :return: data_url: DataUrl | None, metadata_url: DataUrl | None
- static example_defined_from_str_identifier()#
example as string to explain how users can defined identifiers from a string
- Return type:
str
- static from_identifier(identifier)#
Return the Dataset from a identifier
- get_bounding_box(axis=None)#
Return the bounding box covered by the Tomo object axis is expected to be in (0, 1, 2) or (x==0, y==1, z==2)
- get_identifier()#
dataset unique identifier. Can be for example a hdf5 and en entry from which the dataset can be rebuild
- Return type:
- get_min_max()#
compute min max of the volume. Can take some time but avoid to load the full volume in memory
- Return type:
tuple
- get_min_max_values(url=None)#
compute min max over ‘data’ if exists else browsing the volume slice by slice
- Parameters:
url – data url to be used. If not provided will take self.data_url
- Return type:
tuple
- get_slice(index=None, axis=None, xy=None, xz=None, yz=None, url=None)#
read a single slice of the volume
- get_slices(slices)#
retrieve a couple of slices along any axis:
For example, if you want to retrieve slice number 2 of axis 0 and slice number 56 of axis 1:
slices = volume.get_slices( (0, 2), (1, 56), ) for (axis, slice), data in slices: ...
- Return type:
dict[SliceTuple, numpy.ndarray]
- get_volume_shape(url=None)#
return volume shape as a tuple
- load_chunk(chunk, url=None)#
Load a sub-volume.
- Parameters:
chunk – tuple of slice objects indicating which chunk of the volume has to be loaded.
url – data url to be used. If not provided will take self.data_url
- load_data(url=None, store=True)#
load volume data from disk
- Return type:
numpy.ndarray
- load_metadata(url=None, store=True)#
load volume metadata from disk
- Return type:
dict
- property position: tuple | None#
position are provided as a tuple using the same reference for axis as the volume data. position is returned as (axis_0_pos, axis_1_pos, axis_2_pos). Can also be see as (z_position, y_position, x_position)
- Return type:
tuple | None
- save(url=None, **kwargs)#
save volume data and metadata to disk
- save_data(url=None)#
save data to the provided url or existing one if none is provided
- Return type:
None
- save_metadata(url=None)#
save metadata to the provided url or existing one if none is provided
- Return type:
None
- static select(volume, xy=None, xz=None, yz=None, axis=None, index=None)#
select a slice at ‘index’ along an axis (axis)
- Return type:
numpy.array
- property voxel_size: tuple | None#
voxel size as (axis 0 dim - aka z, axis 1 dim - aka y, axis 2 dim aka z) Returned in meter
- Return type:
tuple | None