Changeset 1230


Ignore:
Timestamp:
Feb 26, 2013 12:27:06 AM (12 years ago)
Author:
jemian
Message:

tighten up the example illustrating the NeXus? proposition

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified mda2idd_report/src/mda2nx.py

    r1229 r1230  
    4444        nxh5_lib.makeDataset(nxentry, 'original_filename', data=data[0]['filename'])
    4545       
    46         nxdata = nxh5_lib.makeGroup(nxentry, 'data', "NXdata", signal='', axes='')
     46        nxdata = nxh5_lib.makeGroup(nxentry, 'data', "NXdata")
    4747       
    4848        # TODO: prepare to slice arrays due to difference in curr_pt and npts (dimensions acquired v. planned)
    4949       
     50        signal = []
     51        axes = []
    5052        if rank > 0:
    5153            nxh5_lib.makeDataset(nxentry, 'date_time', data=data[1].time)
     
    6870                                            EPICS_PV=item.name)
    6971                    if default_pos is None:
    70                         default_pos = item
    71                         dataset_name = 'p%d' % (order+1)
    72                         nxh5_lib.makeLink(nxdata, ds, dataset_name)
    7372                        # Massively big assumption here that the first positioner found
    7473                        # for each dimension will be used as one of the axes to plot
    7574                        # the first detector found in the highest dimension
    7675                        # Hopefully, this mostly succeeds or can be be changed later.
    77                         axes = nxdata.attrs['axes']
    78                         if len(axes) > 0:
    79                             axes += ','
    80                         nxdata.attrs['axes'] = axes+dataset_name
     76                        default_pos = item
     77                        dataset_name = 'p%d' % (order+1)
     78                        nxh5_lib.makeLink(nxdata, ds, dataset_name)
     79                        axes.append(dataset_name)
    8180                default_det = None
    8281                for item in dim.d:
     
    9291                        dataset_name = 'd%d' % (order+1)
    9392                        nxh5_lib.makeLink(nxdata, ds, dataset_name)
    94                         nxdata.attrs['signal'] = dataset_name
     93                        signal = [dataset_name]
    9594                for item in dim.t:
    9695                    nxh5_lib.makeDataset(nxcoll,
     
    10099                                            number=item.number,
    101100                                            EPICS_PV=item.name)
     101        nxdata.attrs['signal'] = signal
     102        nxdata.attrs[signal[0] + '_indices'] = axes
    102103       
    103104        pvs = epics_pvs(data)
     
    118119def makeSafeHdf5Name(proposed):
    119120    '''return a name that is safe to use as a NeXus HDF5 object'''
    120     # Note that this a safe NeXus object name starts with a letter (upper or lower case)
     121    # Note that a safe NeXus object name starts with a letter (upper or lower case)
    121122    # or "_" (underscore), then letters, numbers, and "_" and is limited to
    122123    # no more than 63 characters (imposed by the HDF5 rules for names).
     
    179180                                    "NXdata",
    180181                                    signal="image",
    181                                     axes="x,y",
    182                                     x_indices="1",
    183                                     y_indices="1,2",
     182                                    axes=['x', 'y'],
     183                                    x_indices=[1],
     184                                    y_indices=[1,2],
    184185                                    )
    185186        if default_data is None:
Note: See TracChangeset for help on using the changeset viewer.