[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Reply to: [list | sender only]
Re: Base coordinate set for CBF, and Minimal headers.
- To: imgcif-l@bnl.gov
- Subject: Re: Base coordinate set for CBF, and Minimal headers.
- From: "Herbert J. Bernstein" <yaya@bernstein-plus-sons.com>
- Date: Sat, 2 Jan 1999 17:42:13 -0500
- In-Reply-To: <Pine.SGI.3.95.981231124558.9353A-100000@indigo.msc.com>
- References: <l03130300b2b1621ccde9@[12.79.160.17]>
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]
- References:
- Re: Base coordinate set for CBF, and Minimal headers. (Herbert J. Bernstein)
- Re: Base coordinate set for CBF, and Minimal headers. (J.W. Pflugrath)
- Prev by Date: What The Small Mol. Folks Do.
- Next by Date: cif grammar
- Prev by thread: Re: Base coordinate set for CBF, and Minimal headers.
- Next by thread: CBFLIB 0.3.1.1-beta
- Index(es):