DRAFT DICTIONARY

CBF/imgCIF Extensions Dictionary

Draft version 1.5 for comment


[IUCr Home Page] [CIF Home Page] [CBF/imgCIF] [CBFlib]


Index

Image dictionary (imgCIF) version 1.5.4

Category DIFFRN_SCAN

Name:
'diffrn_scan'

Description:

    Data items in the DIFFRN_SCAN category describe the parameters of one
     or more scans, relating axis positions to frames.


Examples:

Example 1 - derived from a suggestion by R. M. Sweet. The vector of each axis is not given here, because it is provided in the AXIS category. By making _diffrn_scan_axis.scan_id and _diffrn_scan_axis.axis_id keys of the DIFFRN_SCAN_AXIS category, an arbitrary number of scanning and fixed axes can be specified for a scan. In this example, three rotation axes and one translation axis at nonzero values are specified, with one axis stepping. There is no reason why more axes could not have been specified to step. Range information has been specified, but note that it can be calculated from the number of frames and the increment, so the data item _diffrn_scan_axis.angle_range could be dropped. Both the sweep data and the data for a single frame are specified. Note that the information on how the axes are stepped is given twice, once in terms of the overall averages in the value of _diffrn_scan.integration_time and the values for DIFFRN_SCAN_AXIS, and precisely for the given frame in the value for _diffrn_scan_frame.integration_time and the values for DIFFRN_SCAN_FRAME_AXIS. If dose-related adjustments are made to scan times and nonlinear stepping is done, these values may differ. Therefore, in interpreting the data for a particular frame it is important to use the frame-specific data.
 
      _diffrn_scan.id                   1
      _diffrn_scan.date_start         '2001-11-18T03:26:42'
      _diffrn_scan.date_end           '2001-11-18T03:36:45'
      _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.date               '2001-11-18T03:27:33'
      _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.angle_increment
      _diffrn_scan_frame_axis.displacement
      _diffrn_scan_frame_axis.displacement_increment

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



