NeXus Documentation

User Manual and Reference Documentation


Table of Contents

Volume I: NeXus User Manual
Preface
Representation of data examples
Class path specification
1. NeXus Introduction
What is NeXus?
A Set of Design Principles
A Set of Data Storage Objects
A Set of Subroutines
Scientific Community
Motivations for the NeXus standard in the Scientific Community
Simple plotting
Unified format for reduction and analysis
Defined dictionary of terms
NAPI: The NeXus Application Programming Interface
How do I write a NeXus file?
How do I read a NeXus file?
How do I browse a NeXus file?
2. NeXus Design
NeXus Objects and Terms
Data Groups
Data Fields
Data Attributes
Links
NeXus Base Classes
NeXus Application Definitions
NeXus Coordinate Systems
McStas and NXgeometry System
Simple (Spherical Polar) Coordinate System
Coordinate Transformations
Rules for Structuring Information in NeXus Files
Content of a Raw Data NXentry Group
Content of a processed data NXentry group
NXsubentry or Multi-Method Data
Rules for Special Cases
Rules for Storing Data Items in NeXus Files
Naming Conventions
NeXus Array Storage Order
NeXus Data Types
NeXus Data Units
Linking Multi Dimensional Data with Axis Data
Storing Detectors
Monitors are Special
Find the plottable data
Physical File format
Choice of HDF as Underlying File Format
Mapping NeXus into HDF
Mapping NeXus into XML
Special Attributes
3. Constructing NeXus Files and Application Definitions
The WOnderful New Instrument (WONI)
Constructing a NeXus file for WONI
Decide which parameters need to be stored
Mapping parameters to NeXus
Decide on NXdata
Fill in auxiliary Information
Creating a NXDL Specification
Application Definition Steps
Step 1: Think! hard about data
Step 2: Map Data into the NeXus Hierarchy
Step 3: Describe this map in a NXDL file
Step 4: Standardize with the NIAC
Full listing of the WONI Application Definition
Using an Application Definition
Processed Data
4. Brief history of the NeXus format
5. NeXus Community
NIAC: The NeXus International Advisory Committee
NeXus Mailing Lists
NeXus Subversion Repositories
Login
Committing Changes
URLs described in this section
NeXus Issue Reporting
A. Installation
Precompiled Binary Installation
Prerequisites
Linux RPM Distribution Kits
Microsoft Windows Installation Kit
Mac OS X Installation Kit
Source Installation
NeXus Source Code Distribution
Cygwin Kits
B. Verification and validation of files
Overview
Definitions of these terms
NeXus data files may use multiple base classes or application definitions
Validation techniques
Validation of NeXus data files
Validation of NeXus Definition Language (NXDL) specification files
Validation of the NXDL rules
Validation of XSLT files
Transformation of NXDL files to Schematron
C. NeXus Utilities
Utilities supplied with NeXus
Data Analysis
HDF Tools
D. Frequently Asked Questions
E. Licenses
FDL: GNU Free Documentation License
LGPL: GNU Lesser Gnu Public License
Index
Volume II: NeXus Reference Documentation
1. NAPI: The NeXus Application Programming Interface
Purpose of API
Core API
C and C++ Interface
Fortran 77 Interface
Fortran 90 Interface
Java Interface
Python Interface
IDL Interface
Utility API
List of F90 Utility Routines
Building Programs
Reporting Bugs in the NeXus API
2. NXDL: The NeXus Definition Language
Introduction
NXDL Elements and Data Types
NXDL element: attribute
NXDL element: definition
NXDL element: dimensions
NXDL element: doc
NXDL element: enumeration
NXDL element: field
NXDL element: group
NXDL element: link
NXDL element: symbols
Common internal data types that define the NXDL language
Data Types allowed in NXDL specifications
Unit Categories allowed in NXDL specifications
Historical notes about the Development of NXDL
3. NeXus classes
Overview of NeXus classes
NeXus Base Classes
NXaperture
NXattenuator
NXbeam
NXbeam_stop
NXbending_magnet
NXcapillary
NXcharacterization
NXcollection
NXcollimator
NXcrystal
NXdata
NXdetector
NXdetector_group
NXdisk_chopper
NXentry
NXenvironment
NXevent_data
NXfermi_chopper
NXfilter
NXflipper
NXgeometry
NXguide
NXinsertion_device
NXinstrument
NXlog
NXmirror
NXmoderator
NXmonitor
NXmonochromator
NXnote
NXobject
NXorientation
NXparameters
NXpolarizer
NXpositioner
NXprocess
NXroot
NXsample
NXsensor
NXshape
NXsource
NXsubentry
NXtranslation
NXuser
NXvelocity_selector
NXxraylens
NeXus Application Classes
NXarchive
NXdirecttof
NXfluo
NXindirecttof
NXiqproc
NXlauetof
NXmonopd
NXrefscan
NXreftof
NXsas
NXsastof
NXscan
NXspe
NXsqom
NXtas
NXtofnpd
NXtofraw
NXtofsingle
NXtomo
NXtomophase
NXtomoproc
NXxas
NXxasproc
NXxbase
NXxeuler
NXxkappa
NXxlaue
NXxlaueplate
NXxnb
NXxrot
NeXus Contributed Classes
NXbeamline
NXelectrostatic_kicker
NXmagnetic_kicker
NXquadrupole_magnet
NXsai_controller
NXseparator
NXsnsevent
NXsnshisto
NXsolenoid_magnet
NXspin_rotator
NXtechnical_data
4. Examples of writing and reading NeXus data files
Code Examples that use the NAPI
Example NeXus programs using NAPI
Code Examples that do not use the NAPI
Example NeXus C programs using native HDF5 commands
Python Examples using h5py
Viewing 2-D Data from LRMECS
A. Licenses
FDL: GNU Free Documentation License
LGPL: GNU Lesser Gnu Public License
Index