Ticket #249 (assigned task)

Opened 20 months ago

Last modified 19 months ago

NXtraverse

Reported by: Pedro.vicente Owned by: Pedro.vicente
Priority: major Milestone:
Component: napi Version: trunk
Keywords: Cc:

Description (last modified by Pedro.vicente) (diff)

NXtraverse, traverses and displays NeXus files (paths, data). Various aspects of NeXus datasets are optionally read and displayed. File traversal is achieved by using a recursive algorithm: NeXus datasets are displayed, NeXus groups are recursively iterated.

Algorithm. File iteration is achieved by recursively calling the following NeXus API functions, starting at the HDF5 root group:

NXgetgroupinfo; returns the number of objects (HDF5 groups and datasets).

Iterate the objects obtained in 1); in each step the following functions are called

NXgetnextentry; returns the object type (dataset or group). A selection is made: If the object is a dataset type, its contents are read. If the object is a group type, the group is opened with the NeXus API function NXopengroup, then the same sequence in 1) to 3) is recursively called, and then the group is closed with NXclosegroup.

Usage. Usage of the tool is

./nxtraverse -f <filename> [-h] [-r] [-a] [-n N]

[-f] traverse file <filename>[-h] print this usage message and exit[-r] do not read data[-a] do not read attributes[-n] print only N number of elements; N defaults to 5, * for all elements

Ouput example

./nxtraverse -f BSS_5663_histo.nxs

prints all objects (datasets, attributes, groups) in the file named “BSS_5663_histo.nxs”. For arrays, the default first 5 elements are printed. Each object is displayed in 1 line. First the object path is displayed, after that, if the object is a dataset, data is displayed after an equal sign “=”. Attributes are distinguished from datasets by printing the symbol “#” after the dataset name they belong to.

/entry /entry/DASlogs /entry/DASlogs/frequency /entry/DASlogs/frequency/average_value=0.013787 /entry/DASlogs/frequency/average_value#units=Hz /entry/DASlogs/frequency/time=0 0.016667 0.033333 0.05 0.066666 ...

Change History

comment:1 Changed 20 months ago by Pedro.vicente

  • Status changed from new to assigned
  • Description modified (diff)

comment:2 Changed 20 months ago by Pedro.vicente

(In [1532]) refs #249 add the NXtraverse tool

comment:3 Changed 19 months ago by Freddie Akeroyd

(In [1568]) Fix for distribution build. Refs #249

comment:4 Changed 19 months ago by Pedro.vicente

(In [1573]) refs #249 removed unused code

Note: See TracTickets for help on using tickets.