Example 2 - a more extensive example (R. M. Sweet, P. J. Ellis & H. J. Bernstein). A detector is placed 240 mm along the Z axis from the goniometer. This leads to a choice: either the axes of the detector are defined at the origin, and then a Z setting of -240 is entered, or the axes are defined with the necessary Z offset. In this case, the setting is used and the offset is left as zero. This axis is called DETECTOR_Z. The axis for positioning the detector in the Y direction depends on the detector Z axis. This axis is called DETECTOR_Y. The axis for positioning the detector in the X direction depends on the detector Y axis (and therefore on the detector Z axis). This axis is called DETECTOR_X. This detector may be rotated around the Y axis. This rotation axis depends on the three translation axes. It is called DETECTOR_PITCH. A coordinate system is defined on the face of the detector in terms of 2300 0.150 mm pixels in each direction. The ELEMENT_X axis is used to index the first array index of the data array and the ELEMENT_Y axis is used to index the second array index. Because the pixels are 0.150mm X 0.150mm, the centre of the first pixel is at (0.075, 0.075) in this coordinate system.
     ###CBF: VERSION 1.1

     data_image_1

     # category DIFFRN
     _diffrn.id P6MB
     _diffrn.crystal_id P6MB_CRYSTAL7

     # category DIFFRN_SOURCE
     loop_
     _diffrn_source.diffrn_id
     _diffrn_source.source
     _diffrn_source.type
      P6MB synchrotron 'SSRL beamline 9-1'

     # category DIFFRN_RADIATION
     loop_
     _diffrn_radiation.diffrn_id
     _diffrn_radiation.wavelength_id
     _diffrn_radiation.monochromator
     _diffrn_radiation.polarizn_source_ratio
     _diffrn_radiation.polarizn_source_norm
     _diffrn_radiation.div_x_source
     _diffrn_radiation.div_y_source
     _diffrn_radiation.div_x_y_source
      P6MB WAVELENGTH1 'Si 111' 0.8 0.0 0.08
     0.01 0.00

     # category DIFFRN_RADIATION_WAVELENGTH
     loop_
     _diffrn_radiation_wavelength.id
     _diffrn_radiation_wavelength.wavelength
     _diffrn_radiation_wavelength.wt
      WAVELENGTH1 0.98 1.0

     # category DIFFRN_DETECTOR
     loop_
     _diffrn_detector.diffrn_id
     _diffrn_detector.id
     _diffrn_detector.type
     _diffrn_detector.number_of_axes
      P6MB MAR345-SN26 'MAR 345' 4

     # category DIFFRN_DETECTOR_AXIS
     loop_
     _diffrn_detector_axis.detector_id
     _diffrn_detector_axis.axis_id
      MAR345-SN26 DETECTOR_X
      MAR345-SN26 DETECTOR_Y
      MAR345-SN26 DETECTOR_Z
      MAR345-SN26 DETECTOR_PITCH

     # category DIFFRN_DETECTOR_ELEMENT
     loop_
     _diffrn_detector_element.id
     _diffrn_detector_element.detector_id
      ELEMENT1 MAR345-SN26

     # category DIFFRN_DATA_FRAME
     loop_
     _diffrn_data_frame.id
     _diffrn_data_frame.detector_element_id
     _diffrn_data_frame.array_id
     _diffrn_data_frame.binary_id
      FRAME1 ELEMENT1 ARRAY1 1

     # category DIFFRN_MEASUREMENT
     loop_
     _diffrn_measurement.diffrn_id
     _diffrn_measurement.id
     _diffrn_measurement.number_of_axes
     _diffrn_measurement.method
      P6MB GONIOMETER 3 rotation

     # category DIFFRN_MEASUREMENT_AXIS
     loop_
     _diffrn_measurement_axis.measurement_id
     _diffrn_measurement_axis.axis_id
      GONIOMETER GONIOMETER_PHI
      GONIOMETER GONIOMETER_KAPPA
      GONIOMETER GONIOMETER_OMEGA

     # category DIFFRN_SCAN
     loop_
     _diffrn_scan.id
     _diffrn_scan.frame_id_start
     _diffrn_scan.frame_id_end
     _diffrn_scan.frames
      SCAN1 FRAME1 FRAME1 1

     # category DIFFRN_SCAN_AXIS
     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
      SCAN1 GONIOMETER_OMEGA 12.0 1.0 1.0 0.0 0.0 0.0
      SCAN1 GONIOMETER_KAPPA 23.3 0.0 0.0 0.0 0.0 0.0
      SCAN1 GONIOMETER_PHI -165.8 0.0 0.0 0.0 0.0 0.0
      SCAN1 DETECTOR_Z 0.0 0.0 0.0 -240.0 0.0 0.0
      SCAN1 DETECTOR_Y 0.0 0.0 0.0 0.6 0.0 0.0
      SCAN1 DETECTOR_X 0.0 0.0 0.0 -0.5 0.0 0.0
      SCAN1 DETECTOR_PITCH 0.0 0.0 0.0 0.0 0.0 0.0

     # category DIFFRN_SCAN_FRAME
     loop_
     _diffrn_scan_frame.frame_id
     _diffrn_scan_frame.frame_number
     _diffrn_scan_frame.integration_time
     _diffrn_scan_frame.scan_id
     _diffrn_scan_frame.date
      FRAME1 1 20.0 SCAN1 1997-12-04T10:23:48

     # category DIFFRN_SCAN_FRAME_AXIS
     loop_
     _diffrn_scan_frame_axis.frame_id
     _diffrn_scan_frame_axis.axis_id
     _diffrn_scan_frame_axis.angle
     _diffrn_scan_frame_axis.displacement
      FRAME1 GONIOMETER_OMEGA 12.0 0.0
      FRAME1 GONIOMETER_KAPPA 23.3 0.0
      FRAME1 GONIOMETER_PHI -165.8 0.0
      FRAME1 DETECTOR_Z 0.0 -240.0
      FRAME1 DETECTOR_Y 0.0 0.6
      FRAME1 DETECTOR_X 0.0 -0.5
      FRAME1 DETECTOR_PITCH 0.0 0.0

     # category AXIS
     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]
      GONIOMETER_OMEGA rotation goniometer . 1 0 0 . . .
      GONIOMETER_KAPPA rotation goniometer GONIOMETER_OMEGA 0.64279
      0 0.76604 . . .
      GONIOMETER_PHI   rotation goniometer GONIOMETER_KAPPA 1 0 0
     . . .
      SOURCE           general source . 0 0 1 . . .
      GRAVITY          general gravity . 0 -1 0 . . .
      DETECTOR_Z       translation detector . 0 0 1 0 0 0
      DETECTOR_Y       translation detector DETECTOR_Z 0 1 0 0 0 0
      DETECTOR_X       translation detector DETECTOR_Y 1 0 0 0 0 0
      DETECTOR_PITCH   rotation    detector DETECTOR_X 0 1 0 0 0 0
      ELEMENT_X        translation detector DETECTOR_PITCH
     1 0 0 172.43 -172.43 0
      ELEMENT_Y        translation detector ELEMENT_X
     0 1 0 0 0 0

     # category ARRAY_STRUCTURE_LIST
     loop_
     _array_structure_list.array_id
     _array_structure_list.index
     _array_structure_list.dimension
     _array_structure_list.precedence
     _array_structure_list.direction
     _array_structure_list.axis_set_id
      ARRAY1 1 2300 1 increasing ELEMENT_X
      ARRAY1 2 2300 2 increasing ELEMENT_Y

     # category ARRAY_STRUCTURE_LIST_AXIS
     loop_
     _array_structure_list_axis.axis_set_id
     _array_structure_list_axis.axis_id
     _array_structure_list_axis.displacement
     _array_structure_list_axis.displacement_increment
      ELEMENT_X ELEMENT_X 0.075 0.150
      ELEMENT_Y ELEMENT_Y 0.075 0.150

     # category ARRAY_ELEMENT_SIZE
     loop_
     _array_element_size.array_id
     _array_element_size.index
     _array_element_size.size
      ARRAY1 1 150e-6
      ARRAY1 2 150e-6

     # category ARRAY_INTENSITIES
     loop_
     _array_intensities.array_id
     _array_intensities.binary_id
     _array_intensities.linearity
     _array_intensities.gain
     _array_intensities.gain_esd
     _array_intensities.overload
     _array_intensities.undefined_value
      ARRAY1 1 linear 1.15 0.2 240000 0

      # category ARRAY_STRUCTURE
      loop_
      _array_structure.id
      _array_structure.encoding_type
      _array_structure.compression_type
      _array_structure.byte_order
      ARRAY1 "signed 32-bit integer" packed little_endian

     # category ARRAY_DATA
     loop_
     _array_data.array_id
     _array_data.binary_id
     _array_data.data
      ARRAY1 1
     ;
     --CIF-BINARY-FORMAT-SECTION--
     Content-Type: application/octet-stream;
         conversions="X-CBF_PACKED"
     Content-Transfer-Encoding: BASE64
     X-Binary-Size: 3801324
     X-Binary-ID: 1
     X-Binary-Element-Type: "signed 32-bit integer"
     Content-MD5: 07lZFvF+aOcW85IN7usl8A==

     AABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZBQSr1sKNBOeOe9HITdMdDUnbq7bg
     ...
     8REo6TtBrxJ1vKqAvx9YDMD6J18Qg83OMr/tgssjMIJMXATDsZobL90AEXc4KigE

     --CIF-BINARY-FORMAT-SECTION----
     ;



