[NeXus-tech] [Fwd: Re: dimensions]
Pete Jemian
prjemian at gmail.com
Thu Feb 19 19:43:37 GMT 2009
Regarding the definition of dimensions, so far, so good.
Now, here is part of (revised) NXbeam.nxdl.xml:
---------------------------------% clip here %---------------------------------
<field name="final_wavelength_spread" type="NX_FLOAT" units="NX_LENGTH">
<doc>Wavelength spread FWHM of beam leaving this component</doc>
<dimensions size="[:]" />
</field>
<field name="final_beam_divergence" type="NX_FLOAT" units="NX_ANGLE">
<doc>Divergence FWHM of beam leaving this component</doc>
<dimensions size="2"><!-- [2,:] --></dimensions>
</field>
<field name="flux" type="NX_FLOAT" units="NX_FLUX">
<doc>flux incident on beam plane area</doc>
<dimensions size="i" />
</field>
---------------------------------% clip here %---------------------------------
How do we handle this? (So far, it is valid by the changes in NXDL rules.)
Also, we need better documentation strings than given below.
(Here is just the revised part of nxdl.xsd):
---------------------------------% clip here %---------------------------------
<xs:complexType name="dimsType">
<!--
Here is a model:
<field name="data">
<dimensions size="3"/>
...
</field><field name="time-of-flight">
<dimensions size="1">
<dim index="1" ref="data" refindex="3" incr="1"/>
</dimensions>
...
</field>
In old terms this would make data[i,j,k] and time-of-flight[k+1].
We need to get to the stage where people
don't need to read a manual to understand an existing NXDL.
-->
<xs:annotation>
<xs:documentation>dimensions of a data element in a NeXus
file</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dim" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="index" type="nx:NX_CHAR">
<xs:annotation>
<xs:documentation>Number indicating which subscript is being referenced,
ranging from 1 up to RANK (rank of the data structure). For example,
given an array A[i,j,k], index="1" would refer to the "i" subscript.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ref" type="nx:NX_CHAR">
<xs:annotation>
<xs:documentation>Name of the data structure being referenced
indirectly.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="refindex" type="nx:NX_CHAR">
<xs:annotation>
<xs:documentation>Index within the data structure being
referenced indirectly.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="incr" type="nx:NX_CHAR">
<xs:annotation>
<xs:documentation>What is this?</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="size" type="nx:NX_CHAR">
<xs:annotation>
<xs:documentation>Rank (number of dimensions) of the data structure.
For example: a[5] has size="1" while b[8,5,6,4] has size="4".
See http://en.wikipedia.org/wiki/Rank_(computer_programming)
for more details.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
---------------------------------% clip here %---------------------------------
Pete
--
----------------------------------------------------------
Pete R. Jemian, Ph.D. <jemian at anl.gov>
Beam line Controls and Data Acquisition, Group Leader
Advanced Photon Source, Argonne National Laboratory
Argonne, IL 60439 630 - 252 - 3189
-----------------------------------------------------------
Education is the one thing for which people
are willing to pay yet not receive.
-----------------------------------------------------------
More information about the NeXus-tech
mailing list