3.3.3.10. NXspecdataΒΆ
Status:
contributed definition, extends NXobject, version 1.0
Description:
Data collected by SPEC control and data acquisition software
SPEC [1] is software for instrument control and data acquisition in X-ray diffraction experiments.
[1] SPEC: https://certif.com
Symbols:
No symbol table
Structure:
@default: NX_CHAR
@HDF5_Version: NX_CHAR
Version of HDF5 library used in writing the file (as specified in NXroot).
Note this attribute is spelled with uppercase “V”, different than other version attributes.
@h5py_version: NX_CHAR
version of h5py Python package used to write this HDF5 file@SPEC_file: NX_CHAR
original SPEC data file name from #F line in file header@SPEC_date: NX_CHAR
date from #D line in file header, in ISO8601 format@SPEC_epoch: NX_INT
UNIX time epoch from #E line in file header@SPEC_comments: NX_CHAR
any #C lines in file header, stored as one string with newlines between comments@SPEC_num_headers: NX_INT
Number of header sections found in the spec file(entry): NXentry
one scan from a SPEC data file, starts with a #S line
@default: NX_CHAR
definition: NX_CHAR
Official NeXus NXDL schema to which this subentry conforms.
Obligatory value:
NXspecdata
scan_number: NX_NUMBER
SPEC scan numbertitle: NX_CHAR
SPEC scan number and command, from #S line
SPEC data file line:
#S 1 cscan en 690 750 60 0
title:
1 cscan en 690 750 60 0command: NX_CHAR
SPEC scan command, from #S line, after the scan number.
SPEC data file line: #S 1 cscan en 690 750 60 0
command*: cscan en 690 750 60 0
date: NX_DATE_TIME
date from #D line in scan header, in ISO8601 formatcomments: NX_CHAR
Any #C lines in this scan, stored as one string with newlines between commentsQ: NX_NUMBER
#Q – () at start of scan
array of [ ]
TEMP_SP: NX_NUMBER
#X – temperature set pointDEGC_SP: NX_NUMBER
#X – temperature set point (C)(monitor): NXmonitor
@description: NX_CHAR
mode: NX_CHAR
Count to a preset value based on either clock time (timer) or received monitor counts (monitor).
Any of these values:
monitor
|timer
preset: NX_NUMBER
preset value for time or monitor
- #M – counting against this constant monitor count (see #T)
- #T – counting against this constant number of seconds (see #M)
@units: NX_CHAR
data: NX_NUMBER
array(s) of monitor datacount_time: NX_NUMBER
array(s) of monitor datadata: NXdata
detector (and MCA) data from this scan
@description: NX_CHAR
@signal: NX_CHAR
name of the field with the plottable data, typically the last column for 1-D scans
This is the primary dependent axis, such as two-theta detector. This field must exist (or be linked) in this NXdata group.
@axes: NX_CHAR
name(s) of the field(s) for plotting the data, typically the first column for 1-D scans
These are the independent axes, such as positioners. For 2-D or higher dimension data, there will be a field named for each dimension, separated by ”:” (preferred) or ”,” or ” ” (whitespace).
Such as for 2-D data plotted against energy and th:
@axes = energy:thThis(these) field(s) must exist (or be linked) in this NXdata group.
@AXISNAME_indices: NX_NUMBER
For each field named in @axes, there will be an instance of this attribute, defining into which dimensions of the @signal data this field applies. The value of this attribute is a list of index numbers using 0-based indexing (first dimension is 0, seconds i 1, ...).
Such as for 2-D data plotted against energy and th:
@energy_indices = [0] @th_indices = [1]data: NX_NUMBER
one column of data from the scan
HDF5 requires that each member of a group must have a unique name.
Pick the name of column from #L but make it unique which means if the same name is used in more than one column, append a number to the extra instances to make them unique yet preserve their content, just in case they might be different.
Example:
seconds seconds
becomesseconds
andseconda_1
.@spec_name: NX_CHAR
name as specified in #L line, before it was made unique for HDF5@units: NX_CHAR
Unless stated otherwise, units (not declared in the SPEC data file) are assumed to be counts for detectors and “unknown” for positioners or other scan columns.intensity_factor: NX_NUMBER
#I – intensity normalizing factor_mca_: NX_NUMBER
_mca_channel_: NX_NUMBER
_mca1_: NX_NUMBER
_mca1_channel_: NX_NUMBER
counter_cross_reference: NXnote
positioner_cross_reference: NXnote
spec: NXinstrument
G: NXnote
SPEC geometry variables for this diffractometer geometry (instrument specific)
TODO: give interpreted name for each array value (need to figure out how to get the names)
@comment: NX_CHAR
@description: NX_CHAR
G0: NX_NUMBER
geometry parameters from G[] array (geo mode, sector, etc)G1: NX_NUMBER
geometry parameters from U[] array (lattice constants, orientation reflections)G2: NX_NUMBER
not used, although some files has a single zero valueG4: NX_NUMBER
geometry parameters from Q[] array (lambda, frozen angles, cut points, etc)positioners: NXnote
names and values of all positioners (#O and #P lines) in scan header
@description: NX_CHAR
positioner: NX_NUMBER
one positioner from the scan header
HDF5 requires that each member of a group must have a unique name.
SPEC assigns a unique name to each positioner, no extra work is neccesary to comply with the HDF5 rule for unique names in a group.
MCA: NXnote
#@CALIB – coefficients to compute a scale based on the MCA channel number
@description: NX_CHAR
preset_time: NX_NUMBER
elapsed_live_time: NX_NUMBER
elapsed_real_time: NX_NUMBER
number_saved: NX_NUMBER
first_saved: NX_INT
last_saved: NX_INT
reduction_coef: NX_NUMBER
calib_a: NX_NUMBER
calib_b: NX_NUMBER
calib_c: NX_NUMBER
ROI: NXnote
metadata: NXnote
SPEC metadata (UNICAT-style #H and #V lines)
This is a block that may be unique to SPEC files acquired at certain APS beam lines. Other facilities or instruments may use this block for storing key:value pairs of data where the values have suitable attributes (such as units).
@description: NX_CHAR
SPEC_user: NXuser
SPEC_user: NX_CHAR
user name from first #C line in file header_unrecognized: NXnote