Example 3 - Example 2 revised for a spiral scan (R. M. Sweet, P. J. Ellis & H. J. Bernstein). A detector is placed 240 mm along the Z axis from the goniometer, as in Example 2 above, but in this example the image plate is scanned in a spiral pattern from the outside edge in. The axis for positioning the detector in the Y direction depends on the detector Z axis. This axis is called DETECTOR_Y. The axis for positioning the detector in the X direction depends on the detector Y axis (and therefore on the detector Z axis). This axis is called DETECTOR_X. This detector may be rotated around the Y axis. This rotation axis depends on the three translation axes. It is called DETECTOR_PITCH. A coordinate system is defined on the face of the detector in terms of a coupled rotation axis and radial scan axis to form a spiral scan. The rotation axis is called ELEMENT_ROT and the radial axis is called ELEMENT_RAD. A 150 micrometre radial pitch and a 75 micrometre 'constant velocity' angular pitch are assumed. Indexing is carried out first on the rotation axis and the radial axis is made to be dependent on it. The two axes are coupled to form an axis set ELEMENT_SPIRAL.
     ###CBF: VERSION 1.1

     data_image_1

     # category DIFFRN
     _diffrn.id P6MB
     _diffrn.crystal_id P6MB_CRYSTAL7

     # category DIFFRN_SOURCE
     loop_
     _diffrn_source.diffrn_id
     _diffrn_source.source
     _diffrn_source.type
      P6MB synchrotron 'SSRL beamline 9-1'

     # category DIFFRN_RADIATION
          loop_
     _diffrn_radiation.diffrn_id
     _diffrn_radiation.wavelength_id
     _diffrn_radiation.monochromator
     _diffrn_radiation.polarizn_source_ratio
     _diffrn_radiation.polarizn_source_norm
     _diffrn_radiation.div_x_source
     _diffrn_radiation.div_y_source
     _diffrn_radiation.div_x_y_source
      P6MB WAVELENGTH1 'Si 111' 0.8 0.0 0.08
     0.01 0.00

     # category DIFFRN_RADIATION_WAVELENGTH
     loop_
     _diffrn_radiation_wavelength.id
     _diffrn_radiation_wavelength.wavelength
     _diffrn_radiation_wavelength.wt
      WAVELENGTH1 0.98 1.0

     # category DIFFRN_DETECTOR
     loop_
     _diffrn_detector.diffrn_id
     _diffrn_detector.id
     _diffrn_detector.type
     _diffrn_detector.number_of_axes
      P6MB MAR345-SN26 'MAR 345' 4

     # category DIFFRN_DETECTOR_AXIS
     loop_
     _diffrn_detector_axis.detector_id
     _diffrn_detector_axis.axis_id
      MAR345-SN26 DETECTOR_X
      MAR345-SN26 DETECTOR_Y
      MAR345-SN26 DETECTOR_Z
      MAR345-SN26 DETECTOR_PITCH

     # category DIFFRN_DETECTOR_ELEMENT
     loop_
     _diffrn_detector_element.id
     _diffrn_detector_element.detector_id
      ELEMENT1 MAR345-SN26

     # category DIFFRN_DATA_FRAME
     loop_
     _diffrn_data_frame.id
     _diffrn_data_frame.detector_element_id
     _diffrn_data_frame.array_id
     _diffrn_data_frame.binary_id
      FRAME1 ELEMENT1 ARRAY1 1

     # category DIFFRN_MEASUREMENT
     loop_
     _diffrn_measurement.diffrn_id
     _diffrn_measurement.id
     _diffrn_measurement.number_of_axes
     _diffrn_measurement.method
      P6MB GONIOMETER 3 rotation

     # category DIFFRN_MEASUREMENT_AXIS
     loop_
     _diffrn_measurement_axis.measurement_id
     _diffrn_measurement_axis.axis_id
      GONIOMETER GONIOMETER_PHI
      GONIOMETER GONIOMETER_KAPPA
      GONIOMETER GONIOMETER_OMEGA

     # category DIFFRN_SCAN
     loop_
     _diffrn_scan.id
     _diffrn_scan.frame_id_start
     _diffrn_scan.frame_id_end
     _diffrn_scan.frames
      SCAN1 FRAME1 FRAME1 1

     # category DIFFRN_SCAN_AXIS
     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
      SCAN1 GONIOMETER_OMEGA 12.0 1.0 1.0 0.0 0.0 0.0
      SCAN1 GONIOMETER_KAPPA 23.3 0.0 0.0 0.0 0.0 0.0
      SCAN1 GONIOMETER_PHI -165.8 0.0 0.0 0.0 0.0 0.0
      SCAN1 DETECTOR_Z 0.0 0.0 0.0 -240.0 0.0 0.0
      SCAN1 DETECTOR_Y 0.0 0.0 0.0 0.6 0.0 0.0
      SCAN1 DETECTOR_X 0.0 0.0 0.0 -0.5 0.0 0.0
      SCAN1 DETECTOR_PITCH 0.0 0.0 0.0 0.0 0.0 0.0

     # category DIFFRN_SCAN_FRAME
     loop_
     _diffrn_scan_frame.frame_id
     _diffrn_scan_frame.frame_number
     _diffrn_scan_frame.integration_time
     _diffrn_scan_frame.scan_id
     _diffrn_scan_frame.date
      FRAME1 1 20.0 SCAN1 1997-12-04T10:23:48

     # category DIFFRN_SCAN_FRAME_AXIS
     loop_
     _diffrn_scan_frame_axis.frame_id
     _diffrn_scan_frame_axis.axis_id
     _diffrn_scan_frame_axis.angle
     _diffrn_scan_frame_axis.displacement
      FRAME1 GONIOMETER_OMEGA 12.0 0.0
      FRAME1 GONIOMETER_KAPPA 23.3 0.0
      FRAME1 GONIOMETER_PHI -165.8 0.0
      FRAME1 DETECTOR_Z 0.0 -240.0
      FRAME1 DETECTOR_Y 0.0 0.6
      FRAME1 DETECTOR_X 0.0 -0.5
      FRAME1 DETECTOR_PITCH 0.0 0.0

     # category AXIS
     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]
      GONIOMETER_OMEGA rotation goniometer . 1 0 0 . . .
      GONIOMETER_KAPPA rotation goniometer GONIOMETER_OMEGA 0.64279
      0 0.76604 . . .
      GONIOMETER_PHI   rotation goniometer GONIOMETER_KAPPA 1 0 0
     . . .
      SOURCE           general source . 0 0 1 . . .
      GRAVITY          general gravity . 0 -1 0 . . .
      DETECTOR_Z       translation detector . 0 0 1 0 0 0
      DETECTOR_Y       translation detector DETECTOR_Z 0 1 0 0 0 0
      DETECTOR_X       translation detector DETECTOR_Y 1 0 0 0 0 0
      DETECTOR_PITCH   rotation    detector DETECTOR_X 0 1 0 0 0 0
      ELEMENT_ROT      translation detector DETECTOR_PITCH 0 0 1 0 0 0
      ELEMENT_RAD      translation detector ELEMENT_ROT 0 1 0 0 0 0

     # category ARRAY_STRUCTURE_LIST
     loop_
     _array_structure_list.array_id
     _array_structure_list.index
     _array_structure_list.dimension
     _array_structure_list.precedence
     _array_structure_list.direction
     _array_structure_list.axis_set_id
      ARRAY1 1 8309900 1 increasing ELEMENT_SPIRAL

     # category ARRAY_STRUCTURE_LIST_AXIS
     loop_
     _array_structure_list_axis.axis_set_id
     _array_structure_list_axis.axis_id
     _array_structure_list_axis.angle
     _array_structure_list_axis.displacement
     _array_structure_list_axis.angular_pitch
     _array_structure_list_axis.radial_pitch
      ELEMENT_SPIRAL ELEMENT_ROT 0    .  0.075   .
      ELEMENT_SPIRAL ELEMENT_RAD . 172.5  .    -0.150

     # category ARRAY_ELEMENT_SIZE
     # the actual pixels are 0.075 by 0.150 mm
     # We give the coarser dimension here.
     loop_
     _array_element_size.array_id
     _array_element_size.index
     _array_element_size.size
      ARRAY1 1 150e-6

     # category ARRAY_INTENSITIES
     loop_
     _array_intensities.array_id
     _array_intensities.binary_id
     _array_intensities.linearity
     _array_intensities.gain
     _array_intensities.gain_esd
     _array_intensities.overload
     _array_intensities.undefined_value
      ARRAY1 1 linear 1.15 0.2 240000 0

      # category ARRAY_STRUCTURE
      loop_
      _array_structure.id
      _array_structure.encoding_type
      _array_structure.compression_type
      _array_structure.byte_order
      ARRAY1 "signed 32-bit integer" packed little_endian

     # category ARRAY_DATA
     loop_
     _array_data.array_id
     _array_data.binary_id
     _array_data.data
      ARRAY1 1
     ;
     --CIF-BINARY-FORMAT-SECTION--
     Content-Type: application/octet-stream;
         conversions="X-CBF_PACKED"
     Content-Transfer-Encoding: BASE64
     X-Binary-Size: 3801324
     X-Binary-ID: 1
     X-Binary-Element-Type: "signed 32-bit integer"
     Content-MD5: 07lZFvF+aOcW85IN7usl8A==

     AABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZBQSr1sKNBOeOe9HITdMdDUnbq7bg
     ...
     8REo6TtBrxJ1vKqAvx9YDMD6J18Qg83OMr/tgssjMIJMXATDsZobL90AEXc4KigE

     --CIF-BINARY-FORMAT-SECTION----
     ;



Category groups:
    inclusive_group
    diffrn_group
Category key:
    _diffrn_scan.id

Mandatory category: no

HTML version of draft dictionary created by modified version of makedicthtml by B. McMahon from modified version of imgCIF dcitionary 1.3.2 which is subject to the following copyright: