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 is MER.

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: