ESRFPath_tomo_v1#

class esrf_pathlib.ESRFPath_tomo_v1(*args, **kwargs)#

Bases: Path

Tomography Processed Data Policy v1

Introduced on Feb 23, 2026.

Path hierarchy:

{data_root}/{proposal}/{beamline}/{session_date}/     [TID]
    └── {data_type=PROCESSED_DATA}/
          ├── {data_type=SLICES}/
          │     └── {collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{tomo_extension}
          ├── {data_type=VOLUMES}/
          |     └── {collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/
          |           └── {collection}_{dataset}_{tomo_slice_number}.{tomo_extension}
          └── {collection}/   [esrf-pathlib]
                ├── {data_type=SLICES}/
                │     └── {collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{tomo_extension}
                ├── {data_type=VOLUMES}/
                |     └── {collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/
                |           └── {collection}_{dataset}_{tomo_slice_number}.{tomo_extension}
                └── {collection}_{dataset}/    [esrf-pathlib]
                      ├── references/
                      │     ├── {collection}_{dataset}_darks.hdf5
                      │     └── {collection}_{dataset}_flats.hdf5
                      ├── projections/
                      │     ├── {collection}_{dataset}.nx
                      │     └── gallery/
                      │           ├── metadata.json
                      │           ├── {collection}_{dataset}_{tomo_angle}_large.{thumbnail_file_type}
                      │           └── {collection}_{dataset}_{tomo_angle}.{thumbnail_file_type}
                      ├── slices/
                      │     ├── {collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{tomo_extension}
                      │     └── gallery/
                      │           ├── metadata.json
                      │           ├── {collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}_large.{thumbnail_file_type}
                      │           └── {collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{thumbnail_file_type}
                      ├── volumes/
                      │     └── {collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/
                      │           ├── {collection}_{dataset}_{tomo_slice_number}.{tomo_extension}
                      │           └── gallery/
                      │                 ├── metadata.json
                      │                 ├── {collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}_large.{thumbnail_file_type}
                      │                 └── {collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{thumbnail_file_type}
                      ├── volumes_{tomo_type}/
                      │     └── {collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_dtype}_{tomo_extension}/
                      │           ├── {collection}_{dataset}_{tomo_slice_number}.{tomo_extension}
                      │           └── gallery/
                      │                 ├── metadata.json
                      │                 ├── {collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_slicing_direction}_{tomo_slice_number}_large.{thumbnail_file_type}
                      │                 └── {collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_slicing_direction}_{tomo_slice_number}.{thumbnail_file_type}
                      └── logs/
                      │     └── {collection}_{dataset}_{tomo_application}.log
                      └── workflows/
                           └── gallery/
                           └── {collection}_{dataset}.json

Derive a class from ESRFPath to restrict path matching, parsing and rendering to this schema:

from esrf_pathlib import ESRFPath

class TomoPath(ESRFPath, tomo=1, fallback_depth=0):
    pass
property beamline: str#

Beamline name.

Examples: 'id21', 'id23eh1', 'id30a1'

property beamline_normalized: str#

Normalized beamline name for the Data Portal.

Examples: 'id21', 'id23-1', 'id30a-1'

property collection: str#

Collection of datasets.

property data_root: str#

Root directory.

property data_type: DataType#

Data type.

Enumeration: 'RAW_DATA', 'PROCESSED_DATA', 'NOBACKUP', 'SCRIPTS', 'GALLERY', 'NOTES'

property dataset: str#

Dataset name (smallest entity in the data portal).

property gallery_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=GALLERY}[/{unknown_part}]

property nobackup_collection_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOBACKUP}/{collection}/{proposal}_{collection}.h5

property nobackup_collection_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOBACKUP}/{collection}[/{unknown_part}]

property nobackup_dataset_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOBACKUP}/{collection}/{collection}_{dataset}/{collection}_{dataset}.h5

property nobackup_dataset_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOBACKUP}/{collection}/{collection}_{dataset}[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOBACKUP}/{collection}/{collection}_{dataset}/gallery[/{unknown_part}]

property nobackup_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOBACKUP}[/{unknown_part}]

property nobackup_proposal_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOBACKUP}/{proposal}_{beamline}.h5

property notes_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=NOTES}[/{unknown_part}]

property processed_collection_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{proposal}_{collection}.h5

property processed_collection_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}[/{unknown_part}]

property processed_data_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}[/{unknown_part}]

property processed_dataset_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/{collection}_{dataset}.h5

property processed_dataset_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/gallery[/{unknown_part}]

property processed_proposal_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{proposal}_{beamline}.h5

property projections_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/projections/{collection}_{dataset}.nx

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/projections/gallery[/{unknown_part}]

property projections_metadata_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/projections/gallery/metadata.json

property projections_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/projections[/{unknown_part}]

property projections_preview: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/projections/gallery/{collection}_{dataset}_{tomo_angle}.{thumbnail_file_type}

property projections_thumbnail: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/projections/gallery/{collection}_{dataset}_{tomo_angle}_large.{thumbnail_file_type}

property proposal: str#

ESRF proposal name.

Examples: 'ma1234', 'blc1234'

property raw_collection_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/{collection}/{proposal}_{collection}.h5

property raw_collection_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/{collection}[/{unknown_part}]

