Discussion List Archives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Base coordinate set for CBF, and Minimal headers.

There is a rought draft of a revised dictionary for items which I believe
reflect Bob's suggestions at:

http://www.bernstein-plus-sons.com/software/CBF/doc/xcbfext98.html

Comments, suggestions and criticisms would be appreciated.

Here are some of the comments and examples relevant to the discussion:

save_AXIS
    _category.description
;
     Data items in the AXIS category record the information required
     to describe the various goniometer, detector, source and other
     axes needed to specify a data collection.  The location of each
     axis is specified by two vectors: the axis itself, given as a unit
     vector, and an offset to the base of the unit vector.  These vectors
     are referenced to a right-handed laboratory coordinate system with
     its origin in the sample:

                             | Y (to complete right-handed system)
                             |
                             |
                             |
                             |
                             |
                             |________________X
                            /       principal goniometer axis
                           /
                          /
                         /
                        /
                       /Z (to source)




     Axis 1 (X): The X-axis is aligned to the mechanical axis pointing from
     the sample along the  principal axis of the goniometer.

     Axis 2 (Y): The Y-axis completes an orthogonal right-handed system
     defined by the X-axis and the Z-axis (see below).

     Axis 3 (Z): The Z-axis is derived from the source axis which goes from
     the sample to the source.  The Z-axis is the component of the source axis
     in the direction of the source  orthogonal to the X-axis in the plane
     defined by the X-axis and the source axis.

     These axes are based on the goniometer, not on the orientation of the
     detector, gravity, etc.  The vectors necessary to specify all other
     axes are given by sets of three components in the order (X, Y, Z).
     If the axis involved is a rotation axis, it is right handed, i.e. as
     one views the object to be rotated from the origin (the tail) of the
     unit vector, the rotation is clockwise.  If a translation axis is
     specified, the direction of the unit vector specifies the sense of
     positive translation.

     For simplicity, all rotations are given in degrees and all translation
     are given in mm.

     Axes may be dependent on one another.  The X-axis is the only goniometer
     axis the direction of which is strictly connected to the hardware.  All
     other axes are specified by the positions they would assume when the
     axes upon which they depend are at their zero points.

     When specifying detector axes, the axis is given to the beam center.
     The location of the beam center on the detector should be given in the
     DIFFRN_DETECTOR category in distortion-corrected mm from the (0,0) corner
     of the detector.
;
    _category.id                   axis
    _category.mandatory_code       no
     loop_
    _category_key.name          '_axis.id'
                                '_axis.equipment'
     loop_
    _category_group.id           'inclusive_group'
                                 'axis_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _catgeory-examples.case
;
        Example 1:

        This example show the axis specification of the axes of a kappa
        geometry goniometer (See "X-Ray Structure Deptermination, A Practical
        Guide", 2nd ed. by  G. H. Stout, L. H. Jensen, Wiley Interscience,
        1989, 453 pp, p 134.).

        There are three axies specified, and no offsets.  The outermost axis,
        omega, is pointed along the X-axis.  The next innermost axis, kappa,
        is at a 50 dgeree angle to the X-axis, pointed away from the source.
        The innermost axis, phi, aligns with the X-axis when omega and
        phi are at their zero-points.  If T-omega, T-kappa and T-phi
        are the ttransormation matrixes derived from the axis settings,
        the complete transformation would be:
            x' = (T-omega) (T-kappa) (T-phi) x
;
;
         loop_
        _axis.id
        _axis.type
        _axis.equipment
        _axis.depends_on
        _axis.vector[1] _axis.vector[2] _axis.vector[3]
        omega rotation goniometer     .    1        0        0
        kappa rotation goniometer omega    -.64279  0       -.76604
        phi   rotation goniometer kappa    1        0        0
;

;
        Example 2:

        This example show the axis specification of the axes of a
        detector, source and gravity.  We have juggled the order as a
        reminder that the ordering of presentation of tokens is not
        significant.  We have taken the center of rotation of the detector
        to be 68 millimeters in the direction away from the source.
;
;
        loop_
        _axis.id
        _axis.type
        _axis.equipment
        _axis.depends_on
        _axis.vector[1] _axis.vector[2] _axis.vector[3]
        _axis.offset[1] _axis.offset[2] _axis.offset[3]
        source       .        source     .       0     0     1   . . .
        gravity      .        gravity    .       0    -1     0   . . .
        tranz     translation detector rotz      0     0     1   0 0 -68
        twotheta  rotation    detector   .       1     0     0   . . .
        roty      rotation    detector twotheta  0     1     0   0 0 -68
        rotz      rotation    detector roty      0     0     1   0 0 -68
;
        save_

save_DIFFRN_SCAN
    _category.description
;
     Data items in the DIFFRN_SCAN category secribe the parameters of one
     or more scans, relating axis positions to frames

;
    _category.id                   diffrn_scan
    _category.mandatory_code       no
    _category_key.name             '_diffrn_scan.id'
     loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
     loop_
    _category_examples.detail
    _category_examples.case
;

    Example1:

   This example is derived from a suggestion by R. M. Sweet

   The vector of each axis is not given here, because it is provided in
   the proposed AXIS category.  By making _diffrn_scan.id and _diffrn_scan.axis
   keys of this category, an arbitrary number of scanning and fixed axes
   can be specified for a scan.  We have specified three rotation axes
   and one translation axis at non-zero values,, with one axis stepping.
   There is no reason why more axes could not have been specified to step.
   We have range information, but note that it is redundant from the
   number of frames and the increment, so we could drop the token.

   We have specified both the sweep data and the data for a single frame

;
;
      _diffrn_scan.id                   1
      _diffrn_scan.integration_time    3.0
      _diffrn_scan.frame_id_start      mad_L2_000
      _diffrn_scan.frame_id_end        mad_L2_200
      _diffrn_scan.frames              201

       loop_
      _diffrn_scan_axis.scan_id
      _diffrn_scan_axis.axis_id
      _diffrn_scan_axis.angle_start
      _diffrn_scan_axis.angle_range
      _diffrn_scan_axis.angle_increment
      _diffrn_scan_axis.displacement_start
      _diffrn_scan_axis.displacement_range
      _diffrn_scan_axis.displacement_increment

       1 omega 200.0 20.0 0.1 . . .
       1 kappa -40.0  0.0 0.0 . . .
       1 phi   127.5  0.0 0.0 . . .
       1 tranz  . . .   2.3 0.0 0.0

      _diffrn_scan_frame.scan_id                   1
      _diffrn_scan_frame.integration_time    3.0
      _diffrn_scan_frame.frame_id            mad_L2_018
      _diffrn_scan_frame.frame_number        18

      loop_
      _diffrn_scan_frame_axis.frame_id
      _diffrn_scan_frame_axis.axis_id
      _diffrn_scan_frame_axis.angle
      _diffrn_scan_frame_axis.displacement

       mad_L2_018 omega 201.8  .
       mad_L2_018 kappa -40.0  .
       mad_L2_018 phi   127.5  .
       mad_L2_018 tranz  .    2.3

;
       save_

  -- Herbert


=====================================================
****                BERNSTEIN + SONS
*   *       INFORMATION SYSTEMS CONSULTANTS
****     P.O. BOX 177, BELLPORT, NY 11713-0177
*   * ***
**** *            Herbert J. Bernstein
  *   ***     yaya@bernstein-plus-sons.com
 ***     *
  *   *** 1-516-286-1339    FAX: 1-516-286-1999
=====================================================



Reply to: [list | sender only]
International Union of Crystallography

Scientific Union Member of the International Science Council (admitted 1947). Member of CODATA, the ISC Committee on Data. Partner with UNESCO, the United Nations Educational, Scientific and Cultural Organization in the International Year of Crystallography 2014.

International Science Council Scientific Freedom Policy

The IUCr observes the basic policy of non-discrimination and affirms the right and freedom of scientists to associate in international scientific activity without regard to such factors as ethnic origin, religion, citizenship, language, political stance, gender, sex or age, in accordance with the Statutes of the International Council for Science.