Most of the examples of data files have been written in a format intended to show the structure of the file rather than the data content. In some cases, where it is useful, some of the data is shown. Consider this prototype example:
example of NeXus data file structure
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | entry:NXentry
instrument:NXinstrument
detector:NXdetector
data:[]
@axes = "bins"
@long_name = "strip detector 1-D array"
@signal = 1
bins:[0, 1, 2, ... 1023]
@long_name = "bin index numbers"
sample:NXsample
name = "zeolite"
data:NXdata
data --> /entry/instrument/detector/data
bins --> /entry/instrument/detector/bins
|
Some words on the notation:
Line 1 shows that there is one group at the root level of the file named entry. This group is of type NXentry which means it conforms to the specification of the NXentry NeXus base class. Using the HDF5 nomenclature, we would refer to this as the /entry group.
Lines 2, 10, and 12: The /entry group contains three subgroups: instrument, sample, and data. These groups are of type NXinstrument, NXsample, and NXdata, respectively.
Line 4: The data of this example is stored in the /entry/instrument/detector group in the dataset called data (HDF5 path is /entry/instrument/detector/data). The indication of data:\[] says that data is an array of unspecified dimension(s).
Lines 5-7: There are three attributes of /entry/instrument/detector/data: axes, long_name, and signal.
Line 8 (reading bins:\[0, 1, 2, ... 1023]) shows that bins is a 1-D array of length presumably 1024. A small, representative selection of values are shown.
Line 9: an attribute that shows a descriptive name of /entry/instrument/detector/bins. This attribute might be used by a NeXus client while plotting the data.
Line 11 (reading name = "zeolite") shows how a string value is represented.
Lines 13-14: The /entry/data) group has two datasets that are actually linked as shown. (As you will see later, the NXdata group is required and enables NeXus clients to easily determine what to offer for display on a default plot.)
In some places in this documentation, a path may be shown using the class types rather than names. For example:
/NXentry/NXinstrument/NXcrystal/wavelength
identifies a dataset called wavelength that is inside a group of type NXcrystal ...
As it turns out, this syntax is the syntax used in NXDL link specifications. This syntax is also used when the exact name of each group is either unimportant or not specified.
If default names are taken for each class, then the above class path is expressed as this equivalent HDF5 path:
/entry/instrument/crystal/wavelength
In some places in this documentation, where clarity is needed to specify both the path and class name, you may find this equivalent path:
/entry:NXentry/instrument:NXinstrument/crystal:NXcrystal/wavelength