index.rst 1.77 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
.. _Design:

Design
======

HDF5Converter
'''''''''''''

The more it goes the more use cases the hdf5 converter has to handle.
Today it handles "classical" tomography acquisition and zseries.
Tomorrow it will handle 3d-XRD and XRD-CT.

13
To manage all the use cases it has evolved. Each acquisition has now it's own acquisition class. All based on the :class:`nxtomomill.converter.hdf5.acquisition.baseacquisition.BaseAcquisition`
14

15
16
17
18
19
- :class:`.StandardAcquisition` default acquisition.
- :class:`.ZSeriesBaseAcquisition` a serie of default acquisition with a set of z values. Create one NXTomo per different z
- :class:`.XRD3DAcquisition` close to a default acquisition but add two motors to he handled: *rocking* and *base-tilt*
- :class:`.XRDCTAcquisition`

20
.. image:: design/img/acquisitions_class_diag.png
21
22
   :width: 600 px
   :align: center
23
24
25
26


The regular conversion sequence is:

27
.. image:: design/img/hdf5_sequence_diagram.png
28
29
30
   :width: 600 px
   :align: center

31
32
33
34
35
36
37
38
39
40
Actually we also have two configuration handler classes. Both inherit from :class:`nxtomomill.io.confighandler.BaseHDF5ConfigHandler`.

The configuration handler is used to make the connection between applications options and configuration (:class:`nxtomomill.io.config.TomoHDF5Config`)

- :class:`.TomoHDF5ConfigHandler`: used by *h52nx* application
- :class:`.XRDCTAcquisition`: used by *h5-3dxrd-2x* application

The configuration is used to make the conversion (defines input file, output file, entry titles, urls to be converted, source format...)

Actually there is also two configuration classes.
41

42
- :class:`.TomoHDF5Config`: define the configuration to generate a usual "NXTomo"
43
- :class:`.XRD3DHDF5Config`: define the configuration for 3D-XRD acquisition (close to a standard acquisition including two motors: *rocking* and *base-tilt*)