3.2.1.2. NXDL: Data Types and Units

Data Types allowed in NXDL specifications

Data types for use in NXDL describe the expected type of data for a NeXus field. These terms are very broad. More specific terms are used in actual NeXus data files that describe size and array dimensions. In addition to the types in the following table, the NAPI type is defined when one wishes to permit a field with any of these data types.

ISO8601:ISO 8601 date and time representation (http://www.w3.org/TR/NOTE-datetime)
NX_BINARY:any representation of binary data - if text, line terminator is [CR][LF]
NX_BOOLEAN:true/false value ( true | 1 | false | 0 )
NX_CHAR:any string representation
NX_DATE_TIME:alias of ISO8601
NX_FLOAT:any representation of a floating point number
NX_INT:any representation of an integer number
NX_NUMBER:any valid NeXus number representation
NX_POSINT:any representation of a positive integer number (greater than zero)
NX_UINT:any representation of an unsigned integer number (includes zero)

Unit Categories allowed in NXDL specifications

Unit categories in NXDL specifications describe the expected type of units for a NeXus field. They should describe valid units consistent with the NeXus units section. The values for unit categories are restricted (by an enumeration) to the following table.

NX_ANGLE:example: degrees or radians or arcminutes or
NX_ANY:usage: things like logs that aren’t picky on units
NX_AREA:example: m2 or barns
NX_CHARGE:example: pC or C
NX_CROSS_SECTION:
 example: barns
NX_CURRENT:example: A
NX_DIMENSIONLESS:
 for fields where the units cancel out, example: “” or mm/mm (NOTE: not the same as NX_UNITLESS)
NX_EMITTANCE:emittance (length * angle) of a radiation source, example: nm*rad
NX_ENERGY:example: J or keV
NX_FLUX:example: s-1 cm-2
NX_FREQUENCY:example: Hz
NX_LENGTH:example: m
NX_MASS:example: g
NX_MASS_DENSITY:
 example: g cm-3
NX_MOLECULAR_WEIGHT:
 example: g mol-1
NX_PERIOD:(alias to NX_TIME) period of pulsed source, example: microseconds
NX_PER_AREA:example: cm-2
NX_PER_LENGTH:example: cm-1
NX_POWER:example: W
NX_PRESSURE:example: Pa
NX_PULSES:(alias to NX_NUMBER) clock pulses
NX_SCATTERING_LENGTH_DENSITY:
 example: cm-2
NX_SOLID_ANGLE:example: sr | steradian
NX_TEMPERATURE:example: K
NX_TIME:example: s
NX_TIME_OF_FLIGHT:
 (alias to NX_TIME) example: s
NX_UNITLESS:for fields that don’t have a unit (e.g. hkl) so that they don’t inherit the wrong units (NOTE: not the same as NX_DIMENSIONLESS)
NX_VOLTAGE:example: V
NX_VOLUME:example: m3
NX_WAVELENGTH:example: angstrom
NX_WAVENUMBER:units for Q, example: angstrom-1 or nm-1