NeXus Files
IBEX writes out scientific data as NeXus files, which are a set of definitions built on top of the HDF5 format and used by most scattering-type experiments (including x-ray, lasers, Neutron and Muon facilities worldwide). The NeXus format documents the general layout of a NeXus file; this documentation documents the specific datasets written in practice by IBEX, including any quirks or facility-specific details of their interpretation.
On a DAE2 or DAE3 instrument, these files are written by the ISISICP process. On a streaming instrument, these files are written by the data streaming filewriter.
The NeXus files conform, where possible, to the TOFRaw definition.
Data types
Except where otherwise noted:
Strings are ASCII-encoded, null terminated.
Little-endian data types are used.
32-bit signed integers or 32-bit floats are used
raw_data_1
An ISIS NeXus file always contains a top-level raw_data_1 group, which is an NXentry.
It may contain the datasets and groups listed below:
raw_data_1/definition
On a Neutron instrument: ASCII string containing TOFRAW. See NXtofraw for the application
definition this references.
Attributes:
version:"1.0"url:"http://definition.nexusformat.org/instruments/TOFRAW?version=1.0"
On a Muon instrument: ASCII string containing pulsedTD.
Attributes:
version:"2.0"url:"http://definition.nexusformat.org/instruments/pulsedTD?version=2.0"
raw_data_1/definition_local
"ISISTOFRAW".
Attributes:
version:"1.0"url:"http://svn.isis.rl.ac.uk/instruments/ISISTOFRAW?version=1.0"
This dataset is not written on a Muon instrument.
raw_data_1/program_name
"ISISICP.EXE" on a DAE2/DAE3 instrument, or the name of the file-writer executable on a data-streaming instrument.
raw_data_1/run_number
The run number, as a 32-bit signed integer. For example, for run POLREF12345, the run number is 12345.
raw_data_1/run_cycle
The ISIS cycle identifier, as a string. For example 24_5 for cycle 2024/05.
raw_data_1/title
The user-provided run title as a string.
For example "Quiet Counts after DAE fix 24/5".
raw_data_1/notes
The user-provided notes as a string. Commonly empty and written as a zero-length string in that case. Set in IBEX via Experiment Details -> Sample -> Comments.
raw_data_1/name
The instrument name, for example POLREF or MERLIN.
Attributes:
short_name: a shortened, typically 3-character, representation of the instrument name. For example,MERLIN’s short name isMER.
raw_data_1/beamline
The instrument name, for example POLREF or MERLIN. The instrument name is identical to the raw_data_1/name dataset.
Unlike raw_data_1/name, this dataset does not contain a short_name attribute.
raw_data_1/start_time
The time when data collection started, as an ISO8601 string. For example 2025-03-27T10:56:13.
Attributes:
units:"ISO8601"
raw_data_1/end_time
The time when data collection ended, as an ISO8601 string. For example 2025-03-27T10:56:13.
Attributes:
units:"ISO8601"
raw_data_1/duration
The duration of the measurement, as a float32. Identical to raw_data_1/collection_time. This is not necessarily equal to the difference between raw_data_1/start_time and raw_data_1/end_time, because time spent paused or under run control is not included.
Note
The datatype used by the ISISICP (float32) is incompatible with the type specified by the NeXus standard (NX_INT).
Attributes:
units:"second"
raw_data_1/collection_time
The duration of the measurement, as a float32. Identical to raw_data_1/duration. This is not necessarily equal to the difference between raw_data_1/start_time and raw_data_1/end_time, because time spent paused or under run control is not included.
Attributes:
units:"second"
raw_data_1/proton_charge
Accumulated “good” proton charge (i.e. the proton charge corresponding to raw_data_1/good_frames) during the run, as a float32.
Attributes:
units:"uAh"
raw_data_1/proton_charge_raw
Accumulated total proton charge (i.e. the proton charge corresponding to raw_data_1/raw_frames) during the run, as a float32.
Attributes:
units:"uAh"
raw_data_1/good_frames
Number of good frames during the run, as an int32.
raw_data_1/raw_frames
Number of good and vetoed frames during the run, as an int32.
raw_data_1/experiment_identifier
RB number of the run, formatted as a string. For example "12345678"
raw_data_1/seci_config
This represents the IBEX configuration loaded at the time of the run. The name seci_config is historical, as
SECI was the previous control system used before IBEX. IBEX configuration names are user-specified, within a set of rules.
For example, "Horizontal_HCM_with_Helmholtz_coils"
raw_data_1/measurement_id
A copy of raw_data_1/measurement/id.
raw_data_1/measurement_subid
A copy of raw_data_1/measurement/subid.
raw_data_1/measurement_type
A copy of raw_data_1/measurement/type.
raw_data_1/measurement_first_run
A copy of raw_data_1/measurement/first_run.
raw_data_1/measurement_label
A copy of raw_data_1/measurement/label.
raw_data_1/script_name
This is user-settable string metadata. It is set in IBEX under Experiment Details -> Sample Parameters -> Script Name.
The top-level raw_data_1 NXentry also contains the following groups, which are documented on their own pages: