source: canSAS2012/docs/source/notation.rst @ 282

Last change on this file since 282 was 282, checked in by prjemian, 9 years ago

Building out the docs for the specification of the standard. Work still in progress.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 7.0 KB

Notation used to Represent the canSAS2012 data format

The basic components of storage are:

  • groups (or folders)
  • fields (includes strings, scalers, and arrays, and HDF5 "datasets")
  • attributes
  • links

Examples

More :ref:`examples <examples>` are provided for representations of specific datasets.

??
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0
        @I_axes="Q"
        I: float[100]
        Q: float[100]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1
        @I_axes="Q,Q"
        I: float[100, 512]
        Qx: float[100, 512]
        Qy: float[100, 512]
        Qx: float[100, 512]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1
        @I_axes="Q,Q"
        I: float[300, 300]
          @uncertainty=Idev
        Q: float[300, 300]
        Idev: float[300, 300]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @name="sasdata"
        @Q_indices=0,1
        @I_axes="Q,Q"
        I: float[100, 512]
        Qx: float[100, 512]
        Qy: float[100, 512]
        Qz: float[100, 512]
      SASdata
        @name="wasdata"
        @Q_indices=0,1
        @I_axes="Q,Q"
        I: float[256, 256]
        Qx: float[256, 256]
        Qy: float[256, 256]
        Qz: float[256, 256]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1
        @I_axes="Q,Q"
        @Mask_indices=0,1
        I: float[100, 512]
        Qx: float[100, 512]
        Qy: float[100, 512]
        Qz: float[100, 512]
        Mask: int[100, 512]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0
        @I_axes="Q"
        I: float[100*512]
        Qx: float[100*512]
        Qy: float[100*512]
        Qz: float[100*512]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @name="sans"
        @Q_indices=0
        @I_axes="Q"
        I: float[100*512]
        Qx: float[100*512]
        Qy: float[100*512]
        Qz: float[100*512]
      SASdata
        @name="saxs"
        @Q_indices=0
        @I_axes="Q"
        I: float[256*256]
        Qx: float[256*256]
        Qy: float[256*256]
        Qz: float[256*256]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0
        @I_axes="Q"
        I: float[100*512  + 2000 + 256*256 - nDiscardedPixels]
        Qx: float[100*512 + 2000 + 256*256 - nDiscardedPixels]
        Qy: float[100*512 + 2000 + 256*256 - nDiscardedPixels]
        Qz: float[100*512 + 2000 + 256*256 - nDiscardedPixels]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=1
        @I_axes="Time,Q"
        I: float[nTime,100]
        Q: float[100]
        Time: float[nTime]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1
        @I_axes="Time,Q"
        I: float[nTime,100]
        Q: float[nTime,100]
        Time: float[nTime]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1
        @I_axes="Time,Q"
        I: float[nTime,100]
          @uncertainty=Idev
        Idev: float[nTime,100]
        Q: float[nTime,100]
        Time: float[nTime]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=1
        @I_axes="Time,Q"
        I: float[nTime,100*512]
        Qx: float[100*512]
        Qy: float[100*512]
        Qz: float[100*512]
        Time: float[nTime]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1
        @I_axes="Time,Q"
        I: float[nTime,100*512]
        Qx: float[nTime,100*512]
        Qy: float[nTime,100*512]
        Qz: float[nTime,100*512]
        Time: float[nTime]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1,2
        @I_axes="Time,Q,Q"
        @Mask_indices=1,2
        I: float[nTime,100,512]
        Qx: float[nTime,100,512]
        Qy: float[nTime,100,512]
        Qz: float[nTime,100,512]
        Time: float[nTime]
        Mask: int[100,512]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0,1,2,3
        @I_axes="Time,Temperature,Pressure,Q"
        I: float[nTime,nTemperature,nPressure,100*512]
        Qx: float[nTime,nTemperature,nPressure,100*512]
        Qy: float[nTime,nTemperature,nPressure,100*512]
        Qz: float[nTime,nTemperature,nPressure,100*512]
        Time: float[nTime]
        T: float[nTemperature]
        P: float[nPressure]
?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=1,3,4
        @I_axes="Temperature,Time,Pressure,Q,Q"
        I: float[nTemperature,nTime,nPressure,100,512]
        Qx: float[nTime,100,512]
        Qy: float[nTime,100,512]
        Qz: float[nTime,100,512]
        Time: float[nTime]
        Temperature: float[nTemperature]
        Pressure: float[nPressure]

It is possible to represent the components that contribute to the uncertainty by use of a subgroup. Add a @components attribute to the principal uncertainty, naming the subgroup that contains the contributing datasets.

As with all uncertainties, each component should have the same shape (rank and dimensions) as its parent dataset.

Note that a @basis attribute indicates how this uncertainty was determined. The values are expected to be a short list, as yet unspecified.

?
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0
        @I_axes=Q
        Q : float[nI]
        I : float[nI]
           @uncertainty=Idev
        Idev : float[nI]
           @components=I_uncertainties
        I_uncertainties:
           electronic : float[nI]
              @basis="Johnson noise"
           counting_statistics: float[nI]
              @basis="shot noise"
           secondary_standard: float[nI]
              @basis="esd"

Note

This is just a proposition. It is based on the assumption that some analysis method might actually know how to handle this case.

If more than one uncertainty contributes to the intensity (and the method described above in :ref:`representing uncertainty components` is not appropriate), it is proposed to name more than one uncertainty dataset in the @uncertainty attribute. The first member in this list would be the principal uncertainty. The @basis attribute can be used to further describe each uncertainty. One example be:

??
.. code-block:: text
  :linenos:
  SASroot
    SASentry
      SASdata
        @Q_indices=0
        @I_axes=Q
        Q : float[nI]
        I : float[nI]
          @uncertainty=Idev,Ierr
        Idev : float[nI]
          @basis="esd"
        Ierr : float[nI]
          @basis="absolute intensity calibration"
Note: See TracBrowser for help on using the repository browser.