3.3.3.13. NXspecdataΒΆ
Status:
contributed definition, extends NXobject
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: (required) NX_CHAR
@HDF5_Version: (required) 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: (optional) NX_CHAR
version of h5py Python package used to write this HDF5 file@SPEC_file: (optional) NX_CHAR
original SPEC data file name from #F line in file header@SPEC_date: (optional) NX_CHAR
date from #D line in file header, in ISO8601 format@SPEC_epoch: (required) NX_INT
UNIX time epoch from #E line in file header@SPEC_comments: (optional) NX_CHAR
any #C lines in file header, stored as one string with newlines between comments@SPEC_num_headers: (optional) NX_INT
Number of header sections found in the spec file(entry): (required) NXentry
one scan from a SPEC data file, starts with a #S line
@default: (required) NX_CHAR
definition: (required) NX_CHAR
Official NeXus NXDL schema to which this subentry conforms.
Obligatory value:
NXspecdata
scan_number: (required) NX_NUMBER
SPEC scan numbertitle: (required) 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: (required) 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: (required) NX_DATE_TIME
date from #D line in scan header, in ISO8601 formatcomments: (required) NX_CHAR
Any #C lines in this scan, stored as one string with newlines between commentsQ: (required) NX_NUMBER
#Q – \(Q\) (\(hkl\)) at start of scan
array of [\(h\) \(k\) \(l\)]
TEMP_SP: (required) NX_NUMBER
#X – temperature set pointDEGC_SP: (required) NX_NUMBER
#X – temperature set point (C)(monitor): (required) NXmonitor
@description: (required) NX_CHAR
mode: (required) 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: (required) 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: (required) NX_CHAR
data: (required) NX_NUMBER
array(s) of monitor datacount_time: (required) NX_NUMBER
array(s) of monitor datadata: (required) NXdata
detector (and MCA) data from this scan
@description: (required) NX_CHAR
@signal: (required) 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: (required) 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: (required) 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: (required) 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: (required) NX_CHAR
name as specified in #L line, before it was made unique for HDF5@units: (required) 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: (required) NX_NUMBER
#I – intensity normalizing factor_mca_: (required) NX_NUMBER
_mca_channel_: (required) NX_NUMBER
_mca1_: (required) NX_NUMBER
_mca1_channel_: (required) NX_NUMBER
counter_cross_reference: (required) NXnote
positioner_cross_reference: (required) NXnote
spec: (required) NXinstrument
G: (required) 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: (required) NX_CHAR
@description: (required) NX_CHAR
G0: (required) NX_NUMBER
geometry parameters from G[] array (geo mode, sector, etc)G1: (required) NX_NUMBER
geometry parameters from U[] array (lattice constants, orientation reflections)G2: (required) NX_NUMBER
not used, although some files has a single zero valueG4: (required) NX_NUMBER
geometry parameters from Q[] array (lambda, frozen angles, cut points, etc)positioners: (required) NXnote
names and values of all positioners (#O and #P lines) in scan header
@description: (required) NX_CHAR
positioner: (required) 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: (required) NXnote
#@CALIB – coefficients to compute a scale based on the MCA channel number
@description: (required) NX_CHAR
preset_time: (required) NX_NUMBER
elapsed_live_time: (required) NX_NUMBER
elapsed_real_time: (required) NX_NUMBER
number_saved: (required) NX_NUMBER
first_saved: (required) NX_INT
last_saved: (required) NX_INT
reduction_coef: (required) NX_NUMBER
calib_a: (required) NX_NUMBER
calib_b: (required) NX_NUMBER
calib_c: (required) NX_NUMBER
ROI: (required) NXnote
metadata: (required) 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: (required) NX_CHAR
SPEC_user: (required) NXuser
SPEC_user: (required) NX_CHAR
user name from first #C line in file header_unrecognized: (required) NXnote