property raw_data_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}[/{unknown_part}]

property raw_dataset_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/{collection}/{collection}_{dataset}/{collection}_{dataset}.h5

property raw_dataset_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/{collection}/{collection}_{dataset}[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/{collection}/{collection}_{dataset}/gallery[/{unknown_part}]

property raw_metadata_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/__icat__/{collection}_{dataset}.xml

property raw_metadata_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/__icat__[/{unknown_part}]

property raw_proposal_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=RAW_DATA}/{proposal}_{beamline}.h5

property references_dark: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/references/{collection}_{dataset}_darks.hdf5

property references_flat: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/references/{collection}_{dataset}_flats.hdf5

property references_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/references[/{unknown_part}]

property scripts_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=SCRIPTS}[/{unknown_part}]

property session_date: date#

Start date of the experimental session (YYYYMMDD).

property session_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}[/{unknown_part}]

property slices_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/slices/{collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/slices/gallery[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{tomo_result_type=SLICES}/{collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{tomo_result_type=SLICES}[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{tomo_result_type=SLICES}/{collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{tomo_result_type=SLICES}[/{unknown_part}]

property slices_metadata_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/slices/gallery/metadata.json

property slices_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/slices[/{unknown_part}]

property slices_preview: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/slices/gallery/{collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{thumbnail_file_type}

property slices_thumbnail: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/slices/gallery/{collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}_large.{thumbnail_file_type}

property thumbnail_file_type: str#

Thumbnail file type (e.g. png, jpg).

property tomo_angle: int | float#

Projection angle for raw projections in deg notation (e.g. 180deg, 180.5deg).

property tomo_application: str#

Application/workflow name that produced the result (e.g. nabu).

property tomo_dtype: str#

Output numeric data type / bit depth (e.g. 16Bit, 32Bit).

Examples: '16Bit', '32Bit'

property tomo_extension: str#

File extension (e.g. hdf5, tiff, vol).

property tomo_log_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/logs/{collection}_{dataset}_{tomo_application}.log

property tomo_log_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/logs[/{unknown_part}]

property tomo_result_type: TomoResultType#

Tomography result type.

Enumeration: 'SLICES', 'VOLUMES'

property tomo_slice_number: int#

Slice index (0-based) formatted with 5 digits minimum (e.g. 00000, 00001).

property tomo_slicing_direction: str#

Slicing direction in ESRF coordinates (xy, yz or xz).

property tomo_technique: str#

Tomography technique (e.g. absorption, phase).

Examples: 'absorption', 'phase'

property tomo_type: str#

Processing type/context (e.g. stitched, denoised, segmented).

Examples: 'stitched', 'denoised', 'segmented'

property unknown_part: str#

Unknown path or path segment (placeholder for unmapped directories or files).

property unknown_path: str#

Filesystem path template

{unknown_part}

property volumes_custom_type_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes_{tomo_type}/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_dtype}_{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes_{tomo_type}/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_dtype}_{tomo_extension}/gallery[/{unknown_part}]

property volumes_custom_type_metadata_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes_{tomo_type}/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_dtype}_{tomo_extension}/gallery/metadata.json

property volumes_custom_type_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes_{tomo_type}[/{unknown_part}]

property volumes_custom_type_preview: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes_{tomo_type}/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_dtype}_{tomo_extension}/gallery/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_slicing_direction}_{tomo_slice_number}.{thumbnail_file_type}

property volumes_custom_type_slice_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes_{tomo_type}/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_dtype}_{tomo_extension}/{collection}_{dataset}_{tomo_slice_number}.{tomo_extension}

property volumes_custom_type_thumbnail: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes_{tomo_type}/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_dtype}_{tomo_extension}/gallery/{collection}_{dataset}_{tomo_technique}_{tomo_type}_{tomo_slicing_direction}_{tomo_slice_number}_large.{thumbnail_file_type}

property volumes_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/gallery[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{tomo_result_type=VOLUMES}/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{tomo_result_type=VOLUMES}[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{tomo_result_type=VOLUMES}/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/{collection}_{dataset}_{tomo_slice_number}.{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{tomo_result_type=VOLUMES}/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{tomo_result_type=VOLUMES}[/{unknown_part}]

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{tomo_result_type=VOLUMES}/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/{collection}_{dataset}_{tomo_slice_number}.{tomo_extension}

property volumes_metadata_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/gallery/metadata.json

property volumes_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes[/{unknown_part}]

property volumes_preview: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/gallery/{collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}.{thumbnail_file_type}

property volumes_slice_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/{collection}_{dataset}_{tomo_slice_number}.{tomo_extension}

property volumes_thumbnail: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/volumes/{collection}_{dataset}_{tomo_technique}_{tomo_dtype}_{tomo_extension}/gallery/{collection}_{dataset}_{tomo_technique}_{tomo_slicing_direction}_{tomo_slice_number}_large.{thumbnail_file_type}

property workflows_file: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/workflows/gallery/{collection}_{dataset}.json

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/workflows/gallery[/{unknown_part}]

property workflows_path: str#

Filesystem path template

{data_root}/{proposal}/{beamline}/{session_date}/{data_type=PROCESSED_DATA}/{collection}/{collection}_{dataset}/workflows[/{unknown_part}]