Commit 16f32330 authored by Thomas Vincent's avatar Thomas Vincent

add input hdf5 format description from Carsten Richter.

parent 550fd4b7
========================
HDF5 input file format
========================
Data dimensions
===============
Raw detector images are stored as a **J** 3D datasets (**N** * **M**, **K**, **L**), where:
- **J** raster scans (with angle or energy varying) consisting of
- **N** scan lines and
- **M** scan columns
- detector images with shape (**K**, **L**) taken for each point
Obviously (**N**, **M**, **K**, **L**) as well as the nominal motor positions need to be equal for all **J** scans.
File structure
==============
Each scan is stored in a separated HDF5 file, all of which are accessible through a "master" HDF5 file.
See :numref:`figure_input_file` below for an example.
Master file root:
- **Scan entry**: **J** entries, one for each raster scan done with som varying motor position or energy (``NXentry``)
- **instrument** (``NXinstrument``)
- **detector** (``NXdetector``)
- **beam_energy**: Beam energy in eV (``float``)
- **center_chan_dim0**: Pixel of the direct beam when all angles=0 for first image dimension (``float``)
- **center_chan_dim1**: Pixel of the direct beam when all angles=0 for second image dimension (``float``)
- **chan_per_deg_dim0**: Pixel per degree in first image dimension (``float``)
- **chan_per_deg_dim1**: Pixel per degree in second image dimension (``float``)
- **data**: 3D dataset for this raster scan with shape (**N** * **M**, **K**, **L**), i.e., flattened along scan axes.
- **image_roi_offset**: Optional.
Offset for center chan if using only a ROI of the PSD.
Default: [0, 0] (``[int, int]``)
- **positioners**: This group contains datasets for all positioners.
Dataset shape is either (1,) or (**N** * **M**,) (``NXcollection``)
- **measurement**: Group containing all the scan data with shape (**N** * **M**,) can be used, e.g., for normalization.
Not mandatory (``NXcollection``)
- **adcX**: X encoder position (1D array of float)
- **adcY**: Y encoder position (1D array of float)
- **adcZ**: Z encoder position (1D array of float)
- **image** (``NXcollection``)
- **data**: Link to ``../../instrument/detector/data``
- **info**: Link to ``../../instrument/detector`` (``NXdetector``)
- **scan**: Raster scan info
- **delay**: Exposure time (``float``)
- **motor_0**: Fast motor name (``string``)
- **motor_0_end**: Fast motor end (``float``)
- **motor_0_start**: Fast motor start (``float``)
- **motor_0_steps**: Fast motor number of points (``int``)
- **motor_1**: Slow motor name (``string``)
- **motor_1_end**: Slow motor end (``float``)
- **motor_1_start**: Slow motor start (``float``)
- **motor_1_steps**: Slow motor number of points (``int``)
- **start_time** (``string``)
- **title**: Scan title (``string``)
Example
=======
.. _figure_input_file:
.. figure:: img/input_file.png
:align: center
Example of a X-Socs HDF5 input file structure
......@@ -15,6 +15,7 @@ films, surfaces or even embedded structures.
using.rst
tutorials.rst
modules.rst
fileformat.rst
troubleshooting.rst
:doc:`install`
......@@ -29,6 +30,9 @@ films, surfaces or even embedded structures.
:doc:`modules`
Documentation of the script API
:doc:`fileformat`
Description of the input HDF5 file format
:doc:`troubleshooting`
When things do not work as expected
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment