<HTML> <HEAD> <TITLE>cif_img.dic v1.5_DRAFT</TITLE> </HEAD> <body bgcolor="#FAFAFF" text="#0808A0" BACKGROUND="../html_graphics/cbflibbackground.jpg"> <font color="#0808A0"> <H1> # <a href="http://www.iucr.org/iucr-top/welcome.html"> <img alt="[IUCr Home Page]" src="../html_graphics/iucrhome.jpg" ALIGN=MIDDLE></a> <a href="http://www.iucr.org/iucr-top/cif/home.html"> <img alt="[CIF Home Page]" src="../html_graphics/cifhome.jpg" ALIGN=MIDDLE></a> <a href="cbf_definition_rev.html"><IMG SRC="../html_graphics/CBFbutton.jpg" ALT="[CBF/imgCIF]" ALIGN=MIDDLE></a> <a href="CBFlib.html"><IMG SRC="../html_graphics/cbflibbutton.jpg" ALT="[CBFlib]" ALIGN=MIDDLE></a> # </H1> <H1 ALIGN=CENTER> # <IMG SRC="../html_graphics/CBFbig.jpg" ALIGN=MIDDLE ALT="imgCIF/CBF"> # </H1> <H1 ALIGN=CENTER># Extensions Dictionary #</H1> </font><font color="#000000"> <PRE> ############################################################################## # # # Image CIF Dictionary (imgCIF) # # and Crystallographic Binary File Dictionary (CBF) # # Extending the Macromolecular CIF Dictionary (mmCIF) # # # # Version 1.5.3 # # of 2007-07-08 # # ################################################################### # # # *** WARNING *** THIS IS A DRAFT FOR DISCUSSSION *** WARNING *** # # # # SUBJECT TO CHANGE WITHOUT NOTICE # # # # SEND COMMENTS TO imgcif-l@iucr.org CITING THE VERSION # # # ################################################################### # # This draft edited by H. J. Bernstein # # # # by Andrew P. Hammersley, Herbert J. Bernstein and John D. Westbrook # # # # This dictionary was adapted from format discussed at the imgCIF Workshop, # # held at BNL Oct 1997 and the Crystallographic Binary File Format Draft # # Proposal by Andrew Hammersley. The first DDL 2.1 Version was created by # # John Westbrook. This version was drafted by Herbert J. Bernstein and # # incorporates comments by I. David Brown, John Westbrook, Brian McMahon, # # Bob Sweet, Paul Ellis, Harry Powell, Wilfred Li, Gotzon Madariaga, # # Frances C. Bernstein, Chris Nielsen, Nicola Ashcroft and others. # ############################################################################## data_cif_img.dic _dictionary.title cif_img.dic _dictionary.version 1.5.3 _dictionary.datablock_id cif_img.dic ############################################################################## # CONTENTS # # <a href="#CATEGORY_GROUP_LIST">CATEGORY_GROUP_LIST</a> # <a href="#SUB_CATEGORY">SUB_CATEGORY</a> # # category <a href="#ARRAY_DATA">ARRAY_DATA</a> # # <a href="#_array_data.array_id" >_array_data.array_id</a> # <a href="#_array_data.binary_id" >_array_data.binary_id</a> # <a href="#_array_data.data" >_array_data.data</a> # <a href="#_array_data.header_contents" >_array_data.header_contents</a> # <a href="#_array_data.header_convention" >_array_data.header_convention</a> # # category <a href="#ARRAY_ELEMENT_SIZE">ARRAY_ELEMENT_SIZE</a> # # <a href="#_array_element_size.array_id" >_array_element_size.array_id</a> # <a href="#_array_element_size.index" >_array_element_size.index</a> # <a href="#_array_element_size.size" >_array_element_size.size</a> # # category <a href="#ARRAY_INTENSITIES">ARRAY_INTENSITIES</a> # # <a href="#_array_intensities.array_id" >_array_intensities.array_id</a> # <a href="#_array_intensities.binary_id" >_array_intensities.binary_id</a> # <a href="#_array_intensities.gain" >_array_intensities.gain</a> # <a href="#_array_intensities.gain_esd" >_array_intensities.gain_esd</a> # <a href="#_array_intensities.linearity" >_array_intensities.linearity</a> # <a href="#_array_intensities.offset" >_array_intensities.offset</a> # <a href="#_array_intensities.scaling" >_array_intensities.scaling</a> # <a href="#_array_intensities.overload" >_array_intensities.overload</a> # <a href="#_array_intensities.undefined_value" >_array_intensities.undefined_value</a> # <a href="#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a> # <a href="#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a> # <a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a> # # category <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> # # <a href="#_array_structure.byte_order" >_array_structure.byte_order</a> # <a href="#_array_structure.compression_type" >_array_structure.compression_type</a> # <a href="#_array_structure.compression_type_flag" >_array_structure.compression_type_flag</a> # <a href="#_array_structure.encoding_type" >_array_structure.encoding_type</a> # <a href="#_array_structure.id" >_array_structure.id</a> # # category <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> # # <a href="#_array_structure_list.axis_set_id" >_array_structure_list.axis_set_id</a> # <a href="#_array_structure_list.array_id" >_array_structure_list.array_id</a> # <a href="#_array_structure_list.dimension" >_array_structure_list.dimension</a> # <a href="#_array_structure_list.direction" >_array_structure_list.direction</a> # <a href="#_array_structure_list.index" >_array_structure_list.index</a> # <a href="#_array_structure_list.precedence" >_array_structure_list.precedence</a> # # category <a href="#ARRAY_STRUCTURE_LIST_AXIS">ARRAY_STRUCTURE_LIST_AXIS</a> # # <a href="#_array_structure_list_axis.axis_id" >_array_structure_list_axis.axis_id</a> # <a href="#_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a> # <a href="#_array_structure_list_axis.angle" >_array_structure_list_axis.angle</a> # <a href="#_array_structure_list_axis.angle_increment" >_array_structure_list_axis.angle_increment</a> # <a href="#_array_structure_list_axis.displacement" >_array_structure_list_axis.displacement</a> # <a href="#_array_structure_list_axis.fract_displacement" >_array_structure_list_axis.fract_displacement</a> # <a href="#_array_structure_list_axis.displacement_increment" >_array_structure_list_axis.displacement_increment</a> # <a href="#_array_structure_list_axis.fract_displacement_increment" >_array_structure_list_axis.fract_displacement_increment</a> # <a href="#_array_structure_list_axis.angular_pitch" >_array_structure_list_axis.angular_pitch</a> # <a href="#_array_structure_list_axis.radial_pitch" >_array_structure_list_axis.radial_pitch</a> # <a href="#_array_structure_list_axis.reference_angle" >_array_structure_list_axis.reference_angle</a> # <a href="#_array_structure_list_axis.reference_displacement" >_array_structure_list_axis.reference_displacement</a> # # category <a href="#AXIS">AXIS</a> # # <a href="#_axis.depends_on" >_axis.depends_on</a> # <a href="#_axis.equipment" >_axis.equipment</a> # <a href="#_axis.id" >_axis.id</a></a> # <a href="#_axis.offset[1]" >_axis.offset[1]</a> # <a href="#_axis.offset[2]" >_axis.offset[2]</a> # <a href="#_axis.offset[3]" >_axis.offset[3]</a> # <a href="#_axis.type" >_axis.type</a> # <a href="#_axis.system" >_axis.system</a> # <a href="#_axis.vector[1]" >_axis.vector[1]</a> # <a href="#_axis.vector[2]" >_axis.vector[2]</a> # <a href="#_axis.vector[3]" >_axis.vector[3]</a> # # category <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> # # <a href="#_diffrn_data_frame.array_id" >_diffrn_data_frame.array_id</a> # <a href="#_diffrn_data_frame.binary_id" >_diffrn_data_frame.binary_id</a> # <a href="#_diffrn_data_frame.center_fast" >_diffrn_data_frame.center_fast</a> # <a href="#_diffrn_data_frame.center_slow" >_diffrn_data_frame.center_slow</a> # <a href="#_diffrn_data_frame.center_units" >_diffrn_data_frame.center_units</a> # <a href="#_diffrn_data_frame.detector_element_id" >_diffrn_data_frame.detector_element_id</a> # <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> # <a href="#_diffrn_data_frame.details">_diffrn_data_frame.details</a> # # category <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> # # <a href="#_diffrn_detector.details" >_diffrn_detector.details</a> # <a href="#_diffrn_detector.detector" >_diffrn_detector.detector</a> # <a href="#_diffrn_detector.diffrn_id" >_diffrn_detector.diffrn_id</a> # <a href="#_diffrn_detector.dtime" >_diffrn_detector.dtime</a> # <a href="#_diffrn_detector.id" >_diffrn_detector.id</a> # <a href="#_diffrn_detector.number_of_axes" >_diffrn_detector.number_of_axes</a> # <a href="#_diffrn_detector.type" >_diffrn_detector.type</a> # # category <a href="#DIFFRN_DETECTOR_AXIS">DIFFRN_DETECTOR_AXIS</a> # # <a href="#_diffrn_detector_axis.axis_id" >_diffrn_detector_axis.axis_id</a> # <a href="#_diffrn_detector_axis.detector_id" >_diffrn_detector_axis.detector_id</a> # # category <a href="#DIFFRN_DETECTOR_ELEMENT">DIFFRN_DETECTOR_ELEMENT</a> # # <a href="#_diffrn_detector_element.id" >_diffrn_detector_element.id</a> # <a href="#_diffrn_detector_element.detector_id" >_diffrn_detector_element.detector_id</a> # <a href="#_diffrn_detector_element.reference_center_fast" >_diffrn_detector_element.reference_center_fast</a> # <a href="#_diffrn_detector_element.reference_center_slow" >_diffrn_detector_element.reference_center_slow</a> # <a href="#_diffrn_detector_element.reference_center_units" >_diffrn_detector_element.reference_center_units</a> # # category <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> # # <a href="#_diffrn_measurement.diffrn_id" >_diffrn_measurement.diffrn_id</a> # <a href="#_diffrn_measurement.details" >_diffrn_measurement.details</a> # <a href="#_diffrn_measurement.device" >_diffrn_measurement.device</a> # <a href="#_diffrn_measurement.device_details" >_diffrn_measurement.device_details</a> # <a href="#_diffrn_measurement.device_type" >_diffrn_measurement.device_type</a> # <a href="#_diffrn_measurement.id" >_diffrn_measurement.id</a> # <a href="#_diffrn_measurement.method" >_diffrn_measurement.method</a> # <a href="#_diffrn_measurement.number_of_axes" >_diffrn_measurement.number_of_axes</a> # <a href="#_diffrn_measurement.sample_detector_distance" >_diffrn_measurement.sample_detector_distance</a> # <a href="#_diffrn_measurement.sample_detector_voffset" >_diffrn_measurement.sample_detector_voffset</a> # <a href="#_diffrn_measurement.specimen_support" >_diffrn_measurement.specimen_support</a> # # category <a href="#DIFFRN_MEASUREMENT_AXIS">DIFFRN_MEASUREMENT_AXIS</a> # # <a href="#_diffrn_measurement_axis.id" >_diffrn_measurement_axis.axis_id</a> # <a href="#_diffrn_measurement_axis.measurement_device" >_diffrn_measurement_axis.measurement_device</a> # <a href="#_diffrn_measurement_axis.measurement_id" >_diffrn_measurement_axis.measurement_id</a> # # category <a href="#DIFFRN_RADIATION">DIFFRN_RADIATION</a> # # <a href="#_diffrn_radiation.collimation">_diffrn_radiation.collimation</a> # <a href="#_diffrn_radiation.diffrn_id">_diffrn_radiation.diffrn_id</a> # <a href="#_diffrn_radiation.div_x_source" >_diffrn_radiation.div_x_source</a> # <a href="#_diffrn_radiation.div_y_source" >_diffrn_radiation.div_y_source</a> # <a href="#_diffrn_radiation.div_x_y_source" >_diffrn_radiation.div_x_y_source</a> # <a href="#_diffrn_radiation.filter_edge">_diffrn_radiation.filter_edge</a>' # <a href="#_diffrn_radiation.inhomogeneity">_diffrn_radiation.inhomogeneity</a> # <a href="#_diffrn_radiation.monochromator">_diffrn_radiation.monochromator</a> # <a href="#_diffrn_radiation.polarisn_norm">_diffrn_radiation.polarisn_norm</a> # <a href="#_diffrn_radiation.polarisn_ratio">_diffrn_radiation.polarisn_ratio</a> # <a href="#_diffrn_radiation.polarizn_source_norm" >_diffrn_radiation.polarizn_source_norm</a> # <a href="#_diffrn_radiation.polarizn_source_ratio" >_diffrn_radiation.polarizn_source_ratio</a> # <a href="#_diffrn_radiation.probe">_diffrn_radiation.probe</a> # <a href="#_diffrn_radiation.type">_diffrn_radiation.type</a> # <a href="#_diffrn_radiation.xray_symbol">_diffrn_radiation.xray_symbol</a> # <a href="#_diffrn_radiation.wavelength_id">_diffrn_radiation.wavelength_id</a> # # category <a href="#DIFFRN_REFLN">DIFFRN_REFLN</a> # # <a href="#_diffrn_refln.frame_id" >_diffrn_refln.frame_id</a> # # category <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a> # # <a href="#_diffrn_scan.id" >_diffrn_scan.id</a> # <a href="#_diffrn_scan.date_end" >_diffrn_scan.date_end</a> # <a href="#_diffrn_scan.date_start" >_diffrn_scan.date_start</a> # <a href="#_diffrn_scan.integration_time" >_diffrn_scan.integration_time</a> # <a href="#_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a> # <a href="#_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a> # <a href="#_diffrn_scan.frames" >_diffrn_scan.frames</a> # # category <a href="#DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a> # # <a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a> # <a href="#_diffrn_scan_axis.angle_start" >_diffrn_scan_axis.angle_start</a> # <a href="#_diffrn_scan_axis.angle_range" >_diffrn_scan_axis.angle_range</a> # <a href="#_diffrn_scan_axis.angle_increment" >_diffrn_scan_axis.angle_increment</a> # <a href="#_diffrn_scan_axis.angle_rstrt_incr" >_diffrn_scan_axis.angle_rstrt_incr</a> # <a href="#_diffrn_scan_axis.displacement_start" >_diffrn_scan_axis.displacement_start</a> # <a href="#_diffrn_scan_axis.displacement_range" >_diffrn_scan_axis.displacement_range</a> # <a href="#_diffrn_scan_axis.displacement_increment" >_diffrn_scan_axis.displacement_increment</a> # <a href="#_diffrn_scan_axis.displacement_rstrt_incr" >_diffrn_scan_axis.displacement_rstrt_incr</a> # <a href="#_diffrn_scan_axis.reference_angle" >_diffrn_scan_axis.reference_angle</a> # <a href="#_diffrn_scan_axis.reference_displacement" >_diffrn_scan_axis.reference_displacement</a> # <a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a> # # category <a href="#DIFFRN_SCAN_FRAME">DIFFRN_SCAN_FRAME</a> # # <a href="#_diffrn_scan_frame.date" >_diffrn_scan_frame.date</a> # <a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a> # <a href="#_diffrn_scan_frame.frame_number" >_diffrn_scan_frame.frame_number</a> # <a href="#_diffrn_scan_frame.integration_time" >_diffrn_scan_frame.integration_time</a> # <a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a> # # category <a href="#DIFFRN_SCAN_FRAME_AXIS">DIFFRN_SCAN_FRAME_AXIS</a> # # <a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a> # <a href="#_diffrn_scan_frame_axis.angle" >_diffrn_scan_frame_axis.angle</a> # <a href="#_diffrn_scan_frame_axis.angle_increment" >_diffrn_scan_frame_axis.angle_increment</a> # <a href="#_diffrn_scan_frame_axis.angle_rstrt_incr" >_diffrn_scan_frame_axis.angle_rstrt_incr</a> # <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a> # <a href="#_diffrn_scan_frame_axis.displacement_increment" >_diffrn_scan_frame_axis.displacement_increment</a> # <a href="#_diffrn_scan_frame_axis.displacement_rstrt_incr" >_diffrn_scan_frame_axis.displacement_rstrt_incr</a> # <a href="#_diffrn_scan_frame_axis.reference_angle" >_diffrn_scan_frame_axis.reference_angle</a> # <a href="#_diffrn_scan_frame_axis.reference_displacement" >_diffrn_scan_frame_axis.reference_displacement</a> # <a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a> # # categor <a href="#MAP">MAP</a> # # <a href="#_map.details" >_map.details</a> # <a href="#_map.diffrn_id" >_map.diffrn_id</a> # <a href="#_map.entry_id" >_map.entry_id</a> # <a name="#_map.id" >_map.id</a> # # categor <a href="#MAP_SEGMENT">MAP_SEGMENT</a> # # <a href="#_map_segment.array_id" >_map_segment.array_id</a> # <a href="#_map_segment.binary_id" >_map_segment.binary_id</a> # <a href="#_map_segment.mask_array_id" >_map_segment.mask_array_id</a> # <a href="#_map_segment.mask_binary_id" >_map_segment.mask_binary_id</a> # <a href="#_map_segment.id" >_map_segment.id</a> # <a href="#_map_segment.map_id" >_map_segment.map_id</a> # <a href="#_map_segment.details" >_map_segment.details</a> # # ***DEPRECATED*** data items # # <a href="#_diffrn_detector_axis.id" >_diffrn_detector_axis.id</a> # <a href="#_diffrn_detector_element.center[1]" >_diffrn_detector_element.center[1]</a> # <a href="#_diffrn_detector_element.center[2]" >_diffrn_detector_element.center[2]</a> # <a href="#_diffrn_measurement_axis.id" >_diffrn_measurement_axis.id</a> # # ***DEPRECATED*** category <a href="#DIFFRN_FRAME_DATA">DIFFRN_FRAME_DATA</a> # # <a href="#_diffrn_frame_data.array_id" >_diffrn_frame_data.array_id</a> # <a href="#_diffrn_frame_data.binary_id" >_diffrn_frame_data.binary_id</a> # <a href="#_diffrn_frame_data.detector_element_id" >_diffrn_frame_data.detector_element_id</a> # <a href="#_diffrn_frame_data.id" >_diffrn_frame_data.id</a> # <a href="#_diffrn_frame_data.details">_diffrn_frame_data.details</a> # # # <a href="#ITEM_TYPE_LIST">ITEM_TYPE_LIST</a> # <a href="#ITEM_UNITS_LIST">ITEM_UNITS_LIST</a> # <a href="#DICTIONARY_HISTORY">DICTIONARY_HISTORY</a> # ############################################################################## ######################### ## <a name="CATEGORY_GROUP_LIST">CATEGORY_GROUP_LIST</a> ## ######################### loop_ _category_group_list.id _category_group_list.parent_id _category_group_list.description 'inclusive_group' . ; Categories that belong to the dictionary extension. ; 'array_data_group' 'inclusive_group' ; Categories that describe array data. ; 'axis_group' 'inclusive_group' ; Categories that describe axes. ; 'diffrn_group' 'inclusive_group' ; Categories that describe details of the diffraction experiment. ; ################## ## <a name="SUB_CATEGORY">SUB_CATEGORY</a> ## ################## loop_ _sub_category.id _sub_category.description 'matrix' ; The collection of elements of a matrix. ; 'vector' ; The collection of elements of a vector. ; ############## # <a name="ARRAY_DATA">ARRAY_DATA</a> # ############## save_ARRAY_DATA _category.description ; Data items in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category are the containers for the array data items described in the category <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a>. It is recognized that the data in this category needs to be used in two distinct ways. During a data collection the lack of ancillary data and timing constraints in processing data may dictate the need to make a 'miniCBF' nothing more than an essential minimum of information to record the results of the data collection. In that case it is proper to use the <a href="#ARRAY_DATA">ARRAY_DATA</a> category as a container for just a single image and a compacted, beam-line dependent list of data collection parameter values. In such a case, only the tags '<a href="#_array_data.header_convention">_array_data.header_convention</a>', '<a href="#_array_data.header_contents">_array_data.header_contents</a>' and '<a href="#_array_data.data">_array_data.data</a>' need be populated. For full processing and archiving, most of the tags in this dictionary will need to be populated. ; _category.id array_data _category.mandatory_code no loop_ _category_key.name '<a href="#_array_data.array_id" >_array_data.array_id</a>' '<a href="#_array_data.binary_id" >_array_data.binary_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - This example shows two binary data blocks. The first one was compressed by the CBF_CANONICAL compression algorithm and is presented as hexadecimal data. The first character 'H' on the data lines means hexadecimal. It could have been 'O' for octal or 'D' for decimal. The second character on the line shows the number of bytes in each word (in this case '4'), which then requires eight hexadecimal digits per word. The third character gives the order of octets within a word, in this case '<' for the ordering 4321 (i.e. 'big-endian'). Alternatively, the character '>' could have been used for the ordering 1234 (i.e. 'little-endian'). The block has a 'message digest' to check the integrity of the data. The second block is similar, but uses CBF_PACKED compression and BASE64 encoding. Note that the size and the digest are different. ; ; loop_ <a href="#_array_data.array_id" >_array_data.array_id</a> <a href="#_array_data.binary_id" >_array_data.binary_id</a> <a href="#_array_data.data" >_array_data.data</a> image_1 1 ; --CIF-BINARY-FORMAT-SECTION-- Content-Type: application/octet-stream; conversions="<b>X</b>-CBF_CANONICAL" Content-Transfer-Encoding: <b>X</b>-BASE16 X-Binary-Size: 3927126 X-Binary-ID: 1 Content-MD5: u2sTJEovAHkmkDjPi+gWsg== # Hexadecimal encoding, byte 0, byte order ...21 # H4< 0050B810 00000000 00000000 00000000 000F423F 00000000 00000000 ... .... --CIF-BINARY-FORMAT-SECTION---- ; image_2 2 ; --CIF-BINARY-FORMAT-SECTION-- Content-Type: application/octet-stream; conversions="X-CBF-PACKED" Content-Transfer-Encoding: BASE64 X-Binary-Size: 3745758 X-Binary-ID: 2 Content-MD5: 1zsJjWPfol2GYl2V+QSXrw== ELhQAAAAAAAA... ... --CIF-BINARY-FORMAT-SECTION---- ; ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 2 - This example shows a single image in a miniCBF, provided by E. Eikenberry. The entire CBF consists of one data block containing one category and three tags. The CBFlib program convert_miniCBF and a suitable template file can be used to convert this miniCBF to a full imgCIF file. ; ; ###CBF: VERSION 1.5 # CBF file written by CBFlib v0.7.8 data_insulin_pilatus6m <a href="#_array_data.header_convention">_array_data.header_convention</a> SLS_1.0 <a href="#_array_data.header_contents">_array_data.header_contents</a> ; # Detector: PILATUS 6M SN: 60-0001 # 2007/Jun/17 15:12:36.928 # Pixel_size 172e-6 m x 172e-6 m # Silicon sensor, thickness 0.000320 m # Exposure_time 0.995000 s # Exposure_period 1.000000 s # Tau = 194.0e-09 s # Count_cutoff 1048575 counts # Threshold_setting 5000 eV # Wavelength 1.2398 A # Energy_range (0, 0) eV # Detector_distance 0.15500 m # Detector_Voffset -0.01003 m # Beam_xy (1231.00, 1277.00) pixels # Flux 22487563295 ph/s # Filter_transmission 0.0008 # Start_angle 13.0000 deg. # Angle_increment 1.0000 deg. # Detector_2theta 0.0000 deg. # Polarization 0.990 # Alpha 0.0000 deg. # Kappa 0.0000 deg. # Phi 0.0000 deg. # Chi 0.0000 deg. # Oscillation_axis X, CW # N_oscillations 1 ; <a href="#_array_data.data">_array_data.data</a> ; --CIF-BINARY-FORMAT-SECTION-- Content-Type: application/octet-stream; conversions="x-CBF_BYTE_OFFSET" Content-Transfer-Encoding: BINARY X-Binary-Size: 6247567 X-Binary-ID: 1 X-Binary-Element-Type: "signed 32-bit integer" X-Binary-Element-Byte-Order: LITTLE_ENDIAN Content-MD5: 8wO6i2+899lf5iO8QPdgrw== X-Binary-Number-of-Elements: 6224001 X-Binary-Size-Fastest-Dimension: 2463 X-Binary-Size-Second-Dimension: 2527 X-Binary-Size-Padding: 4095 ... --CIF-BINARY-FORMAT-SECTION---- ; ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_array_data.array_id" >_array_data.array_id</a> _item_description.description ; This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category. If not given, it defaults to 1. ; _item.name '<a href="#_array_data.array_id" >_array_data.array_id</a>' _item.category_id array_data _item.mandatory_code implicit _item_type.code code save_ save_<a name="_array_data.binary_id" >_array_data.binary_id</a> _item_description.description ; This item is an integer identifier which, along with <a href="#_array_data.array_id" >_array_data.array_id</a>, should uniquely identify the particular block of array data. If <a href="#_array_data.binary_id" >_array_data.binary_id</a> is not explicitly given, it defaults to 1. The value of <a href="#_array_data.binary_id" >_array_data.binary_id</a> distinguishes among multiple sets of data with the same array structure. If the MIME header of the data array specifies a value for X-Binary-ID, the value of <a href="#_array_data.binary_id" >_array_data.binary_id</a> should be equal to the value given for X-Binary-ID. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_array_data.binary_id" >_array_data.binary_id</a>' array_data implicit '<a href="#_diffrn_data_frame.binary_id" >_diffrn_data_frame.binary_id</a>' diffrn_data_frame implicit '<a href="#_array_intensities.binary_id" >_array_intensities.binary_id</a>' array_intensities implicit loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_diffrn_data_frame.binary_id" >_diffrn_data_frame.binary_id</a>' '<a href="#_array_data.binary_id" >_array_data.binary_id</a>' '<a href="#_array_intensities.binary_id" >_array_intensities.binary_id</a>' '<a href="#_array_data.binary_id" >_array_data.binary_id</a>' _item_default.value 1 _item_type.code int loop_ _item_range.maximum _item_range.minimum 1 1 . 1 save_ save_<a name="_array_data.data" >_array_data.data</a> _item_description.description ; The value of <a href="#_array_data.data" >_array_data.data</a> contains the array data encapsulated in a STAR string. The representation used is a variant on the Multipurpose Internet Mail Extensions (MIME) specified in RFC 2045-2049 by N. Freed et al. The boundary delimiter used in writing an imgCIF or CBF is '\n--CIF-BINARY-FORMAT-SECTION--' (including the required initial '\n--'). The Content-Type may be any of the discrete types permitted in RFC 2045; 'application/octet-stream' is recommended for diffraction images in the ARRAY_DATA category. Note: When appropriate in other categories, e.g. for photographs of crystals, more precise types, such as 'image/jpeg', 'image/tiff', 'image/png', etc. should be used. If an octet stream was compressed, the compression should be specified by the parameter 'conversions="X-CBF_PACKED"' or the parameter 'conversions="X-CBF_CANONICAL"' or the parameter 'conversions="X-CBF_BYTE_OFFSET"' If the parameter 'conversions="X-CBF_PACKED"' is given it may be further modified with the parameters '"uncorrelated_sections"' or '"flat"' If the '"uncorrelated_sections"' parameter is given, each section will be compressed without using the prior section for averaging. If the '"flat"' parameter is given, each the image will be treated as one long row. The Content-Transfer-Encoding may be 'BASE64', 'Quoted-Printable', 'X-BASE8', 'X-BASE10', 'X-BASE16' or 'X-BASE32K', for an imgCIF or 'BINARY' for a CBF. The octal, decimal and hexadecimal transfer encodings are provided for convenience in debugging and are not recommended for archiving and data interchange. In a CIF, one of the parameters 'charset=us-ascii', 'charset=utf-8' or 'charset=utf-16' may be used on the Content-Transfer-Encoding to specify the character set used for the external presentation of the encoded data. If no charset parameter is given, the character set of the enclosing CIF is assumed. In any case, if a BOM flag is detected (FE FF for big-endian UTF-16, FF FE for little-endian UTF-16 or EF BB BF for UTF-8) is detected, the indicated charset will be assumed until the end of the encoded data or the detection of a different BOM. The charset of the Content-Transfer-Encoding is not the character set of the encoded data, only the character set of the presentation of the encoded data and should be respecified for each distinct STAR string. In an imgCIF file, the encoded binary data begins after the empty line terminating the header. In an imgCIF file, the encoded binary data ends with the terminating boundary delimiter '\n--CIF-BINARY-FORMAT-SECTION----' in the currently effective charset or with the '\n; ' that terminates the STAR string. In a CBF, the raw binary data begins after an empty line terminating the header and after the sequence: Octet Hex Decimal Purpose 0 0C 12 (ctrl-L) Page break 1 1A 26 (ctrl-Z) Stop listings in MS-DOS 2 04 04 (Ctrl-D) Stop listings in UNIX 3 D5 213 Binary section begins None of these octets are included in the calculation of the message size or in the calculation of the message digest. The X-Binary-Size header specifies the size of the equivalent binary data in octets. If compression was used, this size is the size after compression, including any book-keeping fields. An adjustment is made for the deprecated binary formats in which eight bytes of binary header are used for the compression type. In this case, the eight bytes used for the compression type are subtracted from the size, so that the same size will be reported if the compression type is supplied in the MIME header. Use of the MIME header is the recommended way to supply the compression type. In general, no portion of the binary header is included in the calculation of the size. The X-Binary-Element-Type header specifies the type of binary data in the octets, using the same descriptive phrases as in <a href="#_array_structure.encoding_type">_array_structure.encoding_type</a>. The default value is 'unsigned 32-bit integer'. An MD5 message digest may, optionally, be used. The 'RSA Data Security, Inc. MD5 Message-Digest Algorithm' should be used. No portion of the header is included in the calculation of the message digest. If the Transfer Encoding is 'X-BASE8', 'X-BASE10' or 'X-BASE16', the data are presented as octal, decimal or hexadecimal data organized into lines or words. Each word is created by composing octets of data in fixed groups of 2, 3, 4, 6 or 8 octets, either in the order ...4321 ('big- endian') or 1234... ('little-endian'). If there are fewer than the specified number of octets to fill the last word, then the missing octets are presented as '==' for each missing octet. Exactly two equal signs are used for each missing octet even for octal and decimal encoding. The format of lines is: rnd xxxxxx xxxxxx xxxxxx where r is 'H', 'O' or 'D' for hexadecimal, octal or decimal, n is the number of octets per word and d is '<' or '>' for the '...4321' and '1234...' octet orderings, respectively. The '==' padding for the last word should be on the appropriate side to correspond to the missing octets, e.g. H4< FFFFFFFF FFFFFFFF 07FFFFFF ====0000 or H3> FF0700 00==== For these hexadecimal, octal and decimal formats only, comments beginning with '#' are permitted to improve readability. BASE64 encoding follows MIME conventions. Octets are in groups of three: c1, c2, c3. The resulting 24 bits are broken into four six-bit quantities, starting with the high-order six bits (c1 >> 2) of the first octet, then the low-order two bits of the first octet followed by the high-order four bits of the second octet [(c1 & 3)<<4 | (c2>>4)], then the bottom four bits of the second octet followed by the high-order two bits of the last octet [(c2 & 15)<<2 | (c3>>6)], then the bottom six bits of the last octet (c3 & 63). Each of these four quantities is translated into an ASCII character using the mapping: 1 2 3 4 5 6 0123456789012345678901234567890123456789012345678901234567890123 | | | | | | | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ With short groups of octets padded on the right with one '=' if c3 is missing, and with '==' if both c2 and c3 are missing. X-BASE32K encoding is similar to BASE64 encoding, except that sets of 15 octets are encoded as sets of 8 16-bit unicode characters, by breaking the 120 bits into 8 15-bit quantities. 256 is added to each 15 bit quantity to bring it into a printable uncode range. When encoding, zero padding is used to fill out the last 15 bit quantity. If 8 or more bits of padding are used, a single equals sign (hexadecimal 003D) is appended. Embedded whitespace and newlines are introduced to produce lines of no more than 80 characters each. On decoding, all printable ascii characters and ascii whitespace characters are ignored except for any trailing equals signs. The number of trailing equals signs indicated the number of trailing octets to be trimmed from the end of the decoded data. (see Georgi Darakev, Vassil Litchev, Kostadin Z. Mitev, Herbert J. Bernstein, 'Efficient Support of Binary Data in the XML Implementation of the NeXus File Format',absract W0165, ACA Summer Meeting, Honolulu, HI, July 2006). QUOTED-PRINTABLE encoding also follows MIME conventions, copying octets without translation if their ASCII values are 32...38, 42, 48...57, 59, 60, 62, 64...126 and the octet is not a ';' in column 1. All other characters are translated to =nn, where nn is the hexadecimal encoding of the octet. All lines are 'wrapped' with a terminating '=' (i.e. the MIME conventions for an implicit line terminator are never used). The "X-Binary-Element-Byte-Order" can specify either '"BIG_ENDIAN"' or '"LITTLE_ENDIAN"' byte order of the imaage data. Only LITTLE_ENDIAN is recommended. Processors may treat BIG_ENDIAN as a warning of data that can only be processed by special software. The "X-Binary-Number-of-Elements" specifies the number of elements (not the number of octets) in the decompressed, decoded image. The optional "X-Binary-Size-Fastest-Dimension" specifies the number of elements (not the number of octets) in one row of the fastest changing dimension of the binary data array. This information must be in the MIME header for proper operation of some of the decompression algorithms. The optional "X-Binary-Size-Second-Dimension" specifies the number of elements (not the number of octets) in one column of the second-fastest changing dimension of the binary data array. This information must be in the MIME header for proper operation of some of the decompression algorithms. The optional "X-Binary-Size-Third-Dimension" specifies the number of sections for the third-fastest changing dimension of the binary data array. The optional "X-Binary-Size-Padding" specifies the size in octets of an optional padding after the binary array data and before the closing flags for a binary section. ; _item.name '<a href="#_array_data.data" >_array_data.data</a>' _item.category_id array_data _item.mandatory_code yes _item_type.code binary save_ save_<a name="_array_data.header_contents" >_array_data.header_contents</a> _item_description.description ; This item is an text field for use in minimal CBF files to carry essential header information to be kept with image data in _array_data.data when the tags that normally carry the structured metadata for the image have not been populated. Normally this data item should not appear when the full set of tags have been populated and _diffrn_data_frame.details appears. ; _item.name '<a href="#_array_data.header_contents" >_array_data.header_contents</a>' _item.category_id <a href="#ARRAY_DATA">array_data</a> _item.mandatory_code no _item_type.code text save_ save_<a name="_array_data.header_convention" >_array_data.header_convention</a> _item_description.description ; This item is an identifier for the convention followed in constructing the contents of <a href="#_array_data.header_contents" >_array_data.header_contents</a> The permitted values are of the of an image creator identifier followed by an underscore and a version string. To avoid confusion about conventions, all creator identifiers should be registered with the IUCr and the conventions for all identifiers and versions should be posted on the MEDSBIO.org web site. ; _item.name '<a href="#_array_data.header_convention" >_array_data.header_convention</a>' _item.category_id <a href="#ARRAY_DATA">array_data</a> _item.mandatory_code no _item_type.code code save_ ###################### # <a name="ARRAY_ELEMENT_SIZE">ARRAY_ELEMENT_SIZE</a> # ###################### save_ARRAY_ELEMENT_SIZE _category.description ; Data items in the <a href="#ARRAY_ELEMENT_SIZE">ARRAY_ELEMENT_SIZE</a> category record the physical size of array elements along each array dimension. ; _category.id array_element_size _category.mandatory_code no loop_ _category_key.name '<a href="#_array_element_size.array_id" >_array_element_size.array_id</a>' '<a href="#_array_element_size.index" >_array_element_size.index</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - A regular 2D array with a uniform element dimension of 1220 nanometres. ; ; loop_ <a href="#_array_element_size.array_id" >_array_element_size.array_id</a> <a href="#_array_element_size.index" >_array_element_size.index</a> <a href="#_array_element_size.size" >_array_element_size.size</a> image_1 1 1.22e-6 image_1 2 1.22e-6 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_array_element_size.array_id" >_array_element_size.array_id</a> _item_description.description ; This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category. ; _item.name '<a href="#_array_element_size.array_id" >_array_element_size.array_id</a>' _item.category_id array_element_size _item.mandatory_code implicit _item_type.code code save_ save_<a name="_array_element_size.index" >_array_element_size.index</a> _item_description.description ; This item is a pointer to <a href="#_array_structure_list.index" >_array_structure_list.index</a> in the ARRAY_STRUCTURE_LIST category. ; _item.name '<a href="#_array_element_size.index" >_array_element_size.index</a>' _item.category_id array_element_size _item.mandatory_code yes _item_type.code code save_ save_<a name="_array_element_size.size" >_array_element_size.size</a> _item_description.description ; The size in metres of an image element in this dimension. This supposes that the elements are arranged on a regular grid. ; _item.name '<a href="#_array_element_size.size" >_array_element_size.size</a>' _item.category_id array_element_size _item.mandatory_code yes _item_type.code float _item_units.code 'metres' loop_ _item_range.maximum _item_range.minimum . 0.0 save_ ##################### # <a name="ARRAY_INTENSITIES">ARRAY_INTENSITIES</a> # ##################### save_ARRAY_INTENSITIES _category.description ; Data items in the <a href="#ARRAY_INTENSITIES">ARRAY_INTENSITIES</a> category record the information required to recover the intensity data from the set of data values stored in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category. The detector may have a complex relationship between the raw intensity values and the number of incident photons. In most cases, the number stored in the final array will have a simple linear relationship to the actual number of incident photons, given by <a href="#_array_intensities.gain">_array_intensities.gain</a>. If raw, uncorrected values are presented (e.g. for calibration experiments), the value of <a href="#_array_intensities.linearity">_array_intensities.linearity</a> will be 'raw' and <a href="#_array_intensities.gain">_array_intensities.gain</a> will not be used. ; _category.id array_intensities _category.mandatory_code no loop_ _category_key.name '<a href="#_array_intensities.array_id" >_array_intensities.array_id</a>' '<a href="#_array_intensities.binary_id" >_array_intensities.binary_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 ; ; loop_ <a href="#_array_intensities.array_id" >_array_intensities.array_id</a> <a href="#_array_intensities.linearity" >_array_intensities.linearity</a> <a href="#_array_intensities.gain" >_array_intensities.gain</a> <a href="#_array_intensities.overload" >_array_intensities.overload</a> <a href="#_array_intensities.undefined_value" >_array_intensities.undefined_value</a> <a href="#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a> <a href="#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a> <a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a> image_1 linear 1.2 655535 0 2 2 hardware ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_array_intensities.array_id" >_array_intensities.array_id</a> _item_description.description ; This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category. ; _item.name '<a href="#_array_intensities.array_id" >_array_intensities.array_id</a>' _item.category_id array_intensities _item.mandatory_code implicit _item_type.code code save_ save_<a name="_array_intensities.binary_id" >_array_intensities.binary_id</a> _item_description.description ; This item is a pointer to <a href="#_array_data.binary_id" >_array_data.binary_id</a> in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category. ; _item.name '<a href="#_array_intensities.binary_id" >_array_intensities.binary_id</a>' _item.category_id array_intensities _item.mandatory_code implicit _item_type.code int save_ save_<a name="_array_intensities.gain" >_array_intensities.gain</a> _item_description.description ; Detector 'gain'. The factor by which linearized intensity count values should be divided to produce true photon counts. ; _item.name '<a href="#_array_intensities.gain" >_array_intensities.gain</a>' _item.category_id array_intensities _item.mandatory_code yes _item_type.code float loop_ _item_range.maximum _item_range.minimum . 0.0 _item_units.code 'counts_per_photon' loop_ _item_related.related_name _item_related.function_code '<a href="#_array_intensities.gain_esd" >_array_intensities.gain_esd</a>' 'associated_value' save_ save_<a name="_array_intensities.gain_esd" >_array_intensities.gain_esd</a> _item_description.description ; The estimated standard deviation in detector 'gain'. ; _item.name '<a href="#_array_intensities.gain_esd" >_array_intensities.gain_esd</a>' _item.category_id array_intensities _item.mandatory_code yes _item_type.code float loop_ _item_range.maximum _item_range.minimum . 0.0 _item_units.code 'counts_per_photon' loop_ _item_related.related_name _item_related.function_code '<a href="#_array_intensities.gain" >_array_intensities.gain</a>' 'associated_esd' save_ save_<a name="_array_intensities.linearity" >_array_intensities.linearity</a> _item_description.description ; The intensity linearity scaling method used to convert from the raw intensity to the stored element value: 'linear' is linear. 'offset' means that the value defined by <a href="#_array_intensities.offset" >_array_intensities.offset</a> should be added to each element value. 'scaling' means that the value defined by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> should be multiplied with each element value. 'scaling_offset' is the combination of the two previous cases, with the scale factor applied before the offset value. 'sqrt_scaled' means that the square root of raw intensities multiplied by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> is calculated and stored, perhaps rounded to the nearest integer. Thus, linearization involves dividing the stored values by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> and squaring the result. 'logarithmic_scaled' means that the logarithm base 10 of raw intensities multiplied by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> is calculated and stored, perhaps rounded to the nearest integer. Thus, linearization involves dividing the stored values by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> and calculating 10 to the power of this number. 'raw' means that the data are a set of raw values straight from the detector. ; _item.name '<a href="#_array_intensities.linearity" >_array_intensities.linearity</a>' _item.category_id array_intensities _item.mandatory_code yes _item_type.code code loop_ _item_enumeration.value _item_enumeration.detail 'linear' . 'offset' ; The value defined by <a href="#_array_intensities.offset" >_array_intensities.offset</a> should be added to each element value. ; 'scaling' ; The value defined by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> should be multiplied with each element value. ; 'scaling_offset' ; The combination of the scaling and offset with the scale factor applied before the offset value. ; 'sqrt_scaled' ; The square root of raw intensities multiplied by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> is calculated and stored, perhaps rounded to the nearest integer. Thus, linearization involves dividing the stored values by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> and squaring the result. ; 'logarithmic_scaled' ; The logarithm base 10 of raw intensities multiplied by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> is calculated and stored, perhaps rounded to the nearest integer. Thus, linearization involves dividing the stored values by <a href="#_array_intensities.scaling">_array_intensities.scaling</a> and calculating 10 to the power of this number. ; 'raw' ; The array consists of raw values to which no corrections have been applied. While the handling of the data is similar to that given for 'linear' data with no offset, the meaning of the data differs in that the number of incident photons is not necessarily linearly related to the number of counts reported. This value is intended for use either in calibration experiments or to allow for handling more complex data-fitting algorithms than are allowed for by this data item. ; save_ save_<a name="_array_intensities.offset" >_array_intensities.offset</a> _item_description.description ; Offset value to add to array element values in the manner described by the item <a href="#_array_intensities.linearity" >_array_intensities.linearity</a>. ; _item.name '<a href="#_array_intensities.offset" >_array_intensities.offset</a>' _item.category_id array_intensities _item.mandatory_code no _item_type.code float save_ save_<a name="_array_intensities.overload" >_array_intensities.overload</a> _item_description.description ; The saturation intensity level for this data array. ; _item.name '<a href="#_array_intensities.overload" >_array_intensities.overload</a>' _item.category_id array_intensities _item.mandatory_code no _item_type.code float _item_units.code 'counts' save_ save_<a name="_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a> _item_description.description ; The value of <a href=#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a> specifies the number of pixels that compose one element in the direction of the most rapidly varying array dimension. Typical values are 1, 2, 4 or 8. When there is 1 pixel per array element in both directions, the value given for <a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a> normally should be 'none'. It is specified as a float to allow for binning algorithms that create array elements that are not integer multiples of the detector pixel size. ; _item.name '<a href="#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a>' _item.category_id array_intensities _item.mandatory_code implicit _item_type.code float _item_default.value 1. loop_ _item_range.maximum _item_range.minimum . 0.0 _item_units.code 'pixels_per_element' save_ save_<a name="_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a> _item_description.description ; The value of <a href=#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a> specifies the number of pixels that compose one element in the direction of the second most rapidly varying array dimension. Typical values are 1, 2, 4 or 8. When there is 1 pixel per array element in both directions, the value given for <a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a> normally should be 'none'. It is specified as a float to allow for binning algorithms that create array elements that are not integer multiples of the detector pixel size. ; _item.name '<a href="#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a>' _item.category_id array_intensities _item.mandatory_code implicit _item_type.code float _item_default.value 1. loop_ _item_range.maximum _item_range.minimum . 0.0 _item_units.code 'pixels_per_element' save_ save_<a name="_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a> _item_description.description ; The value of <a href="#_array_intensities.pixel_binning_method">_array_intensities.pixel_binning_method</a> specifies the method used to derive array elements from multiple pixels. ; _item.name '<a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a>' _item.category_id array_intensities _item.mandatory_code implicit _item_type.code code loop_ _item_enumeration.value _item_enumeration.detail 'hardware' ; The element intensities were derived from the raw data of one or more pixels by used of hardware in the detector, e.g. by use of shift registers in a CCD to combine pixels into super-pixels. ; 'software' ; The element intensities were derived from the raw data of more than one pixel by use of software. ; 'combined' ; The element intensities were derived from the raw data of more than one pixel by use of both hardware and software, as when hardware binning is used in one direction and software in the other. ; 'none' ; In the both directions, the data has not been binned. The number of pixels is equal to the number of elements. When the value of <a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a> is 'none' the values of <a href="#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a> and <a href="#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a> both must be 1. ; 'unspecified' ; The method used to derive element intensities is not specified. ; _item_default.value 'unspecified' save_ save_<a name="_array_intensities.scaling" >_array_intensities.scaling</a> _item_description.description ; Multiplicative scaling value to be applied to array data in the manner described by item <a href="#_array_intensities.linearity" >_array_intensities.linearity</a>. ; _item.name '<a href="#_array_intensities.scaling" >_array_intensities.scaling</a>' _item.category_id array_intensities _item.mandatory_code no _item_type.code float save_ save_<a name="_array_intensities.undefined_value" >_array_intensities.undefined_value</a> _item_description.description ; A value to be substituted for undefined values in the data array. ; _item.name '<a href="#_array_intensities.undefined_value" >_array_intensities.undefined_value</a>' _item.category_id array_intensities _item.mandatory_code no _item_type.code float save_ ################### # <a name="ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> # ################### save_ARRAY_STRUCTURE _category.description ; Data items in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category record the organization and encoding of array data that may be stored in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category. ; _category.id array_structure _category.mandatory_code no _category_key.name '<a href="#_array_structure.id" >_array_structure.id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - ; ; loop_ _array_structure.id _array_structure.encoding_type _array_structure.compression_type _array_structure.byte_order image_1 "unsigned 16-bit integer" none little_endian ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_array_structure.byte_order" >_array_structure.byte_order</a> _item_description.description ; The order of bytes for integer values which require more than 1 byte. (IBM-PC's and compatibles and DEC VAXs use low-byte-first ordered integers, whereas Hewlett Packard 700 series, Sun-4 and Silicon Graphics use high-byte-first ordered integers. DEC Alphas can produce/use either depending on a compiler switch.) ; _item.name '<a href="#_array_structure.byte_order" >_array_structure.byte_order</a>' _item.category_id array_structure _item.mandatory_code yes _item_type.code ucode loop_ _item_enumeration.value _item_enumeration.detail 'big_endian' ; The first byte in the byte stream of the bytes which make up an integer value is the most significant byte of an integer. ; 'little_endian' ; The last byte in the byte stream of the bytes which make up an integer value is the most significant byte of an integer. ; save_ save_<a name="_array_structure.compression_type" >_array_structure.compression_type</a> _item_description.description ; Type of data-compression method used to compress the array data. ; _item.name '<a href="#_array_structure.compression_type" >_array_structure.compression_type</a>' _item.category_id array_structure _item.mandatory_code no _item_type.code ucode _item_default.value 'none' loop_ _item_enumeration.value _item_enumeration.detail 'byte_offset' ; Using the 'byte_offset' compression scheme as per A. Hammersley and the CBFlib manual, section 3.3.3 ; 'canonical' ; Using the 'canonical' compression scheme (International Tables for Crystallography Volume G, Section 5.6.3.1) and CBFlib manual section 3.3.1 ; 'none' ; Data are stored in normal format as defined by <a href="#_array_structure.encoding_type" >_array_structure.encoding_type</a> and <a href="#_array_structure.byte_order" >_array_structure.byte_order</a>. ; 'packed' ; Using the 'packed' compression scheme, a CCP4-style packing as per J. P. Abrahams pack_c.c and CBFlib manual, section 3.3.2. ; 'packed_v2' ; Using the 'packed' compression scheme, version 2, as per J. P. Abrahams pack_c.c and CBFlib manual, section 3.3.2. ; save_ save_<a name="_array_structure.compression_type_flag" >_array_structure.compression_type_flag</a> _item_description.description ; Flags modifying the type of data-compression method used to compress the arraydata. ; _item.name '<a href="#_array_structure.compression_type_flag" >_array_structure.compression_type_flag</a>' _item.category_id array_structure _item.mandatory_code no _item_type.code ucode loop_ _item_enumeration.value _item_enumeration.detail 'uncorrelated_sections' ; When applying packed or packed_v2 compression on an array with uncorrelated sections, do not average in points from the prior section. ; 'flat' ; When applying packed or packed_v2 compression on an array with treat the entire image as a single line set the maximum number of bits for an offset to 65 bits. The flag is included for compatibility with software prior to CBFlib_0.7.7, and should not be used for new data sets. ; save_ save_<a name="_array_structure.encoding_type" >_array_structure.encoding_type</a> _item_description.description ; Data encoding of a single element of array data. The type 'unsigned 1-bit integer' is used for packed Booleans arrays for masks. Each element of the array corresponds to a single bit packed in unsigned 8-bit data. In several cases, the IEEE format is referenced. See IEEE Standard 754-1985 (IEEE, 1985). Ref: IEEE (1985). IEEE Standard for Binary Floating-Point Arithmetic. ANSI/IEEE Std 754-1985. New York: Institute of Electrical and Electronics Engineers. ; _item.name '<a href="#_array_structure.encoding_type" >_array_structure.encoding_type</a>' _item.category_id array_structure _item.mandatory_code yes _item_type.code uline loop_ _item_enumeration.value 'unsigned 1-bit integer' 'unsigned 8-bit integer' 'signed 8-bit integer' 'unsigned 16-bit integer' 'signed 16-bit integer' 'unsigned 32-bit integer' 'signed 32-bit integer' 'signed 32-bit real IEEE' 'signed 64-bit real IEEE' 'signed 32-bit complex IEEE' save_ save_<a name="_array_structure.id" >_array_structure.id</a> _item_description.description ; The value of <a href="#_array_structure.id" >_array_structure.id</a> must uniquely identify each item of array data. This item has been made implicit and given a default value of 1 as a convenience in writing miniCBF files. Normally an explicit name with useful content should be used. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_array_structure.id" >_array_structure.id</a>' array_structure implicit '<a href="#_array_data.array_id" >_array_data.array_id</a>' array_data implicit '<a href="#_array_structure_list.array_id" >_array_structure_list.array_id</a>' array_structure_list implicit '<a href="#_array_intensities.array_id" >_array_intensities.array_id</a>' array_intensities implicit '<a href="#_diffrn_data_frame.array_id" >_diffrn_data_frame.array_id</a>' diffrn_data_frame implicit _item_default.value 1 _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_array_data.array_id" >_array_data.array_id</a>' '<a href="#_array_structure.id" >_array_structure.id</a>' '<a href="#_array_structure_list.array_id" >_array_structure_list.array_id</a>' '<a href="#_array_structure.id" >_array_structure.id</a>' '<a href="#_array_intensities.array_id" >_array_intensities.array_id</a>' '<a href="#_array_structure.id" >_array_structure.id</a>' '<a href="#_diffrn_data_frame.array_id" >_diffrn_data_frame.array_id</a>' '<a href="#_array_structure.id" >_array_structure.id</a>' save_ ######################## # <a name="ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> # ######################## save_ARRAY_STRUCTURE_LIST _category.description ; Data items in the <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> category record the size and organization of each array dimension. The relationship to physical axes may be given. ; _category.id array_structure_list _category.mandatory_code no loop_ _category_key.name '<a href="#_array_structure_list.array_id" >_array_structure_list.array_id</a>' '<a href="#_array_structure_list.index" >_array_structure_list.index</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - An image array of 1300 x 1200 elements. The raster order of the image is left to right (increasing) in the first dimension and bottom to top (decreasing) in the second dimension. ; ; loop_ <a href="#_array_structure_list.array_id" >_array_structure_list.array_id</a> <a href="#_array_structure_list.index" >_array_structure_list.index</a> <a href="#_array_structure_list.dimension" >_array_structure_list.dimension</a> <a href="#_array_structure_list.precedence" >_array_structure_list.precedence</a> <a href="#_array_structure_list.direction" >_array_structure_list.direction</a> <a href="#_array_structure_list.axis_id" >_array_structure_list.axis_set_id</a> image_1 1 1300 1 increasing ELEMENT_X image_1 2 1200 2 decreasing ELEMENY_Y ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_array_structure_list.array_id" >_array_structure_list.array_id</a> _item_description.description ; This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category. ; _item.name '<a href="#_array_structure_list.array_id" >_array_structure_list.array_id</a>' _item.category_id array_structure_list _item.mandatory_code implicit _item_type.code code save_ save_<a name="_array_structure_list.axis_set_id" >_array_structure_list.axis_set_id</a> _item_description.description ; This is a descriptor for the physical axis or set of axes corresponding to an array index. This data item is related to the axes of the detector itself given in <a href="#DIFFRN_DETECTOR_AXIS">DIFFRN_DETECTOR_AXIS</a>, but usually differs in that the axes in this category are the axes of the coordinate system of reported data points, while the axes in <a href="#DIFFRN_DETECTOR_AXIS">DIFFRN_DETECTOR_AXIS</a> are the physical axes of the detector describing the 'poise' of the detector as an overall physical object. If there is only one axis in the set, the identifier of that axis should be used as the identifier of the set. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_array_structure_list.axis_set_id" >_array_structure_list.axis_set_id</a>' array_structure_list yes '<a href="#_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a>' array_structure_list_axis implicit _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a>' '<a href="#_array_structure_list.axis_set_id" >_array_structure_list.axis_set_id</a>' save_ save_<a name="_array_structure_list.dimension" >_array_structure_list.dimension</a> _item_description.description ; The number of elements stored in the array structure in this dimension. ; _item.name '<a href="#_array_structure_list.dimension" >_array_structure_list.dimension</a>' _item.category_id array_structure_list _item.mandatory_code yes _item_type.code int loop_ _item_range.maximum _item_range.minimum 1 1 . 1 save_ save_<a name="_array_structure_list.direction" >_array_structure_list.direction</a> _item_description.description ; Identifies the direction in which this array index changes. ; _item.name '<a href="#_array_structure_list.direction" >_array_structure_list.direction</a>' _item.category_id array_structure_list _item.mandatory_code yes _item_type.code code loop_ _item_enumeration.value _item_enumeration.detail 'increasing' ; Indicates the index changes from 1 to the maximum dimension. ; 'decreasing' ; Indicates the index changes from the maximum dimension to 1. ; save_ save_<a name="_array_structure_list.index" >_array_structure_list.index</a> _item_description.description ; Identifies the one-based index of the row or column in the array structure. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_array_structure_list.index" >_array_structure_list.index</a>' array_structure_list yes '<a href="#_array_structure_list.precedence" >_array_structure_list.precedence</a>' array_structure_list yes '<a href="#_array_element_size.index" >_array_element_size.index</a>' array_element_size yes _item_type.code int loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_array_element_size.index" >_array_element_size.index</a>' '<a href="#_array_structure_list.index" >_array_structure_list.index</a>' loop_ _item_range.maximum _item_range.minimum 1 1 . 1 save_ save_<a name="_array_structure_list.precedence" >_array_structure_list.precedence</a> _item_description.description ; Identifies the rank order in which this array index changes with respect to other array indices. The precedence of 1 indicates the index which changes fastest. ; _item.name '<a href="#_array_structure_list.precedence" >_array_structure_list.precedence</a>' _item.category_id array_structure_list _item.mandatory_code yes _item_type.code int loop_ _item_range.maximum _item_range.minimum 1 1 . 1 save_ ############################# # <a name="ARRAY_STRUCTURE_LIST_AXIS">ARRAY_STRUCTURE_LIST_AXIS</a> # ############################# save_ARRAY_STRUCTURE_LIST_AXIS _category.description ; Data items in the <a href="#ARRAY_STRUCTURE_LIST_AXIS">ARRAY_STRUCTURE_LIST_AXIS</a> category describe the physical settings of sets of axes for the centres of pixels that correspond to data points described in the <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> category. In the simplest cases, the physical increments of a single axis correspond to the increments of a single array index. More complex organizations, e.g. spiral scans, may require coupled motions along multiple axes. Note that a spiral scan uses two coupled axes: one for the angular direction and one for the radial direction. This differs from a cylindrical scan for which the two axes are not coupled into one set. ; _category.id array_structure_list_axis _category.mandatory_code no loop_ _category_key.name '<a href="#_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a>' '<a href="#_array_structure_list_axis.axis_id" >_array_structure_list_axis.axis_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' save_ save_<a name="_array_structure_list_axis.axis_id" >_array_structure_list_axis.axis_id</a> _item_description.description ; The value of this data item is the identifier of one of the axes in the set of axes for which settings are being specified. Multiple axes may be specified for the same value of <a href="#_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a>. This item is a pointer to <a href="#_axis.id" >_axis.id</a> in the <a href="#AXIS">AXIS</a> category. ; _item.name '<a href="#_array_structure_list_axis.axis_id" >_array_structure_list_axis.axis_id</a>' _item.category_id array_structure_list_axis _item.mandatory_code yes _item_type.code code save_ save_<a name="_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a> _item_description.description ; The value of this data item is the identifier of the set of axes for which axis settings are being specified. Multiple axes may be specified for the same value of <a href="#_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a>. This item is a pointer to <a href="#_array_structure_list.axis_set_id" >_array_structure_list.axis_set_id</a> in the <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> category. If this item is not specified, it defaults to the corresponding axis identifier. ; _item.name '<a href="#_array_structure_list_axis.axis_set_id" >_array_structure_list_axis.axis_set_id</a>' _item.category_id array_structure_list_axis _item.mandatory_code implicit _item_type.code code save_ save_<a name="_array_structure_list_axis.angle" >_array_structure_list_axis.angle</a> _item_description.description ; The setting of the specified axis in degrees for the first data point of the array index with the corresponding value of <a href="#_array_structure_list.axis_set_id">_array_structure_list.axis_set_id</a>. If the index is specified as 'increasing', this will be the centre of the pixel with index value 1. If the index is specified as 'decreasing', this will be the centre of the pixel with maximum index value. ; _item.name '<a href="#_array_structure_list_axis.angle" >_array_structure_list_axis.angle</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_array_structure_list_axis.angle_increment">_array_structure_list_axis.angle_increment</a> _item_description.description ; The pixel-centre-to-pixel-centre increment in the angular setting of the specified axis in degrees. This is not meaningful in the case of 'constant velocity' spiral scans and should not be specified for this case. See <a href="#_array_structure_list_axis.angular_pitch">_array_structure_list_axis.angular_pitch</a>. ; _item.name '<a href="#_array_structure_list_axis.angle_increment">_array_structure_list_axis.angle_increment</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_array_structure_list_axis.displacement" >_array_structure_list_axis.displacement</a> _item_description.description ; The setting of the specified axis in millimetres for the first data point of the array index with the corresponding value of <a href="#_array_structure_list.axis_set_id">_array_structure_list.axis_set_id</a>. If the index is specified as 'increasing', this will be the centre of the pixel with index value 1. If the index is specified as 'decreasing', this will be the centre of the pixel with maximum index value. ; _item.name '<a href="#_array_structure_list_axis.displacement" >_array_structure_list_axis.displacement</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_array_structure_list_axis.fract_displacement" >_array_structure_list_axis.fract_displacement</a> _item_description.description ; The setting of the specified axis as a decimal fraction of the axis unit vector for the first data point of the array index with the corresponding value of <a href="#_array_structure_list.axis_set_id">_array_structure_list.axis_set_id</a>. If the index is specified as 'increasing', this will be the centre of the pixel with index value 1. If the index is specified as 'decreasing', this will be the centre of the pixel with maximum index value. ; _item.name '<a href="#_array_structure_list_axis.fract_displacement" >_array_structure_list_axis.fract_displacement</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float save_ save_<a name="_array_structure_list_axis.displacement_increment">_array_structure_list_axis.displacement_increment</a> _item_description.description ; The pixel-centre-to-pixel-centre increment for the displacement setting of the specified axis in millimetres. ; _item.name '<a href="#_array_structure_list_axis.displacement_increment">_array_structure_list_axis.displacement_increment</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_array_structure_list_axis.fract_displacement_increment">_array_structure_list_axis.fract_displacement_increment</a> _item_description.description ; The pixel-centre-to-pixel-centre increment for the displacement setting of the specified axis as a decimal fraction of the axis unit vector. ; _item.name '<a href="#_array_structure_list_axis.fract_displacement_increment">_array_structure_list_axis.fract_displacement_increment</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_array_structure_list_axis.angular_pitch">_array_structure_list_axis.angular_pitch</a> _item_description.description ; The pixel-centre-to-pixel-centre distance for a one-step change in the setting of the specified axis in millimetres. This is meaningful only for 'constant velocity' spiral scans or for uncoupled angular scans at a constant radius (cylindrical scans) and should not be specified for cases in which the angle between pixels (rather than the distance between pixels) is uniform. See <a href="#_array_structure_list_axis.angle_increment">_array_structure_list_axis.angle_increment</a>. ; _item.name '<a href="#_array_structure_list_axis.angular_pitch">_array_structure_list_axis.angular_pitch</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_array_structure_list_axis.radial_pitch">_array_structure_list_axis.radial_pitch</a> _item_description.description ; The radial distance from one 'cylinder' of pixels to the next in millimetres. If the scan is a 'constant velocity' scan with differing angular displacements between pixels, the value of this item may differ significantly from the value of <a href="#_array_structure_list_axis.displacement_increment">_array_structure_list_axis.displacement_increment</a>. ; _item.name '<a href="#_array_structure_list_axis.radial_pitch">_array_structure_list_axis.radial_pitch</a>' _item.category_id array_structure_list_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_array_structure_list_axis.reference_angle">_array_structure_list_axis.reference_angle</a> _item_description.description ; The value of _array_structure_list_axis.reference_angle specifies the setting of the angle of this axis used for determining a reference beam center and a reference detector distance. It is normally expected to be identical to the value of _array_structure_list.angle. ; _item.name '<a href="#_array_structure_list_axis.reference_angle">_array_structure_list_axis.reference_angle</a>' _item.category_id array_structure_list_axis _item.mandatory_code implicit _item_type.code float _item_units.code 'degrees' save_ save_<a name="_array_structure_list_axis.reference_displacement">_array_structure_list_axis.reference_displacement</a> _item_description.description ; The value of _array_structure_list_axis.reference_displacement specifies the setting of the displacement of this axis used for determining a reference beam center and a reference detector distance. It is normally expected to be identical to the value of _array_structure_list.displacement. ; _item.name '<a href="#_array_structure_list_axis.reference_displacement">_array_structure_list_axis.reference_displacement</a>' _item.category_id array_structure_list_axis _item.mandatory_code implicit _item_type.code float _item_units.code 'millimetres' save_ ######## # <a name="AXIS">AXIS</a> # ######## save_AXIS _category.description ; Data items in the <a href="#AXIS">AXIS</a> category record the information required to describe the various goniometer, detector, source and other axes needed to specify a data collection or the axes defining the coordinate system of an image. The location of each axis is specified by two vectors: the axis itself, given by a unit vector in the direction of the axis, and an offset to the base of the unit vector. The vectors defining an axis are referenced to an appropriate coordinate system. The axis vector, itself, is a dimensionless unit vector. Where meaningful, the offset vector is given in millimetres. In coordinate systems not measured in metres, the offset is not specified and is taken as zero. The available coordinate systems are: The imgCIF standard laboratory coordinate system The direct lattice (fractional atomic coordinates) The orthogonal Cartesian coordinate system (real space) The reciprocal lattice An abstract orthogonal Cartesian coordinate frame For consistency in this discussion, we call the three coordinate system axes <b>X</b>, <b>Y</b> and <b>Z</b>. This is appropriate for the imgCIF standard laboratory coordinate system, and last two Cartesian coordinate systems, but for the direct lattice, <b>X</b> corresponds to <b>a</b>, <b>Y</b> to <b>b</b> and <b>Z</b> to <b>c</b>, while for the reciprocal lattice, <b><b>X</b></b> corresponds to <b>a*</b>, <b>Y</b> to <b>b*</b> and <b>Z</b> to <b>c*</b>. For purposes of visualization, all the coordinate systems are taken as right-handed, i.e., using the convention that the extended thumb of a right hand could point along the first (<b>X</b>) axis, the straightened pointer finger could point along the second (<b>Y</b>) axis and the middle finger folded inward could point along the third (<b>Z</b>) axis. <b>THE IMGCIF STANDARD LABORATORY COORDINATE SYSTEM</b> The imgCIF standard laboratory coordinate system is a right-handed orthogonal coordinate similar to the MOSFLM coordinate system, but imgCIF puts Z along the X-ray beam, rather than putting X along the X-ray beam as in MOSFLM. The vectors for the imgCIF standard laboratory coordinate system form a right-handed Cartesian coordinate system with its origin in the sample or specimen. The origin of the axis system should, if possible, be defined in terms of mechanically stable axes to be be both in the sample and in the beam. If the sample goniometer or other sample positioner has two axes the intersection of which defines a unique point at which the sample should be mounted to be bathed by the beam, that will be the origin of the axis system. If no such point is defined, then the midpoint of the line of intersection between the sample and the center of the beam will define the origin. For this definition the sample positioning system will be set at its initial reference position for the experiment. | <b>Y</b> (to complete right-handed system) | | | | | |________________<b><b>X</b></b> / principal goniometer axis / / / / /<b>Z</b> (to source) Axis 1 (<b>X</b>): The <b>X</b>-axis is aligned to the mechanical axis pointing from the sample or specimen along the principal axis of the goniometer or sample positioning system if the sample positioning system has an axis that intersects the origin and which form an angle of more than 22.5 degrees with the beam axis. Axis 2 (<b>Y</b>): The <b>Y</b>-axis completes an orthogonal right-handed system defined by the <b><b>X</b></b>-axis and the <b>Z</b>-axis (see below). Axis 3 (<b>Z</b>): The <b>Z</b>-axis is derived from the source axis which goes from the sample to the source. The <b>Z</b>-axis is the component of the source axis in the direction of the source orthogonal to the <b>X</b>-axis in the plane defined by the <b>X</b>-axis and the source axis. If the conditions for the <b>X</b>-axis can be met, the coordinate system will be based on the goniometer or other sample positioning system and the beam and 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 (<b>X</b>, <b>Y</b>, <b>Z</b>). 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. Note: This choice of coordinate system is similar to but significantly different from the choice in MOSFLM (Leslie & Powell, 2004). In MOSFLM, <b>X</b> is along the X-ray beam (the CBF/imgCIF <b>Z</b> axis) and <b>Z</b> is along the rotation axis. In some experimental techniques, there is no goniometer or the principal axis of the goniometer is at a small acute angle with respect to the source axis. In such cases, other reference axes are needed to define a useful coordinate system. The order of priority in defining directions in such cases is to use the detector, then gravity, then north. If the <b>X</b>-axis cannot be defined as above, then the direction (not the origin) of the X-axis should be parallel to the axis of the primary detector element corresponding to the most rapidly varying dimension of that detector element's data array, with its positive sense corresponding to increasing values of the index for that dimension. If the detector is such that such a direction cannot be defined (as with a point detector) or that direction forms an angle of less than 22.5 degrees with respect to the source axis, then the <b>X</b>-axis should be chosen so that if the <b>Y</b>-axis is chosen in the direction of gravity, and the <b>Z</b>-axis is chosen to be along the source axis, a right-handed orthogonal coordinate system is chosen. In the case of a vertical source axis, as a last resort, the <b>X</b>-axis should be chosen to point North. All rotations are given in degrees and all translations are given in mm. Axes may be dependent on one another. The <b>X</b>-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 centre. The location of the beam centre on the detector should be given in the <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> category in distortion-corrected millimetres from the (0,0) corner of the detector. It should be noted that many different origins arise in the definition of an experiment. In particular, as noted above, it is necessary to specify the location of the beam centre on the detector in terms of the origin of the detector, which is, of course, not coincident with the centre of the sample. The unit cell, reciprocal cell and crystallographic orthogonal Cartesian coordinate system are defined by the CELL and the matrices in the ATOM_SITES category. <b>THE DIRECT LATTICE (FRACTIONAL COORDINATES)</b> The direct lattice coordinate system is a system of fractional coordinates aligned to the crystal, rather than to the laboratory. This is a natural coordinate system for maps and atomic coordinates. It is the simplest coordinate system in which to apply symmetry. The axes are determined by the cell edges, and are not necessarily othogonal. This coordinate system is not uniquely defined and depends on the cell parameters in the CELL category and the settings chosen to index the crystal. Molecules in a crystal studied by X-ray diffracraction are organized into a repeating regular array of unit cells. Each unit cell is defined by three vectors, <b>a</b>, <b>b</b> and <b>c</b>. To quote from Drenth, "The choice of the unit cell is not unique and therefore, guidelines have been established for selecting the standard basis vectors and the origin. They are based on symmetry and metric considerations: "(1) The axial system should be right handed. (2) The basis vectors should coincide as much as possible with directions of highest symmetry." (3) The cell taken should be the smallest one that satisfies condition (2) (4) Of all the lattice vectors, none is shorter than <b>a</b>. (5) Of those not directed along <b>a</b>, none is shorter than <b>b</b>. (6) Of those not lying in the <b>ab</b> plane, none is shorter than c. (7) The three angles between the basis vectors <b>a</b>, <b>b</b> and <b>c</b> are either all acute (<90°) or all obtuse (≥90°)." These rules do not produce a unique result that is stable under the assumption of experimental errors, and the the resulting cell may not be primitive. In this coordinate system, the vector (.5, .5, .5) is in the middle of the given unit cell. Grid coordinates are an important variation on fractional coordinates used when working with maps. In imgCIF, the conversion from fractional to grid coordinates is implicit in the array indexing specified by _array_structure_list.dimension. Note that this implicit grid-coordinate scheme is 1-based, not zero-based, i.e. the origin of the cell for axes along the cell edges with no specified _array_structure_list_axis.displacement will have grid coordinates of (1,1,1), i.e. array indices of (1,1,1). <b>THE ORTHOGONAL CARTESIAN COORDINATE SYSTEM (REAL SPACE)</b> The orthogonal Cartesian coordinate system is a transformation of the direct lattice to the actual physical coordinates of atoms in space. It is similar to the laboratory coordinate system, but is anchored to and moves with the crystal, rather than being schored to the laboratory. The transformation from fractional to orthogonal cartesian coordinates is given by the _atom_sites.Cartn_transf_matrix[i][j] and _atom_sites.Cartn_transf_vector[i] tags. A common choice for the matrix of the transformation is given in the 1992 PDB format document | a b cos(γ) c cos(β) | | 0 b sin(γ) c (cos(α) - cos(β)cos(γ))/sin(γ) | | 0 0 V/(a b sin(γ)) | This is a convenient coordinate system in which to do fitting of models to maps and in which to understand the chemistry of a molecule. <b>THE RECIPROCAL LATTICE</b> The reciprocal lattice coordinate system is used for diffraction intensitities. It is based on the reciprocal cell, the dual of the cell, in which reciprocal cell edges are derived from direct cell faces: a* = bc sin(α)/V b* = ac sin(β)/V c* = ab sin(γ)/V cos(α*) = (cos(β) cos(γ) - cos(α))/(sin(β) sin(γ)) cos(β*) = (cos(γ) cos(γ) - cos(β) )/(sin(α) sin(γ)) cos(γ*) = (cos(α) cos(β) - cos(γ))/(sin(α) sin(β)) V = abc √(1 - cos(α)<sup>2</sup> - cos(β)<sup>2</sup> - cos(γ)<sup>2</sup> + 2 cos(α) cos(β) cos(γ) ) In this form the dimensions of the reciprocal lattice are in reciprocal Ångstroms (&A<sup>-1</sup>). A dimensionless form can be obtained by multiplying by the wavelength. Reflections are commonly indexed against this coordinate system as (h, k, l) triples. References: Drenth, J., "Introduction to basic crystallography." chapter 2.1 in Rossmann, M. G. and Arnold, E. "Crystallography of biological macromolecules", Volume F of the IUCr's "International tables for crystallography", Kluwer, Dordrecht 2001, pp 44 -- 63 Leslie, A. G. W. and Powell, H. (2004). MOSFLM v6.11. MRC Laboratory of Molecular Biology, Hills Road, Cambridge, England. http://www.CCP4.ac.uk/dist/<b>X</b>-windows/Mosflm/. Stout, G. H. and Jensen, L. H., "X-ray structure determination", 2nd ed., Wiley, New York, 1989, 453 pp. __, "PROTEIN DATA BANK ATOMIC COORDINATE AND BIBLIOGRAPHIC ENTRY FORMAT DESCRIPTION," Brookhaven National Laboratory, February 1992. ; _category.id axis _category.mandatory_code no loop_ _category_key.name '<a href="#_axis.id" >_axis.id</a>' '_axis.equipment' loop_ _category_group.id 'inclusive_group' 'axis_group' 'diffrn_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - This example shows the axis specification of the axes of a kappa- geometry goniometer [see Stout, G. H. & Jensen, L. H. (1989). X-ray structure determination. A practical guide, 2nd ed. p. 134. New York: Wiley Interscience]. There are three axes specified, and no offsets. The outermost axis, omega, is pointed along the <b>X</b> axis. The next innermost axis, kappa, is at a 50 degree angle to the <b>X</b> axis, pointed away from the source. The innermost axis, phi, aligns with the <b>X</b> axis when omega and phi are at their zero points. If T-omega, T-kappa and T-phi are the transformation matrices derived from the axis settings, the complete transformation would be: <b>X</b>' = (T-omega) (T-kappa) (T-phi) <b>X</b> ; ; loop_ <a href="#_axis.id" >_axis.id</a> <a href="#_axis.type" >_axis.type</a> <a href="#_axis.equipment" >_axis.equipment</a> <a href="#_axis.depends_on" >_axis.depends_on</a> <a href="#_axis.vector[1]" >_axis.vector[1]</a> <a href="#_axis.vector[2]" >_axis.vector[2]</a> <a href="#_axis.vector[3]" >_axis.vector[3]</a> omega rotation goniometer . 1 0 0 kappa rotation goniometer omega -.64279 0 -.76604 phi rotation goniometer kappa 1 0 0 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 2 - This example shows the axis specification of the axes of a detector, source and gravity. The order has been changed as a reminder that the ordering of presentation of tokens is not significant. The centre of rotation of the detector has been taken to be 68 millimetres in the direction away from the source. ; ; loop_ <a href="#_axis.id" >_axis.id</a> <a href="#_axis.type" >_axis.type</a> <a href="#_axis.equipment" >_axis.equipment</a> <a href="#_axis.depends_on" >_axis.depends_on</a> <a href="#_axis.vector[1]" >_axis.vector[1]</a> <a href="#_axis.vector[2]" >_axis.vector[2]</a> <a href="#_axis.vector[3]" >_axis.vector[3]</a> <a href="#_axis.offset[1]">_axis.offset[1]</a> <a href="#_axis.offset[2]">_axis.offset[2]</a> <a href="#_axis.offset[3]">_axis.offset[3]</a> 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 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 3 - This example show the axis specification of the axes for a map, using fractional coordinates. Each cell edge has been divided into a grid of 50 divisions in the ARRAY_STRUCTURE_LIST_AXIS category. The map is using only the first octant of the grid in the ARRAY_STRUCTURE_LIST category. The fastest changing axis is the gris along A, then along B, and the slowest is along C. The map sampling is being done in the middle of each grid division ; ; loop_ <a href="#_axis.id" >_axis.id</a> <a href="#_axis.system">_axis.system</a> <a href="#_axis.vector[1]" >_axis.vector[1]</a> <a href="#_axis.vector[2]" >_axis.vector[2]</a> <a href="#_axis.vector[3]" >_axis.vector[3]</a> CELL_A_AXIS fractional 1 0 0 CELL_B_AXIS fractional 0 1 0 CELL_C_AXIS fractional 0 0 1 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_id MAP 1 25 1 increasing CELL_A_AXIS MAP 1 25 2 increasing CELL_B_AXIS MAP 1 25 3 increasing CELL_C_AXIS loop_ _array_structure_list_axis.axis_id _array_structure_list_axis.fract_displacement _array_structure_list_axis.fract_displacement_increment CELL_A_AXIS 0.01 0.02 CELL_B_AXIS 0.01 0.02 CELL_C_AXIS 0.01 0.02 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 4 - This example show the axis specification of the axes for a map, this time as orthogonal Angstroms, using the same coordinate system as for the atomic coordinates. The map is sampling every 1.5 Angstroms (1.5e-7 millimeters) in a map segment 37.5 Angstroms on a side. ; ; loop_ <a href="#_axis.id" >_axis.id</a> <a href="#_axis.system">_axis.system</a> <a href="#_axis.vector[1]" >_axis.vector[1]</a> <a href="#_axis.vector[2]" >_axis.vector[2]</a> <a href="#_axis.vector[3]" >_axis.vector[3]</a> X orthogonal 1 0 0 Y orthogonal 0 1 0 Z orthogonal 0 0 1 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_id MAP 1 25 1 increasing X MAP 2 25 2 increasing Y MAP 3 25 3 increasing Z loop_ _array_structure_list_axis.axis_id _array_structure_list_axis.displacement _array_structure_list_axis.displacement_increment X 7.5e-8 1.5e-7 Y 7.5e-8 1.5e-7 Z 7.5e-8 1.5e-7 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_axis.depends_on" >_axis.depends_on</a> _item_description.description ; The value of <a href="#_axis.depends_on" >_axis.depends_on</a> specifies the next outermost axis upon which this axis depends. This item is a pointer to <a href="#_axis.id">_axis.id</a> in the same category. ; _item.name '<a href="#_axis.depends_on">_axis.depends_on</a>' _item.category_id axis _item.mandatory_code no save_ save_<a name="_axis.equipment" >_axis.equipment</a> _item_description.description ; The value of <a href="#_axis.equipment" >_axis.equipment</a> specifies the type of equipment using the axis: 'goniometer', 'detector', 'gravity', 'source' or 'general'. ; _item.name '<a href="#_axis.equipment">_axis.equipment</a>' _item.category_id axis _item.mandatory_code no _item_type.code ucode _item_default.value general loop_ _item_enumeration.value _item_enumeration.detail goniometer 'equipment used to orient or position samples' detector 'equipment used to detect reflections' general 'equipment used for general purposes' gravity 'axis specifying the downward direction' source 'axis specifying the direction sample to source' save_ save_<a name="_axis.offset[1]" >_axis.offset[1]</a> _item_description.description ; The [1] element of the three-element vector used to specify the offset to the base of a rotation or translation axis. The vector is specified in millimetres. ; _item.name '<a href="#_axis.offset[1]">_axis.offset[1]</a>' _item.category_id axis _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float _item_units.code millimetres save_ save_<a name="_axis.offset[2]" >_axis.offset[2]</a> _item_description.description ; The [2] element of the three-element vector used to specify the offset to the base of a rotation or translation axis. The vector is specified in millimetres. ; _item.name '<a href="#_axis.offset[2]">_axis.offset[2]</a>' _item.category_id axis _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float _item_units.code millimetres save_ save_<a name="_axis.offset[3]" >_axis.offset[3]</a> _item_description.description ; The [3] element of the three-element vector used to specify the offset to the base of a rotation or translation axis. The vector is specified in millimetres. ; _item.name '<a href="#_axis.offset[3]">_axis.offset[3]</a>' _item.category_id axis _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float _item_units.code millimetres save_ save_<a name="_axis.id" >_axis.id</a></a> _item_description.description ; The value of <a href="#_axis.id" >_axis.id</a> must uniquely identify each axis relevant to the experiment. Note that multiple pieces of equipment may share the same axis (e.g. a twotheta arm), so the category key for <a href="#AXIS">AXIS</a> also includes the equipment. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_axis.id" >_axis.id</a>' axis yes '<a href="#_array_structure_list_axis.axis_id" >_array_structure_list_axis.axis_id</a>' array_structure_list_axis yes '<a href="#_diffrn_detector_axis.axis_id" >_diffrn_detector_axis.axis_id</a>' diffrn_detector_axis yes '<a href="#_diffrn_measurement_axis.axis_id" >_diffrn_measurement_axis.axis_id</a>' diffrn_measurement_axis yes '<a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a>' diffrn_scan_axis yes '<a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a>' diffrn_scan_frame_axis yes _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_axis.depends_on" >_axis.depends_on</a>' '<a href="#_axis.id" >_axis.id</a>' '<a href="#_array_structure_list_axis.axis_id" >_array_structure_list_axis.axis_id</a>' '<a href="#_axis.id" >_axis.id</a>' '<a href="#_diffrn_detector_axis.axis_id" >_diffrn_detector_axis.axis_id</a>' '<a href="#_axis.id" >_axis.id</a>' '<a href="#_diffrn_measurement_axis.axis_id" >_diffrn_measurement_axis.axis_id</a>' '<a href="#_axis.id" >_axis.id</a>' '<a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a>' '<a href="#_axis.id" >_axis.id</a>' '<a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a>' '<a href="#_axis.id" >_axis.id</a>' save_ save_<a name="_axis.system" >_axis.system</a> _item_description.description ; The value of <a href="#_axis.system" >_axis.system</a> specifies the coordinate system used to define the axis: 'laboratory', 'direct', 'orthogonal', 'reciprocal' or 'abstract'. ; _item.name '<a href="#_axis.system">_axis.system</a>' _item.category_id axis _item.mandatory_code no _item_type.code ucode _item_default.value laboratory loop_ _item_enumeration.value _item_enumeration.detail laboratory ; the axis is referenced to the imgCIF standard laboratory Cartesian coordinate system ; direct ; the axis is referenced to the direct lattice ; orthogonal ; the axis is referenced to the cell Cartesian orthogonal coordinates ; reciprocal ; the axis is referenced to the reciprocal lattice ; abstract ; the axis is referenced to abstract Cartesian cooridinate system ; save_ save_<a name="_axis.type" >_axis.type</a> _item_description.description ; The value of <a href="#_axis.type" >_axis.type</a> specifies the type of axis: 'rotation' or 'translation' (or 'general' when the type is not relevant, as for gravity). ; _item.name '<a href="#_axis.type">_axis.type</a>' _item.category_id axis _item.mandatory_code no _item_type.code ucode _item_default.value general loop_ _item_enumeration.value _item_enumeration.detail rotation 'right-handed axis of rotation' translation 'translation in the direction of the axis' general 'axis for which the type is not relevant' save_ save_<a name="_axis.vector[1]" >_axis.vector[1]</a> _item_description.description ; The [1] element of the three-element vector used to specify the direction of a rotation or translation axis. The vector should be normalized to be a unit vector and is dimensionless. ; _item.name '<a href="#_axis.vector[1]" >_axis.vector[1]</a>' _item.category_id axis _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float save_ save_<a name="_axis.vector[2]" >_axis.vector[2]</a> _item_description.description ; The [2] element of the three-element vector used to specify the direction of a rotation or translation axis. The vector should be normalized to be a unit vector and is dimensionless. ; _item.name '<a href="#_axis.vector[2]" >_axis.vector[2]</a>' _item.category_id axis _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float save_ save_<a name="_axis.vector[3]" >_axis.vector[3]</a> _item_description.description ; The [3] element of the three-element vector used to specify the direction of a rotation or translation axis. The vector should be normalized to be a unit vector and is dimensionless. ; _item.name '<a href="#_axis.vector[3]" >_axis.vector[3]</a>' _item.category_id axis _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float save_ ##################### # <a name="DIFFRN_DATA_FRAME" >DIFFRN_DATA_FRAME</a> # ##################### save_DIFFRN_DATA_FRAME _category.description ; Data items in the <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> category record the details about each frame of data. The items in this category were previously in a DIFFRN_FRAME_DATA category, which is now deprecated. The items from the old category are provided as aliases but should not be used for new work. ; _category.id diffrn_data_frame _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a>' '<a href="#_diffrn_data_frame.detector_element_id" >_diffrn_data_frame.detector_element_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - A frame containing data from 4 frame elements. Each frame element has a common array configuration 'array_1' described in <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> and related categories. The data for each detector element are stored in four groups of binary data in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category, linked by the array_id and binary_id. ; ; loop_ <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> <a href="#_diffrn_data_frame.detector_element_id" >_diffrn_data_frame.detector_element_id</a> <a href="#_diffrn_data_frame.array_id" >_diffrn_data_frame.array_id</a> <a href="#_diffrn_data_frame.binary_id" >_diffrn_data_frame.binary_id</a> frame_1 d1_ccd_1 array_1 1 frame_1 d1_ccd_2 array_1 2 frame_1 d1_ccd_3 array_1 3 frame_1 d1_ccd_4 array_1 4 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_diffrn_data_frame.array_id" >_diffrn_data_frame.array_id</a> _item_description.description ; This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category. ; _item.name '<a href="#_diffrn_data_frame.array_id" >_diffrn_data_frame.array_id</a>' _item.category_id diffrn_data_frame _item.mandatory_code implicit _item_aliases.alias_name '_diffrn_frame_data.array_id' _item_aliases.dictionary cif_img.dic _item_aliases.version 1.0 _item_type.code code save_ save_<a name="_diffrn_data_frame.binary_id" >_diffrn_data_frame.binary_id</a> _item_description.description ; This item is a pointer to <a href="#_array_data.binary_id" >_array_data.binary_id</a> in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category. ; _item.name '<a href="#_diffrn_data_frame.binary_id" >_diffrn_data_frame.binary_id</a>' _item.category_id diffrn_data_frame _item.mandatory_code implicit _item_aliases.alias_name '_diffrn_frame_data.binary_id' _item_aliases.dictionary cif_img.dic _item_aliases.version 1.0 _item_type.code int save_ save_<a name="_diffrn_data_frame.center_fast">_diffrn_data_frame.center_fast</a> _item_description.description ; The value of <a href="#_diffrn_data_frame.center_fast">_diffrn_data_frame.center_fast</a> is the fast index axis beam center position relative to the detector element face in the units specified in the data item '<a href="#_diffrn_data_frame.center_units">_diffrn_data_frame.center_units</a>' along the fast axis of the detector from the center of the first pixel to the point at which the Z-axis (which should be colinear with the beam) intersects the face of the detector, if in fact is does. At the time of the measurement the current setting of detector positioner given frame are used. It is important to note that for measurements in millimetres, the sense of the axis is used, rather than the sign of the pixel-to-pixel increments. ; _item.name '<a href="#_diffrn_data_frame.center_fast">_diffrn_data_frame.center_fast</a>' _item.category_id diffrn_data_frame _item.mandatory_code no _item_type.code float save_ save_<a name="_diffrn_data_frame.center_slow">_diffrn_data_frame.center_slow</a> _item_description.description ; The value of <a href="#_diffrn_data_frame.center_slow">_diffrn_data_frame.center_slow</a> is the slow index axis beam center position relative to the detector element face in the units specified in the data item '<a href="#_diffrn_data_frame.center_units">_diffrn_data_frame.center_units</a>' along the slow axis of the detector from the center of the first pixel to the point at which the Z-axis (which should be colinear with the beam) intersects the face of the detector, if in fact is does. At the time of the measurement the current setting of detector positioner given frame are used. It is important to note that the sense of the axis is used, rather than the sign of the pixel-to-pixel increments. ; _item.name '<a href="#_diffrn_data_frame.center_slow">_diffrn_data_frame.center_slow</a>' _item.category_id diffrn_data_frame _item.mandatory_code no _item_type.code float save_ save_<a name="_diffrn_data_frame.center_units">_diffrn_data_frame.center_units</a> _item_description.description ; The value of <a href="#_diffrn_data_frame.center_units">_diffrn_data_frame.center_units</a> specifies the units in which the values of '<a href="#_diffrn_data_frame.center_fast">_diffrn_data_frame.center_fast</a>' and '<a href="#_diffrn_data_frame.center_slow">_diffrn_data_frame.center_slow</a>' are presented. The default is 'mm' for millimetres. The alternatives are 'pixels' and 'bins'. In all cases the center distances are measured from the center of the first pixel, i.e. in a 2x2 binning, the measuring origin is offset from the centers of the bins by one half pixel towards the first pixel. If 'bins' is specified, the data in '<a href="#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a>', '<a href="#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a>', and '<a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a>' is used to define the binning scheme. ; _item.name '<a href="#_diffrn_data_frame.center_units">_diffrn_data_frame.center_units</a>' _item.category_id diffrn_data_frame _item.mandatory_code no _item_type.code code loop_ _ item_enumeration.value _ item_enumeration.detail mm 'millimetres' pixels 'detector pixels' bins 'detector bins' save_ save_<a name="_diffrn_data_frame.detector_element_id" >_diffrn_data_frame.detector_element_id</a> _item_description.description ; This item is a pointer to <a href="#_diffrn_detector_element.id">_diffrn_detector_element.id</a> in the <a href="#DIFFRN_DETECTOR_ELEMENT">DIFFRN_DETECTOR_ELEMENT</a> category. ; _item.name '<a href="#_diffrn_data_frame.detector_element_id" >_diffrn_data_frame.detector_element_id</a>' _item.category_id diffrn_data_frame _item.mandatory_code yes _item_aliases.alias_name '_diffrn_frame_data.detector_element_id' _item_aliases.dictionary cif_img.dic _item_aliases.version 1.0 _item_type.code code save_ save_<a name="_diffrn_data_frame.id" >_diffrn_data_frame.id</a> _item_description.description ; The value of <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> must uniquely identify each complete frame of data. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a>' diffrn_data_frame yes '<a href="#_diffrn_refln.frame_id" >_diffrn_refln.frame_id</a>' diffrn_refln yes '<a href="#_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a>' diffrn_scan yes '<a href="#_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a>' diffrn_scan yes '<a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a>' diffrn_scan_frame yes '<a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a>' diffrn_scan_frame_axis yes _item_aliases.alias_name '_diffrn_frame_data.id' _item_aliases.dictionary cif_img.dic _item_aliases.version 1.0 _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_diffrn_refln.frame_id" >_diffrn_refln.frame_id</a>' '<a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a>' '<a href="#_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a>' '<a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a>' '<a href="#_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a>' '<a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a>' '<a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a>' '<a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a>' '<a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a>' '<a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a>' save_ save_<a name="_diffrn_data_frame.details" >_diffrn_data_frame.details</a> _item_description.description ; The value of <a href="#_diffrn_data_frame.details" >_diffrn_data_frame.details</a> should give a description of special aspects of each frame of data. This is an appropriate location in which to record information from vendor headers as presented in those headers, but it should never be used as a substitute for providing the fully parsed information within the appropriate imgCIF/CBF categories. Normally, when a conversion from a miniCBF has been done the data from '<a href="#_array_data.header_convention">_array_data.header_convention</a>' should be transferred to this data item and '<a href="#_array_data.header_convention">_array_data.header_convention</a>' should be removed. ; _item.name '<a name="_diffrn_data_frame.details" >_diffrn_data_frame.details</a>' _item.category_id diffrn_data_frame _item.mandatory_code no _item_aliases.alias_name '_diffrn_frame_data.details' _item_aliases.dictionary cif_img.dic _item_aliases.version 1.4 _item_type.code text loop_ _item_examples.case _item_examples.detail ; HEADER_BYTES = 512; DIM = 2; BYTE_ORDER = big_endian; TYPE = unsigned_short; SIZE1 = 3072; SIZE2 = 3072; PIXEL_SIZE = 0.102588; BIN = 2x2; DETECTOR_SN = 901; TIME = 29.945155; DISTANCE = 200.000000; PHI = 85.000000; OSC_START = 85.000000; OSC_RANGE = 1.000000; WAVELENGTH = 0.979381; BEAM_CENTER_X = 157.500000; BEAM_CENTER_Y = 157.500000; PIXEL SIZE = 0.102588; OSCILLATION RANGE = 1; EXPOSURE TIME = 29.9452; TWO THETA = 0; BEAM CENTRE = 157.5 157.5; ; ; Example of header information extracted from an ADSC Quantum 315 detector header by CBFlib_0.7.6. Image provided by Chris Nielsen of ADSC from a data collection at SSRL beamline 1-5. ; save_ ########################################################################## # The following is a restatement of the mmCIF <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a>, # # <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> and <a href="#DIFFRN_RADIATION">DIFFRN_RADIATION</a> categories, modified for # # the CBF/imgCIF extensions # ########################################################################## ################### # <a name="DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> # ################### save_DIFFRN_DETECTOR _category.description ; Data items in the <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> category describe the detector used to measure the scattered radiation, including any analyser and post-sample collimation. ; _category.id diffrn_detector _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_detector.diffrn_id" >_diffrn_detector.diffrn_id</a>' '<a href="#_diffrn_detector.id" >_diffrn_detector.id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - based on PDB entry 5HVP and laboratory records for the structure corresponding to PDB entry 5HVP. ; ; <a href="#_diffrn_detector.diffrn_id" >_diffrn_detector.diffrn_id</a> 'd1' <a href="#_diffrn_detector.detector" >_diffrn_detector.detector</a> 'multiwire' <a href="#_diffrn_detector.type" >_diffrn_detector.type</a> 'Siemens' ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_diffrn_detector.details" >_diffrn_detector.details</a> _item_description.description ; A description of special aspects of the radiation detector. ; _item.name '<a href="#_diffrn_detector.details" >_diffrn_detector.details</a>' _item.category_id diffrn_detector _item.mandatory_code no _item_aliases.alias_name '_diffrn_detector_details' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text _item_examples.case 'slow mode' save_ save_<a name="_diffrn_detector.detector" >_diffrn_detector.detector</a> _item_description.description ; The general class of the radiation detector. ; _item.name '<a href="#_diffrn_detector.detector" >_diffrn_detector.detector</a>' _item.category_id diffrn_detector _item.mandatory_code no loop_ _item_aliases.alias_name _item_aliases.dictionary _item_aliases.version '_diffrn_radiation_detector' cifdic.c91 1.0 '_diffrn_detector' cif_core.dic 2.0 _item_type.code text loop_ _item_examples.case 'photographic film' 'scintillation counter' 'CCD plate' 'BF~3~ counter' save_ save_<a name="_diffrn_detector.diffrn_id" >_diffrn_detector.diffrn_id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn.id">_diffrn.id</a> in the DIFFRN category. The value of <a href="#_diffrn.id">_diffrn.id</a> uniquely defines a set of diffraction data. ; _item.name '<a href="#_diffrn_detector.diffrn_id" >_diffrn_detector.diffrn_id</a>' _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_detector.dtime" >_diffrn_detector.dtime</a> _item_description.description ; The deadtime in microseconds of the detector(s) used to measure the diffraction intensities. ; _item.name '<a href="#_diffrn_detector.dtime" >_diffrn_detector.dtime</a>' _item.category_id diffrn_detector _item.mandatory_code no loop_ _item_aliases.alias_name _item_aliases.dictionary _item_aliases.version '_diffrn_radiation_detector_dtime' cifdic.c91 1.0 '_diffrn_detector_dtime' cif_core.dic 2.0 loop_ _item_range.maximum _item_range.minimum . 0.0 0.0 0.0 _item_type.code float _item_units.code microseconds save_ save_<a name="_diffrn_detector.id" >_diffrn_detector.id</a> _item_description.description ; The value of <a href="#_diffrn_detector.id" >_diffrn_detector.id</a> must uniquely identify each detector used to collect each diffraction data set. If the value of <a href="#_diffrn_detector.id" >_diffrn_detector.id</a> is not given, it is implicitly equal to the value of <a href="#_diffrn_detector.diffrn_id" >_diffrn_detector.diffrn_id</a>. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_diffrn_detector.id" >_diffrn_detector.id</a>' diffrn_detector implicit '<a href="#_diffrn_detector_axis.detector_id" >_diffrn_detector_axis.detector_id</a>' diffrn_detector_axis yes loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_diffrn_detector_axis.detector_id" >_diffrn_detector_axis.detector_id</a>' '_diffrn_detector.id' _item_type.code code save_ save_<a name="_diffrn_detector.number_of_axes" >_diffrn_detector.number_of_axes</a> _item_description.description ; The value of <a href="#_diffrn_detector.number_of_axes" >_diffrn_detector.number_of_axes</a> gives the number of axes of the positioner for the detector identified by <a href="#_diffrn_detector.id" >_diffrn_detector.id</a>. The word 'positioner' is a general term used in instrumentation design for devices that are used to change the positions of portions of apparatus by linear translation, rotation or combinations of such motions. Axes which are used to provide a coordinate system for the face of an area detetctor should not be counted for this data item. The description of each axis should be provided by entries in <a href="#DIFFRN_DETECTOR_AXIS">DIFFRN_DETECTOR_AXIS</a>. ; _item.name '<a href="#_diffrn_detector.number_of_axes" >_diffrn_detector.number_of_axes</a>' _item.category_id diffrn_detector _item.mandatory_code no loop_ _item_range.maximum _item_range.minimum . 1 1 1 _item_type.code int save_ save_<a name="_diffrn_detector.type" >_diffrn_detector.type</a> _item_description.description ; The make, model or name of the detector device used. ; _item.name '<a href="#_diffrn_detector.type" >_diffrn_detector.type</a>' _item.category_id diffrn_detector _item.mandatory_code no _item_aliases.alias_name '_diffrn_detector_type' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text save_ ######################## # <a name="DIFFRN_DETECTOR_AXIS" >DIFFRN_DETECTOR_AXIS</a> # ######################## save_DIFFRN_DETECTOR_AXIS _category.description ; Data items in the <a href="#DIFFRN_DETECTOR_AXIS">DIFFRN_DETECTOR_AXIS</a> category associate axes with detectors. ; _category.id diffrn_detector_axis _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_detector_axis.detector_id" >_diffrn_detector_axis.detector_id</a>' '_diffrn_detector_axis.axis_id' loop_ _category_group.id 'inclusive_group' 'diffrn_group' save_ save_<a name="_diffrn_detector_axis.axis_id" >_diffrn_detector_axis.axis_id</a> _item_description.description ; This data item is a pointer to <a href="#_axis.id" >_axis.id</a> in the AXIS category. ; _item.name '<a href="#_diffrn_detector_axis.axis_id">_diffrn_detector_axis.axis_id</a>' _item.category_id diffrn_detector_axis _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_detector_axis.detector_id" >_diffrn_detector_axis.detector_id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn_detector.id" >_diffrn_detector.id</a> in the <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> category. This item was previously named _diffrn_detector_axis.id which is now a deprecated name. The old name is provided as an alias but should not be used for new work. ; _item.name '<a href="#_diffrn_detector_axis.detector_id" >_diffrn_detector_axis.detector_id</a>' _item.category_id diffrn_detector_axis _item.mandatory_code yes _item_aliases.alias_name '_diffrn_detector_axis.id' _item_aliases.dictionary cif_img.dic _item_aliases.version 1.0 _item_type.code code save_ ########################### # <a name="DIFFRN_DETECTOR_ELEMENT">DIFFRN_DETECTOR_ELEMENT</a> # ########################### save_DIFFRN_DETECTOR_ELEMENT _category.description ; Data items in the <a href="#DIFFRN_DETECTOR_ELEMENT">DIFFRN_DETECTOR_ELEMENT</a> category record the details about spatial layout and other characteristics of each element of a detector which may have multiple elements. In most cases, giving more detailed information in <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> and <a href="#ARRAY_STRUCTURE_LIST_AXIS">ARRAY_STRUCTURE_LIST_AXIS</a> is preferable to simply providing the centre of the detector element. ; _category.id diffrn_detector_element _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_detector_element.id" >_diffrn_detector_element.id</a>' '<a href="#_diffrn_detector_element.detector_id" >_diffrn_detector_element.detector_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - Detector d1 is composed of four CCD detector elements, each 200 mm by 200 mm, arranged in a square, in the pattern 1 2 * 3 4 Note that the beam centre is slightly displaced from each of the detector elements, just beyond the lower right corner of 1, the lower left corner of 2, the upper right corner of 3 and the upper left corner of 4. For each element, the detector face coordiate system, is assumed to have the fast axis running from left to right and the slow axis running from top to bottom with the origin at the top left corner. ; ; loop_ <a href="#_diffrn_detector_element.detector_id" >_diffrn_detector_element.detector_id</a> <a href="#_diffrn_detector_element.id" >_diffrn_detector_element.id</a> <a href="#_diffrn_data_frame.center_fast" >_diffrn_detector_element.reference_center_fast</a> <a href="#_diffrn_detector_element.reference_center_slow" >_diffrn_detector_element.reference_center_slow</a> <a href="#_diffrn_detector_element.reference_center_units" >_diffrn_detector_element.reference_center_units</a> d1 d1_ccd_1 201.5 201.5 mm d1 d1_ccd_2 -1.8 201.5 mm d1 d1_ccd_3 201.6 -1.4 mm d1 d1_ccd_4 -1.7 -1.5 mm ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_diffrn_detector_element.id" >_diffrn_detector_element.id</a> _item_description.description ; The value of <a href="#_diffrn_detector_element.id" >_diffrn_detector_element.id</a> must uniquely identify each element of a detector. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_diffrn_detector_element.id" >_diffrn_detector_element.id</a>' diffrn_detector_element yes _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_diffrn_data_frame.detector_element_id" >_diffrn_data_frame.detector_element_id</a>' '<a href="#_diffrn_detector_element.id" >_diffrn_detector_element.id</a>' save_ save_<a name="_diffrn_detector_element.detector_id" >_diffrn_detector_element.detector_id</a> _item_description.description ; This item is a pointer to <a href="#_diffrn_detector.id" >_diffrn_detector.id</a> in the <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> category. ; _item.name '<a href="#_diffrn_detector_element.detector_id" >_diffrn_detector_element.detector_id</a>' _item.category_id diffrn_detector_element _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_detector_element.reference_center_fast">_diffrn_detector_element.reference_center_fast</a> _item_description.description ; The value of <a href="#_diffrn_detector_element.reference_center_fast">_diffrn_detector_element.reference_center_fast</a> is the fast index axis beam center position relative to the detector element face in the units specified in the data item '<a href="#_diffrn_detector_element.reference_center_units">_diffrn_detector_element.reference_center_units</a>' along the fast axis of the detector from the center of the first pixel to the point at which the Z-axis (which should be colinear with the beam) intersects the face of the detector, if in fact is does. At the time of the measurement all settings of the detector positioner should be at their reference settings. If more than one reference setting has been used the value given whould be representive of the beam center as determined from the ensemble of settings. It is important to note that for measurements in millimetres, the sense of the axis is used, rather than the sign of the pixel-to-pixel increments. ; _item.name '<a href="#_diffrn_detector_element.reference_center_fast">_diffrn_detector_element.reference_center_fast</a>' _item.category_id diffrn_detector_element _item.mandatory_code no _item_type.code float save_ save_<a name="_diffrn_detector_element.reference_center_slow">_diffrn_detector_element.reference_center_slow</a> _item_description.description ; The value of <a href="#_diffrn_detector_element.reference_center_slow">_diffrn_detector_element.reference_center_slow</a> is the slow index axis beam center position relative to the detector element face in the units specified in the data item '<a href="#_diffrn_detector_element.reference_center_units">_diffrn_detector_element.reference_center_units</a>' along the slow axis of the detector from the center of the first pixel to the point at which the Z-axis (which should be colinear with the beam) intersects the face of the detector, if in fact is does. At the time of the measurement all settings of the detector positioner should be at their reference settings. If more than one reference setting has been used the value givien whould be representive of the beam center as determined from the ensemble of settings. It is important to note that the sense of the axis is used, rather than the sign of the pixel-to-pixel increments. ; _item.name '<a href="#_diffrn_detector_element.reference_center_slow">_diffrn_detector_element.reference_center_slow</a>' _item.category_id diffrn_detector_element _item.mandatory_code no _item_type.code float save_ save_<a name="_diffrn_detector_element.reference_center_units">_diffrn_detector_element.reference_center_units</a> _item_description.description ; The value of <a href="#_diffrn_detector_element.reference_center_units">_diffrn_detector_element.reference_center_units</a> specifies the units in which the values of '<a href="#_diffrn_detector_element.reference_center_fast">_diffrn_detector_element.reference_center_fast</a>' and '<a href="#_diffrn_detector_element.reference_center_slow">_diffrn_detector_element.reference_center_slow</a>' are presented. The default is 'mm' for millimetres. The alternatives are 'pixels' and 'bins'. In all cases the center distances are measured from the center of the first pixel, i.e. in a 2x2 binning, the measuring origin is offset from the centers of the bins by one half pixel towards the first pixel. If 'bins' is specified, the data in '<a href="#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a>', '<a href="#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a>', and '<a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a>' is used to define the binning scheme. ; _item.name '<a href="#_diffrn_detector_element.reference_center_units">_diffrn_detector_element.reference_center_units</a>' _item.category_id diffrn_detector_element _item.mandatory_code no _item_type.code code loop_ _ item_enumeration.value _ item_enumeration.detail mm 'millimetres' pixels 'detector pixels' bins 'detector bins' save_ ######################## ## <a name="DIFFRN_MEASUREMENT" >DIFFRN_MEASUREMENT</a> ## ######################## save_DIFFRN_MEASUREMENT _category.description ; Data items in the <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> category record details about the device used to orient and/or position the crystal during data measurement and the manner in which the diffraction data were measured. ; _category.id diffrn_measurement _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_measurement.device" >_diffrn_measurement.device</a>' '<a href="#_diffrn_measurement.diffrn_id" >_diffrn_measurement.diffrn_id</a>' '<a href="#_diffrn_measurement.id" >_diffrn_measurement.id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - based on PDB entry 5HVP and laboratory records for the structure corresponding to PDB entry 5HVP ; ; <a href="#_diffrn_measurement.diffrn_id" >_diffrn_measurement.diffrn_id</a> 'd1' <a href="#_diffrn_measurement.device" >_diffrn_measurement.device</a> '3-circle camera' <a href="#_diffrn_measurement.device_type" >_diffrn_measurement.device_type</a> 'Supper model <b>X</b>' <a href="#_diffrn_measurement.device_details" >_diffrn_measurement.device_details</a> 'none' <a href="#_diffrn_measurement.method" >_diffrn_measurement.method</a> 'omega scan' <a href="#_diffrn_measurement.details" >_diffrn_measurement.details</a> ; 440 frames, 0.20 degrees, 150 sec, detector distance 12 cm, detector angle 22.5 degrees ; ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 2 - based on data set TOZ of Willis, Beckwith & Tozer [Acta Cryst. (1991), C47, 2276-2277]. ; ; <a href="#_diffrn_measurement.diffrn_id" >_diffrn_measurement.diffrn_id</a> 's1' <a href="#_diffrn_measurement.device_type" >_diffrn_measurement.device_type</a> 'Philips PW1100/20 diffractometer' <a href="#_diffrn_measurement.method" >_diffrn_measurement.method</a> 'theta/2theta (\q/2\q)' ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_diffrn_measurement.device" >_diffrn_measurement.device</a> _item_description.description ; The general class of goniometer or device used to support and orient the specimen. If the value of <a href="#_diffrn_measurement.device">_diffrn_measurement.device</a> is not given, it is implicitly equal to the value of <a href="#_diffrn_measurement.diffrn_id">_diffrn_measurement.diffrn_id</a>. Either <a href="#_diffrn_measurement.device">_diffrn_measurement.device</a> or <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> may be used to link to other categories. If the experimental setup admits multiple devices, then <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> is used to provide a unique link. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_diffrn_measurement.device">_diffrn_measurement.device</a>' diffrn_measurement implicit '<a href="#_diffrn_measurement_axis.measurement_device">_diffrn_measurement_axis.measurement_device</a>' diffrn_measurement_axis implicit loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_diffrn_measurement_axis.measurement_device">_diffrn_measurement_axis.measurement_device</a>' '_diffrn_measurement.device' _item_aliases.alias_name '_diffrn_measurement_device' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text loop_ _item_examples.case '3-circle camera' '4-circle camera' 'kappa-geometry camera' 'oscillation camera' 'precession camera' save_ save_<a name="_diffrn_measurement.device_details" >_diffrn_measurement.device_details</a> _item_description.description ; A description of special aspects of the device used to measure the diffraction intensities. ; _item.name '<a href="#_diffrn_measurement.device_details" >_diffrn_measurement.device_details</a>' _item.category_id diffrn_measurement _item.mandatory_code no _item_aliases.alias_name '_diffrn_measurement_device_details' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text _item_examples.case ; commercial goniometer modified locally to allow for 90\% \t arc ; save_ save_<a name="_diffrn_measurement.device_type" >_diffrn_measurement.device_type</a> _item_description.description ; The make, model or name of the measurement device (goniometer) used. ; _item.name '<a href="#_diffrn_measurement.device_type" >_diffrn_measurement.device_type</a>' _item.category_id diffrn_measurement _item.mandatory_code no _item_aliases.alias_name '_diffrn_measurement_device_type' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text loop_ _item_examples.case 'Supper model q' 'Huber model r' 'Enraf-Nonius model s' 'home-made' save_ save_<a name="_diffrn_measurement.diffrn_id" >_diffrn_measurement.diffrn_id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn.id">_diffrn.id</a> in the DIFFRN category. ; _item.name '<a href="#_diffrn_measurement.diffrn_id" >_diffrn_measurement.diffrn_id</a>' _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_measurement.details" >_diffrn_measurement.details</a> _item_description.description ; A description of special aspects of the intensity measurement. ; _item.name '<a href="#_diffrn_measurement.details" >_diffrn_measurement.details</a>' _item.category_id diffrn_measurement _item.mandatory_code no _item_aliases.alias_name '_diffrn_measurement_details' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text _item_examples.case ; 440 frames, 0.20 degrees, 150 sec, detector distance 12 cm, detector angle 22.5 degrees ; save_ save_<a name="_diffrn_measurement.id" >_diffrn_measurement.id</a> _item_description.description ; The value of <a href="#_diffrn_measurement.id" >_diffrn_measurement.id</a> must uniquely identify the set of mechanical characteristics of the device used to orient and/or position the sample used during the collection of each diffraction data set. If the value of <a href="#_diffrn_measurement.id" >_diffrn_measurement.id</a> is not given, it is implicitly equal to the value of <a href="#_diffrn_measurement.diffrn_id" >_diffrn_measurement.diffrn_id</a>. Either <a href="#_diffrn_measurement.device">_diffrn_measurement.device</a> or <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> may be used to link to other categories. If the experimental setup admits multiple devices, then <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> is used to provide a unique link. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_diffrn_measurement.id" >_diffrn_measurement.id</a>' diffrn_measurement implicit '<a href="#_diffrn_measurement_axis.measurement_id" >_diffrn_measurement_axis.measurement_id</a>' diffrn_measurement_axis implicit loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_diffrn_measurement_axis.measurement_id" >_diffrn_measurement_axis.measurement_id</a>' '<a href="#_diffrn_measurement.id" >_diffrn_measurement.id</a>' _item_type.code code save_ save_<a name="_diffrn_measurement.method" >_diffrn_measurement.method</a> _item_description.description ; Method used to measure intensities. ; _item.name '<a href="#_diffrn_measurement.method" >_diffrn_measurement.method</a>' _item.category_id diffrn_measurement _item.mandatory_code no _item_aliases.alias_name '_diffrn_measurement_method' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text _item_examples.case 'profile data from theta/2theta (\q/2\q) scans' save_ save_<a name="_diffrn_measurement.number_of_axes" >_diffrn_measurement.number_of_axes</a> _item_description.description ; The value of <a href="#_diffrn_measurement.number_of_axes" >_diffrn_measurement.number_of_axes</a> gives the number of axes of the positioner for the goniometer or other sample orientation or positioning device identified by <a href="#_diffrn_measurement.id" >_diffrn_measurement.id</a>. The description of the axes should be provided by entries in <a href="#DIFFRN_MEASUREMENT_AXIS">DIFFRN_MEASUREMENT_AXIS</a>. ; _item.name '<a href="#_diffrn_measurement.number_of_axes" >_diffrn_measurement.number_of_axes</a>' _item.category_id diffrn_measurement _item.mandatory_code no loop_ _item_range.maximum _item_range.minimum . 1 1 1 _item_type.code int save_ # <a href="#_diffrn_measurement.sample_detector_distance" >_diffrn_measurement.sample_detector_distance</a> # <a href="#_diffrn_measurement.sample_detector_voffset" >_diffrn_measurement.sample_detector_voffset</a> save_<a name="_diffrn_measurement.sample_detector_distance" >_diffrn_measurement.sample_detector_distance</a> _item_description.description ; The value of <a href="#_diffrn_measurement.sample_detector_distance" >_diffrn_measurement.sample_detector_distance</a> gives the unsigned distance in millimetres from the sample to the detector along the beam. ; _item.name '<a href="#_diffrn_measurement.sample_detector_distance" >_diffrn_measurement.sample_detector_distance</a>' _item.category_id diffrn_measurement _item.mandatory_code no loop_ _item_range.maximum _item_range.minimum . 0.0 _item_type.code float _item_units.code mm save_ save_<a name="_diffrn_measurement.sample_detector_voffset" >_diffrn_measurement.sample_detector_voffset</a> _item_description.description ; The value of <a href="#_diffrn_measurement.sample_detector_voffset" >_diffrn_measurement.sample_detector_voffset</a> gives the signed distance in millimetres in the vertical direction (positive for up) from the center of the beam to the center of the detector. ; _item.name '<a href="#_diffrn_measurement.sample_detector_voffset" >_diffrn_measurement.sample_detector_voffset</a>' _item.category_id diffrn_measurement _item.mandatory_code no loop_ _item_range.maximum _item_range.minimum . . . . _item_type.code float _item_units.code mm save_ save_<a name="_diffrn_measurement.specimen_support" >_diffrn_measurement.specimen_support</a> _item_description.description ; The physical device used to support the crystal during data collection. ; _item.name '<a href="#_diffrn_measurement.specimen_support" >_diffrn_measurement.specimen_support</a>' _item.category_id diffrn_measurement _item.mandatory_code no _item_aliases.alias_name '_diffrn_measurement_specimen_support' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text loop_ _item_examples.case 'glass capillary' 'quartz capillary' 'fiber' 'metal loop' save_ ########################### # <a name="DIFFRN_MEASUREMENT_AXIS">DIFFRN_MEASUREMENT_AXIS</a> # ########################### save_DIFFRN_MEASUREMENT_AXIS _category.description ; Data items in the <a href="#DIFFRN_MEASUREMENT_AXIS">DIFFRN_MEASUREMENT_AXIS</a> category associate axes with goniometers. ; _category.id diffrn_measurement_axis _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_measurement_axis.measurement_device" >_diffrn_measurement_axis.measurement_device</a>' '<a href="#_diffrn_measurement_axis.measurement_id" >_diffrn_measurement_axis.measurement_id</a>' '<a href="#_diffrn_measurement_axis.axis_id" >_diffrn_measurement_axis.axis_id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' save_ save_<a name="_diffrn_measurement_axis.axis_id" >_diffrn_measurement_axis.axis_id</a> _item_description.description ; This data item is a pointer to <a href="#_axis.id" >_axis.id</a> in the <a href="#AXIS">AXIS</a> category. ; _item.name '<a href="#_diffrn_measurement_axis.axis_id" >_diffrn_measurement_axis.axis_id</a>' _item.category_id diffrn_measurement_axis _item.mandatory_code yes _item_type.code code save_ save_<A name="_diffrn_measurement_axis.measurement_device">_diffrn_measurement_axis.measurement_device</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn_measurement.device">_diffrn_measurement.device</a> in the <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> category. ; _item.name '<a href="#_diffrn_measurement_axis.measurement_device">_diffrn_measurement_axis.measurement_device</a>' _item.category_id diffrn_measurement_axis _item.mandatory_code implicit _item_type.code text save_ save_<a name="_diffrn_measurement_axis.measurement_id">_diffrn_measurement_axis.measurement_id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> in the <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> category. This item was previously named _diffrn_measurement_axis.id, which is now a deprecated name. The old name is provided as an alias but should not be used for new work. ; _item.name '<a href="#_diffrn_measurement_axis.measurement_id">_diffrn_measurement_axis.measurement_id</a>' _item.category_id diffrn_measurement_axis _item.mandatory_code implicit _item_aliases.alias_name '_diffrn_measurement_axis.id' _item_aliases.dictionary cif_img.dic _item_aliases.version 1.0 _item_type.code code save_ #################### # <a name="DIFFRN_RADIATION">DIFFRN_RADIATION</a> # #################### save_DIFFRN_RADIATION _category.description ; Data items in the <a href="#DIFFRN_RADIATION">DIFFRN_RADIATION</a> category describe the radiation used for measuring diffraction intensities, its collimation and monochromatization before the sample. Post-sample treatment of the beam is described by data items in the <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> category. ; _category.id diffrn_radiation _category.mandatory_code no _category_key.name '<a href="#_diffrn_radiation.diffrn_id">_diffrn_radiation.diffrn_id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - based on PDB entry 5HVP and laboratory records for the structure corresponding to PDB entry 5HVP ; ; <a href="#_diffrn_radiation.diffrn_id">_diffrn_radiation.diffrn_id</a> 'set1' <a href="#_diffrn_radiation.collimation">_diffrn_radiation.collimation</a> '0.3 mm double pinhole' <a href="#_diffrn_radiation.monochromator">_diffrn_radiation.monochromator</a> 'graphite' <a href="#_diffrn_radiation.type">_diffrn_radiation.type</a> 'Cu K\a' <a href="#_diffrn_radiation.wavelength_id">_diffrn_radiation.wavelength_id</a> 1 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 2 - based on data set TOZ of Willis, Beckwith & Tozer [Acta Cryst. (1991), C47, 2276-2277]. ; ; <a href="#_diffrn_radiation.wavelength_id">_diffrn_radiation.wavelength_id</a> 1 <a href="#_diffrn_radiation.type">_diffrn_radiation.type</a> 'Cu K\a' <a href="#_diffrn_radiation.monochromator">_diffrn_radiation.monochromator</a> 'graphite' ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<A name="_diffrn_radiation.collimation">_diffrn_radiation.collimation</a> _item_description.description ; The collimation or focusing applied to the radiation. ; _item.name '<a href="#_diffrn_radiation.collimation">_diffrn_radiation.collimation</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_collimation' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text loop_ _item_examples.case '0.3 mm double-pinhole' '0.5 mm' 'focusing mirrors' save_ save_<A name="_diffrn_radiation.diffrn_id">_diffrn_radiation.diffrn_id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn.id">_diffrn.id</a> in the DIFFRN category. ; _item.name '<a href="#_diffrn_radiation.diffrn_id">_diffrn_radiation.diffrn_id</a>' _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_radiation.div_x_source">_diffrn_radiation.div_x_source</a> _item_description.description ; Beam crossfire in degrees parallel to the laboratory <b>X</b> axis (see <a href="#AXIS">AXIS</a> category). This is a characteristic of the X-ray beam as it illuminates the sample (or specimen) after all monochromation and collimation. This is the standard uncertainty (e.s.d.) of the directions of photons in the XZ plane around the mean source beam direction. Note that for some synchrotrons this value is specified in milliradians, in which case a conversion is needed. To convert a value in milliradians to a value in degrees, multiply by 0.180 and divide by \p. ; _item.name '<a href="#_diffrn_radiation.div_x_source">_diffrn_radiation.div_x_source</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_type.code float _item_units.code degrees save_ save_<A name="_diffrn_radiation.div_y_source">_diffrn_radiation.div_y_source</a> _item_description.description ; Beam crossfire in degrees parallel to the laboratory <b>Y</b> axis (see <a href="#AXIS">AXIS</a> category). This is a characteristic of the X-ray beam as it illuminates the sample (or specimen) after all monochromation and collimation. This is the standard uncertainty (e.s.d.) of the directions of photons in the YZ plane around the mean source beam direction. Note that for some synchrotrons this value is specified in milliradians, in which case a conversion is needed. To convert a value in milliradians to a value in degrees, multiply by 0.180 and divide by \p. ; _item.name '<a href="#_diffrn_radiation.div_y_source">_diffrn_radiation.div_y_source</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_type.code float _item_units.code degrees _item_default.value 0.0 save_ save_<A name="_diffrn_radiation.div_x_y_source">_diffrn_radiation.div_x_y_source</a> _item_description.description ; Beam crossfire correlation degrees^<sup>2</sup>^ between the crossfire laboratory <b>X</b>-axis component and the crossfire laboratory <b>Y</b>-axis component (see <a href="#AXIS">AXIS</a> category). This is a characteristic of the X-ray beam as it illuminates the sample (or specimen) after all monochromation and collimation. This is the mean of the products of the deviations of the direction of each photon in XZ plane times the deviations of the direction of the same photon in the YZ plane around the mean source beam direction. This will be zero for uncorrelated crossfire. Note that some synchrotrons, this value is specified in milliradians^<sup>2</sup>^, in which case a conversion would be needed. To go from a value in milliradians^<sup>2</sup>^ to a value in degrees^<sup>2</sup>^, multiply by 0.180^<sup>2</sup>^ and divide by \p^<sup>2</sup>^. ; _item.name '<a href="#_diffrn_radiation.div_x_y_source">_diffrn_radiation.div_x_y_source</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_type.code float _item_units.code degrees_squared _item_default.value 0.0 save_ save_<A name="_diffrn_radiation.filter_edge">_diffrn_radiation.filter_edge</a> _item_description.description ; Absorption edge in \%Angstroms of the radiation filter used. ; _item.name '<a href="#_diffrn_radiation.filter_edge">_diffrn_radiation.filter_edge</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_filter_edge' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 loop_ _item_range.maximum _item_range.minimum . 0.0 0.0 0.0 _item_type.code float _item_units.code angstroms save_ save_<A name="_diffrn_radiation.inhomogeneity">_diffrn_radiation.inhomogeneity</a> _item_description.description ; Half-width in millimetres of the incident beam in the direction perpendicular to the diffraction plane. ; _item.name '<a href="#_diffrn_radiation.inhomogeneity">_diffrn_radiation.inhomogeneity</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_inhomogeneity' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 loop_ _item_range.maximum _item_range.minimum . 0.0 0.0 0.0 _item_type.code float _item_units.code millimetres save_ save_<A name="_diffrn_radiation.monochromator">_diffrn_radiation.monochromator</a> _item_description.description ; The method used to obtain monochromatic radiation. If a monochromator crystal is used, the material and the indices of the Bragg reflection are specified. ; _item.name '<a href="#_diffrn_radiation.monochromator">_diffrn_radiation.monochromator</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_monochromator' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code text loop_ _item_examples.case 'Zr filter' 'Ge 220' 'none' 'equatorial mounted graphite' save_ save_<A name="_diffrn_radiation.polarisn_norm">_diffrn_radiation.polarisn_norm</a> _item_description.description ; The angle in degrees, as viewed from the specimen, between the perpendicular component of the polarization and the diffraction plane. See _diffrn_radiation_polarisn_ratio. ; _item.name '<a href="#_diffrn_radiation.polarisn_norm">_diffrn_radiation.polarisn_norm</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_polarisn_norm' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 loop_ _item_range.maximum _item_range.minimum 90.0 90.0 90.0 -90.0 -90.0 -90.0 _item_type.code float _item_units.code degrees save_ save_<A name="_diffrn_radiation.polarisn_ratio">_diffrn_radiation.polarisn_ratio</a> _item_description.description ; Polarization ratio of the diffraction beam incident on the crystal. This is the ratio of the perpendicularly polarized to the parallel polarized component of the radiation. The perpendicular component forms an angle of <a href="#_diffrn_radiation.polarisn_norm">_diffrn_radiation.polarisn_norm</a> to the normal to the diffraction plane of the sample (i.e. the plane containing the incident and reflected beams). ; _item.name '<a href="#_diffrn_radiation.polarisn_ratio">_diffrn_radiation.polarisn_ratio</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_polarisn_ratio' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 loop_ _item_range.maximum _item_range.minimum . 0.0 0.0 0.0 _item_type.code float save_ save_<a name="_diffrn_radiation.polarizn_source_norm">_diffrn_radiation.polarizn_source_norm</a> _item_description.description ; The angle in degrees, as viewed from the specimen, between the normal to the polarization plane and the laboratory <b>Y</b> axis as defined in the <a href="#AXIS">AXIS</a> category. Note that this is the angle of polarization of the source photons, either directly from a synchrotron beamline or from a monochromater. This differs from the value of <a href="#_diffrn_radiation.polarisn_norm">_diffrn_radiation.polarisn_norm</a> in that <a href="#_diffrn_radiation.polarisn_norm">_diffrn_radiation.polarisn_norm</a> refers to polarization relative to the diffraction plane rather than to the laboratory axis system. In the case of an unpolarized beam, or a beam with true circular polarization, in which no single plane of polarization can be determined, the plane should be taken as the XZ plane and the angle as 0. See <a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a>. ; _item.name '<a href="#_diffrn_radiation.polarizn_source_norm">_diffrn_radiation.polarizn_source_norm</a>' _item.category_id diffrn_radiation _item.mandatory_code no loop_ _item_range.maximum _item_range.minimum 90.0 90.0 90.0 -90.0 -90.0 -90.0 _item_type.code float _item_units.code degrees _item_default.value 0.0 save_ save_<a name="_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a> _item_description.description ; (Ip-In)/(Ip+In), where Ip is the intensity (amplitude squared) of the electric vector in the plane of polarization and In is the intensity (amplitude squared) of the electric vector in the plane of the normal to the plane of polarization. In the case of an unpolarized beam, or a beam with true circular polarization, in which no single plane of polarization can be determined, the plane is to be taken as the XZ plane and the normal is parallel to the <b>Y</b> axis. Thus, if there was complete polarization in the plane of polarization, the value of <a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a> would be 1, and for an unpolarized beam <a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a> would have a value of 0. If the <b>X</b> axis has been chosen to lie in the plane of polarization, this definition will agree with the definition of 'MONOCHROMATOR' in the Denzo glossary, and values of near 1 should be expected for a bending-magnet source. However, if the <b>X</b> axis were perpendicular to the polarization plane (not a common choice), then the Denzo value would be the negative of <a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a>. See <a href="http://www.hkl-xray.com">http://www.hkl-xray.com</a> for information on Denzo and Otwinowski & Minor (1997). This differs both in the choice of ratio and choice of orientation from <a href="#_diffrn_radiation.polarisn_ratio">_diffrn_radiation.polarisn_ratio</a>, which, unlike <a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a>, is unbounded. Reference: Otwinowski, Z. & Minor, W. (1997). 'Processing of X-ray diffraction data collected in oscillation mode.' Methods Enzymol. 276, 307-326. ; _item.name '<a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a>' _item.category_id diffrn_radiation _item.mandatory_code no loop_ _item_range.maximum _item_range.minimum 1.0 1.0 1.0 -1.0 -1.0 -1.0 _item_type.code float save_ save_<A name="_diffrn_radiation.probe">_diffrn_radiation.probe</a> _item_description.description ; Name of the type of radiation used. It is strongly recommended that this be given so that the probe radiation is clearly specified. ; _item.name '<a href="#_diffrn_radiation.probe">_diffrn_radiation.probe</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_probe' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code line loop_ _item_enumeration.value 'X-ray' 'neutron' 'electron' 'gamma' save_ save_<A name="_diffrn_radiation.type">_diffrn_radiation.type</a> _item_description.description ; The nature of the radiation. This is typically a description of the X-ray wavelength in Siegbahn notation. ; _item.name '<a href="#_diffrn_radiation.type">_diffrn_radiation.type</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_type' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code line loop_ _item_examples.case 'CuK\a' 'Cu K\a~1~' 'Cu K-L~2,3~' 'white-beam' save_ save_<A name="_diffrn_radiation.xray_symbol">_diffrn_radiation.xray_symbol</a> _item_description.description ; The IUPAC symbol for the X-ray wavelength for the probe radiation. ; _item.name '<a href="#_diffrn_radiation.xray_symbol">_diffrn_radiation.xray_symbol</a>' _item.category_id diffrn_radiation _item.mandatory_code no _item_aliases.alias_name '_diffrn_radiation_xray_symbol' _item_aliases.dictionary cif_core.dic _item_aliases.version 2.0.1 _item_type.code line loop_ _item_enumeration.value _item_enumeration.detail 'K-L~3~' 'K\a~1~ in older Siegbahn notation' 'K-L~2~' 'K\a~2~ in older Siegbahn notation' 'K-M~3~' 'K\b~1~ in older Siegbahn notation' 'K-L~2,3~' 'use where K-L~3~ and K-L~2~ are not resolved' save_ save_<A name="_diffrn_radiation.wavelength_id">_diffrn_radiation.wavelength_id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn_radiation_wavelength.id">_diffrn_radiation_wavelength.id</a> in the DIFFRN_RADIATION_WAVELENGTH category. ; _item.name '<a href="#_diffrn_radiation.wavelength_id">_diffrn_radiation.wavelength_id</a>' _item.category_id diffrn_radiation _item.mandatory_code yes _item_type.code code save_ ################ # <a name="DIFFRN_REFLN">DIFFRN_REFLN</a> # ################ save_DIFFRN_REFLN _category.description ; This category redefinition has been added to extend the key of the standard <a href="#DIFFRN_REFLN">DIFFRN_REFLN</a> category. ; _category.id diffrn_refln _category.mandatory_code no _category_key.name '<a href="#_diffrn_refln.frame_id" >_diffrn_refln.frame_id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' save_ save_<a name="_diffrn_refln.frame_id" >_diffrn_refln.frame_id</a> _item_description.description ; This item is a pointer to <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> in the <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> category. ; _item.name '<a href="#_diffrn_refln.frame_id" >_diffrn_refln.frame_id</a>' _item.category_id diffrn_refln _item.mandatory_code yes _item_type.code code save_ ############### # <a name="DIFFRN_SCAN">DIFFRN_SCAN</a> # ############### save_DIFFRN_SCAN _category.description ; Data items in the <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a> category describe the parameters of one or more scans, relating axis positions to frames. ; _category.id diffrn_scan _category.mandatory_code no _category_key.name '<a href="#_diffrn_scan.id" >_diffrn_scan.id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; 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 <a href="#AXIS">AXIS</a> category. By making <a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a> and <a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a> keys of the <a href="#DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a> 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 <a href="#_diffrn_scan_axis.angle_range">_diffrn_scan_axis.angle_range</a> 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 <a href="#_diffrn_scan.integration_time" >_diffrn_scan.integration_time</a> and the values for <a href="#DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a>, and precisely for the given frame in the value for <a href="#_diffrn_scan_frame.integration_time" >_diffrn_scan_frame.integration_time</a> and the values for <a href="#DIFFRN_SCAN_FRAME_AXIS">DIFFRN_SCAN_FRAME_AXIS</a>. 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. ; ; <a href="#_diffrn_scan.id">_diffrn_scan.id</a> 1 <a href="#_diffrn_scan.date_start" >_diffrn_scan.date_start</a> '2001-11-18T03:26:42' <a href="#_diffrn_scan.date_end" >_diffrn_scan.date_end</a> '2001-11-18T03:36:45' <a href="#_diffrn_scan.integration_time" >_diffrn_scan.integration_time</a> 3.0 <a href="#_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a> mad_L2_000 <a href="#_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a> mad_L2_200 <a href="#_diffrn_scan.frames" >_diffrn_scan.frames</a> 201 loop_ <a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a> <a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a> <a href="#_diffrn_scan_axis.angle_start" >_diffrn_scan_axis.angle_start</a> <a href="#_diffrn_scan_axis.angle_range" >_diffrn_scan_axis.angle_range</a> <a href="#_diffrn_scan_axis.angle_increment" >_diffrn_scan_axis.angle_increment</a> <a href="#_diffrn_scan_axis.displacement_start" >_diffrn_scan_axis.displacement_start</a> <a href="#_diffrn_scan_axis.displacement_range" >_diffrn_scan_axis.displacement_range</a> <a href="#_diffrn_scan_axis.displacement_increment" >_diffrn_scan_axis.displacement_increment</a> 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 <a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a> 1 <a href="#_diffrn_scan_frame.date" >_diffrn_scan_frame.date</a> '2001-11-18T03:27:33' <a href="#_diffrn_scan_frame.integration_time" >_diffrn_scan_frame.integration_time</a> 3.0 <a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a> mad_L2_018 <a href="#_diffrn_scan_frame.frame_number" >_diffrn_scan_frame.frame_number</a> 18 loop_ <a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a> <a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a> <a href="#_diffrn_scan_frame_axis.angle">_diffrn_scan_frame_axis.angle</a> <a href="#_diffrn_scan_frame_axis.angle_increment" >_diffrn_scan_frame_axis.angle_increment</a> <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a> <a href="#_diffrn_scan_frame_axis.displacement_increment" >_diffrn_scan_frame_axis.displacement_increment</a> 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 <b>Z</b> 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 <b>Y</b> direction depends on the detector <b>Z</b> axis. This axis is called DETECTOR_Y. The axis for positioning the detector in the <b>X</b> direction depends on the detector <b>Y</b> axis (and therefore on the detector <b>Z</b> axis). This axis is called DETECTOR_X. This detector may be rotated around the <b>Y</b> 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 <b>X</b> 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 <a href="#DIFFRN_RADIATION">DIFFRN_RADIATION</a> loop_ <a href="#_diffrn_radiation.diffrn_id">_diffrn_radiation.diffrn_id</a> <a href="#_diffrn_radiation.wavelength_id">_diffrn_radiation.wavelength_id</a> <a href="#_diffrn_radiation.monochromator">_diffrn_radiation.monochromator</a> <a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a> <a href="#_diffrn_radiation.polarizn_source_norm">_diffrn_radiation.polarizn_source_norm</a> <a href="#_diffrn_radiation.div_x_source">_diffrn_radiation.div_x_source</a> <a href="#_diffrn_radiation.div_y_source">_diffrn_radiation.div_y_source</a> <a href="#_diffrn_radiation.div_x_y_source">_diffrn_radiation.div_x_y_source</a> 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 <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> loop_ <a href="#_diffrn_detector.diffrn_id">_diffrn_detector.diffrn_id</a> <a href="#_diffrn_detector.id">_diffrn_detector.id</a> <a href="#_diffrn_detector.type">_diffrn_detector.type</a> <a href="#_diffrn_detector.number_of_axes">_diffrn_detector.number_of_axes</a> P6MB MAR345-SN26 'MAR 345' 4 # category <a href="#DIFFRN_DETECTOR_AXIS">DIFFRN_DETECTOR_AXIS</a> loop_ <a href="#_diffrn_detector_axis.detector_id">_diffrn_detector_axis.detector_id</a> <a href="#_diffrn_detector_axis.axis_id">_diffrn_detector_axis.axis_id</a> MAR345-SN26 DETECTOR_X MAR345-SN26 DETECTOR_Y MAR345-SN26 DETECTOR_Z MAR345-SN26 DETECTOR_PITCH # category <a href="#DIFFRN_DETECTOR_ELEMENT">DIFFRN_DETECTOR_ELEMENT</a> loop_ <a href="#_diffrn_detector_element.id">_diffrn_detector_element.id</a> <a href="#_diffrn_detector_element.detector_id#">_diffrn_detector_element.detector_id</a> ELEMENT1 MAR345-SN26 # category <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> loop_ <a href="#_diffrn_data_frame.id">_diffrn_data_frame.id</a> <a href="#_diffrn_data_frame.detector_element_id">_diffrn_data_frame.detector_element_id</a> <a href="#_diffrn_data_frame.array_id">_diffrn_data_frame.array_id</a> <a href="#_diffrn_data_frame.binary_id">_diffrn_data_frame.binary_id</a> FRAME1 ELEMENT1 ARRAY1 1 # category <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> loop_ <a href="#_diffrn_measurement.diffrn_id">_diffrn_measurement.diffrn_id</a> <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> <a href="#_diffrn_measurement.number_of_axes">_diffrn_measurement.number_of_axes</a> <a href="#_diffrn_measurement.method">_diffrn_measurement.method</a> P6MB GONIOMETER 3 rotation # category <a href="#DIFFRN_MEASUREMENT_AXIS">DIFFRN_MEASUREMENT_AXIS</a> loop_ <a href="#_diffrn_measurement_axis.measurement_id">_diffrn_measurement_axis.measurement_id</a> <a href="#_diffrn_measurement_axis.axis_id">_diffrn_measurement_axis.axis_id</a> GONIOMETER GONIOMETER_PHI GONIOMETER GONIOMETER_KAPPA GONIOMETER GONIOMETER_OMEGA # category <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a> loop_ <a href="#_diffrn_scan.id" >_diffrn_scan.id</a> <a href="#_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a> <a href="#_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a> <a href="#_diffrn_scan.frames" >_diffrn_scan.frames</a> SCAN1 FRAME1 FRAME1 1 # category <a href="#DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a> loop_ <a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a> <a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a> <a href="#_diffrn_scan_axis.angle_start" >_diffrn_scan_axis.angle_start</a> <a href="#_diffrn_scan_axis.angle_range" >_diffrn_scan_axis.angle_range</a> <a href="#_diffrn_scan_axis.angle_increment" >_diffrn_scan_axis.angle_increment</a> <a href="#_diffrn_scan_axis.displacement_start" >_diffrn_scan_axis.displacement_start</a> <a href="#_diffrn_scan_axis.displacement_range" >_diffrn_scan_axis.displacement_range</a> <a href="#_diffrn_scan_axis.displacement_increment" >_diffrn_scan_axis.displacement_increment</a> 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 <a href="#DIFFRN_SCAN_FRAME">DIFFRN_SCAN_FRAME</a> loop_ <a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a> <a href="#_diffrn_scan_frame.frame_number" >_diffrn_scan_frame.frame_number</a> <a href="#_diffrn_scan_frame.integration_time" >_diffrn_scan_frame.integration_time</a> <a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a> <a href="#_diffrn_scan_frame.date" >_diffrn_scan_frame.date</a> FRAME1 1 20.0 SCAN1 1997-12-04T10:23:48 # category <a href="#DIFFRN_SCAN_FRAME_AXIS">DIFFRN_SCAN_FRAME_AXIS</a> loop_ <a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a> <a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a> <a href="#_diffrn_scan_frame_axis.angle" >_diffrn_scan_frame_axis.angle</a> <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a> 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 <a href="#AXIS">AXIS</a> loop_ <a href="#_axis.id">_axis.id</a> <a href="#_axis.type">_axis.type</a> <a href="#_axis.equipment">_axis.equipment</a> <a href="#_axis.depends_on">_axis.depends_on</a> <a href="#_axis.vector[1]">_axis.vector[1]</a> <a href="#_axis.vector[2]">_axis.vector[2]</a> <a href="#_axis.vector[3]">_axis.vector[3]</a> <a href="#_axis.offset[1]">_axis.offset[1]</a> <a href="#_axis.offset[2]">_axis.offset[2]</a> <a href="#_axis.offset[3]">_axis.offset[3]</a> 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 <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> loop_ <a href="#_array_structure_list.array_id">_array_structure_list.array_id</a> <a href="#_array_structure_list.index">_array_structure_list.index</a> <a href="#_array_structure_list.dimension">_array_structure_list.dimension</a> <a href="#_array_structure_list.precedence">_array_structure_list.precedence</a> <a href="#_array_structure_list.direction">_array_structure_list.direction</a> <a href="#_array_structure_list.axis_set_id">_array_structure_list.axis_set_id</a> ARRAY1 1 2300 1 increasing ELEMENT_X ARRAY1 2 2300 2 increasing ELEMENT_Y # category <a href="#ARRAY_STRUCTURE_LIST_AXIS">ARRAY_STRUCTURE_LIST_AXIS</a> loop_ <a href="#_array_structure_list_axis.axis_set_id">_array_structure_list_axis.axis_set_id</a> <a href="#_array_structure_list_axis.axis_id">_array_structure_list_axis.axis_id</a> <a href="#_array_structure_list_axis.displacement">_array_structure_list_axis.displacement</a> <a href="#_array_structure_list_axis.displacement_increment">_array_structure_list_axis.displacement_increment</a> ELEMENT_X ELEMENT_X 0.075 0.150 ELEMENT_Y ELEMENT_Y 0.075 0.150 # category <a href="#ARRAY_ELEMENT_SIZE">ARRAY_ELEMENT_SIZE</a> loop_ <a href="#_array_element_size.array_id">_array_element_size.array_id</a> <a href="#_array_element_size.index">_array_element_size.index</a> <a href="#_array_element_size.index">_array_element_size.size</a> ARRAY1 1 150e-6 ARRAY1 2 150e-6 # category <a href="#ARRAY_INTENSITIES">ARRAY_INTENSITIES</a> loop_ <a href="#_array_intensities.array_id">_array_intensities.array_id</a> <a href="#_array_intensities.binary_id">_array_intensities.binary_id</a> <a href="#_array_intensities.linearity">_array_intensities.linearity</a> <a href="#_array_intensities.gain">_array_intensities.gain</a> <a href="#_array_intensities.gain_esd">_array_intensities.gain_esd</a> <a href="#_array_intensities.overload">_array_intensities.overload</a> <a href="#_array_intensities.undefined_value">_array_intensities.undefined_value</a> ARRAY1 1 linear 1.15 0.2 240000 0 # category <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> loop_ <a href="#_array_structure.id">_array_structure.id</a> <a href="#_array_structure.encoding_type">_array_structure.encoding_type</a> <a href="#_array_structure.compression_type">_array_structure.compression_type</a> <a href="#_array_structure.byte_order">_array_structure.byte_order</a> ARRAY1 "signed 32-bit integer" packed little_endian # category <a href="#ARRAY_DATA">ARRAY_DATA</a> loop_ <a href="#_array_data.array_id">_array_data.array_id</a> <a href="#_array_data.binary_id">_array_data.binary_id</a> <a href="#_array_data.data">_array_data.data</a> ARRAY1 1 ; --CIF-BINARY-FORMAT-SECTION-- Content-Type: application/octet-stream; conversions="<b>X</b>-CBF_PACKED" Content-Transfer-Encoding: BASE64 <b>X</b>-Binary-Size: 3801324 <b>X</b>-Binary-ID: 1 <b>X</b>-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 <b>Z</b> 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 <b>Y</b> direction depends on the detector <b>Z</b> axis. This axis is called DETECTOR_Y. The axis for positioning the detector in the <b>X</b> direction depends on the detector <b>Y</b> axis (and therefore on the detector <b>Z</b> axis). This axis is called DETECTOR_X. This detector may be rotated around the <b>Y</b> 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 <a href="#DIFFRN_RADIATION">DIFFRN_RADIATION</a> loop_ <a href="#_diffrn_radiation.diffrn_id">_diffrn_radiation.diffrn_id</a> <a href="#_diffrn_radiation.wavelength_id">_diffrn_radiation.wavelength_id</a> <a href="#_diffrn_radiation.monochromator">_diffrn_radiation.monochromator</a> <a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a> <a href="#_diffrn_radiation.polarizn_source_norm">_diffrn_radiation.polarizn_source_norm</a> <a href="#_diffrn_radiation.div_x_source">_diffrn_radiation.div_x_source</a> <a href="#_diffrn_radiation.div_y_source">_diffrn_radiation.div_y_source</a> <a href="#_diffrn_radiation.div_x_y_source">_diffrn_radiation.div_x_y_source</a> 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 <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> loop_ <a href="#_diffrn_detector.diffrn_id">_diffrn_detector.diffrn_id</a> <a href="#_diffrn_detector.id">_diffrn_detector.id</a> <a href="#_diffrn_detector.type">_diffrn_detector.type</a> <a href="#_diffrn_detector.number_of_axes">_diffrn_detector.number_of_axes</a> P6MB MAR345-SN26 'MAR 345' 4 # category <a href="#DIFFRN_DETECTOR_AXIS">DIFFRN_DETECTOR_AXIS</a> loop_ <a href="#_diffrn_detector_axis.detector_id">_diffrn_detector_axis.detector_id</a> <a href="#_diffrn_detector_axis.axis_id">_diffrn_detector_axis.axis_id</a> MAR345-SN26 DETECTOR_X MAR345-SN26 DETECTOR_Y MAR345-SN26 DETECTOR_Z MAR345-SN26 DETECTOR_PITCH # category <a href="#DIFFRN_DETECTOR_ELEMENT">DIFFRN_DETECTOR_ELEMENT</a> loop_ <a href="#_diffrn_detector_element.id">_diffrn_detector_element.id</a> <a href="#_diffrn_detector_element.detector_id#">_diffrn_detector_element.detector_id</a> ELEMENT1 MAR345-SN26 # category <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> loop_ <a href="#_diffrn_data_frame.id">_diffrn_data_frame.id</a> <a href="#_diffrn_data_frame.detector_element_id">_diffrn_data_frame.detector_element_id</a> <a href="#_diffrn_data_frame.array_id">_diffrn_data_frame.array_id</a> <a href="#_diffrn_data_frame.binary_id">_diffrn_data_frame.binary_id</a> FRAME1 ELEMENT1 ARRAY1 1 # category <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> loop_ <a href="#_diffrn_measurement.diffrn_id">_diffrn_measurement.diffrn_id</a> <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> <a href="#_diffrn_measurement.number_of_axes">_diffrn_measurement.number_of_axes</a> <a href="#_diffrn_measurement.method">_diffrn_measurement.method</a> P6MB GONIOMETER 3 rotation # category <a href="#DIFFRN_MEASUREMENT_AXIS">DIFFRN_MEASUREMENT_AXIS</a> loop_ <a href="#_diffrn_measurement_axis.measurement_id">_diffrn_measurement_axis.measurement_id</a> <a href="#_diffrn_measurement_axis.axis_id">_diffrn_measurement_axis.axis_id</a> GONIOMETER GONIOMETER_PHI GONIOMETER GONIOMETER_KAPPA GONIOMETER GONIOMETER_OMEGA # category <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a> loop_ <a href="#_diffrn_scan.id" >_diffrn_scan.id</a> <a href="#_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a> <a href="#_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a> <a href="#_diffrn_scan.frames" >_diffrn_scan.frames</a> SCAN1 FRAME1 FRAME1 1 # category <a href="#DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a> loop_ <a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a> <a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a> <a href="#_diffrn_scan_axis.angle_start" >_diffrn_scan_axis.angle_start</a> <a href="#_diffrn_scan_axis.angle_range" >_diffrn_scan_axis.angle_range</a> <a href="#_diffrn_scan_axis.angle_increment" >_diffrn_scan_axis.angle_increment</a> <a href="#_diffrn_scan_axis.displacement_start" >_diffrn_scan_axis.displacement_start</a> <a href="#_diffrn_scan_axis.displacement_range" >_diffrn_scan_axis.displacement_range</a> <a href="#_diffrn_scan_axis.displacement_increment" >_diffrn_scan_axis.displacement_increment</a> 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 <a href="#DIFFRN_SCAN_FRAME">DIFFRN_SCAN_FRAME</a> loop_ <a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a> <a href="#_diffrn_scan_frame.frame_number" >_diffrn_scan_frame.frame_number</a> <a href="#_diffrn_scan_frame.integration_time" >_diffrn_scan_frame.integration_time</a> <a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a> <a href="#_diffrn_scan_frame.date" >_diffrn_scan_frame.date</a> FRAME1 1 20.0 SCAN1 1997-12-04T10:23:48 # category <a href="#DIFFRN_SCAN_FRAME_AXIS">DIFFRN_SCAN_FRAME_AXIS</a> loop_ <a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a> <a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a> <a href="#_diffrn_scan_frame_axis.angle" >_diffrn_scan_frame_axis.angle</a> <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a> 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 <a href="#AXIS">AXIS</a> loop_ <a href="#_axis.id">_axis.id</a> <a href="#_axis.type">_axis.type</a> <a href="#_axis.equipment">_axis.equipment</a> <a href="#_axis.depends_on">_axis.depends_on</a> <a href="#_axis.vector[1]">_axis.vector[1]</a> <a href="#_axis.vector[2]">_axis.vector[2]</a> <a href="#_axis.vector[3]">_axis.vector[3]</a> <a href="#_axis.offset[1]">_axis.offset[1]</a> <a href="#_axis.offset[2]">_axis.offset[2]</a> <a href="#_axis.offset[3]">_axis.offset[3]</a> 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 <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a> loop_ <a href="#_array_structure_list.array_id">_array_structure_list.array_id</a> <a href="#_array_structure_list.index">_array_structure_list.index</a> <a href="#_array_structure_list.dimension">_array_structure_list.dimension</a> <a href="#_array_structure_list.precedence">_array_structure_list.precedence</a> <a href="#_array_structure_list.direction">_array_structure_list.direction</a> <a href="#_array_structure_list.axis_set_id">_array_structure_list.axis_set_id</a> ARRAY1 1 8309900 1 increasing ELEMENT_SPIRAL # category <a href="#ARRAY_STRUCTURE_LIST_AXIS">ARRAY_STRUCTURE_LIST_AXIS</a> loop_ <a href="#_array_structure_list_axis.axis_set_id">_array_structure_list_axis.axis_set_id</a> <a href="#_array_structure_list_axis.axis_id">_array_structure_list_axis.axis_id</a> <a href="#_array_structure_list_axis.angle">_array_structure_list_axis.angle</a> <a href="#_array_structure_list_axis.displacement">_array_structure_list_axis.displacement</a> <a href="#_array_structure_list_axis.angular_pitch">_array_structure_list_axis.angular_pitch</a> <a href="#_array_structure_list_axis.radial_pitch">_array_structure_list_axis.radial_pitch</a> ELEMENT_SPIRAL ELEMENT_ROT 0 . 0.075 . ELEMENT_SPIRAL ELEMENT_RAD . 172.5 . -0.150 # category <a href="#ARRAY_ELEMENT_SIZE">ARRAY_ELEMENT_SIZE</a> # the actual pixels are 0.075 by 0.150 mm # We give the coarser dimension here. loop_ <a href="#_array_element_size.array_id">_array_element_size.array_id</a> <a href="#_array_element_size.index">_array_element_size.index</a> <a href="#_array_element_size.index">_array_element_size.size</a> ARRAY1 1 150e-6 # category <a href="#ARRAY_INTENSITIES">ARRAY_INTENSITIES</a> loop_ <a href="#_array_intensities.array_id">_array_intensities.array_id</a> <a href="#_array_intensities.binary_id">_array_intensities.binary_id</a> <a href="#_array_intensities.linearity">_array_intensities.linearity</a> <a href="#_array_intensities.gain">_array_intensities.gain</a> <a href="#_array_intensities.gain_esd">_array_intensities.gain_esd</a> <a href="#_array_intensities.overload">_array_intensities.overload</a> <a href="#_array_intensities.undefined_value">_array_intensities.undefined_value</a> ARRAY1 1 linear 1.15 0.2 240000 0 # category <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> loop_ <a href="#_array_structure.id">_array_structure.id</a> <a href="#_array_structure.encoding_type">_array_structure.encoding_type</a> <a href="#_array_structure.compression_type">_array_structure.compression_type</a> <a href="#_array_structure.byte_order">_array_structure.byte_order</a> ARRAY1 "signed 32-bit integer" packed little_endian # category <a href="#ARRAY_DATA">ARRAY_DATA</a> loop_ <a href="#_array_data.array_id">_array_data.array_id</a> <a href="#_array_data.binary_id">_array_data.binary_id</a> <a href="#_array_data.data">_array_data.data</a> ARRAY1 1 ; --CIF-BINARY-FORMAT-SECTION-- Content-Type: application/octet-stream; conversions="<b>X</b>-CBF_PACKED" Content-Transfer-Encoding: BASE64 <b>X</b>-Binary-Size: 3801324 <b>X</b>-Binary-ID: 1 <b>X</b>-Binary-Element-Type: "signed 32-bit integer" Content-MD5: 07lZFvF+aOcW85IN7usl8A== AABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZBQSr1sKNBOeOe9HITdMdDUnbq7bg ... 8REo6TtBrxJ1vKqAvx9YDMD6J18Qg83OMr/tgssjMIJMXATDsZobL90AEXc4KigE --CIF-BINARY-FORMAT-SECTION---- ; ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_diffrn_scan.id" >_diffrn_scan.id</a> _item_description.description ; The value of <a href="#_diffrn_scan.id" >_diffrn_scan.id</a> uniquely identifies each scan. The identifier is used to tie together all the information about the scan. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_diffrn_scan.id" >_diffrn_scan.id</a>' diffrn_scan yes '<a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a>' diffrn_scan_axis yes '<a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a>' diffrn_scan_frame yes _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a>' '<a href="#_diffrn_scan.id" >_diffrn_scan.id</a>' '<a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a>' '<a href="#_diffrn_scan.id" >_diffrn_scan.id</a>' save_ save_<a name="_diffrn_scan.date_end">_diffrn_scan.date_end</a> _item_description.description ; The date and time of the end of the scan. Note that this may be an estimate generated during the scan, before the precise time of the end of the scan is known. ; _item.name '<a href="#_diffrn_scan.date_end">_diffrn_scan.date_end</a>' _item.category_id diffrn_scan _item.mandatory_code no _item_type.code yyyy-mm-dd save_ save_<a name="_diffrn_scan.date_start">_diffrn_scan.date_start</a> _item_description.description ; The date and time of the start of the scan. ; _item.name '<a href="#_diffrn_scan.date_start">_diffrn_scan.date_start</a>' _item.category_id diffrn_scan _item.mandatory_code no _item_type.code yyyy-mm-dd save_ save_<a name="_diffrn_scan.integration_time" >_diffrn_scan.integration_time</a> _item_description.description ; Approximate average time in seconds to integrate each step of the scan. The precise time for integration of each particular step must be provided in <a href="#_diffrn_scan_frame.integration_time" >_diffrn_scan_frame.integration_time</a>, even if all steps have the same integration time. ; _item.name '<a href="#_diffrn_scan.integration_time" >_diffrn_scan.integration_time</a>' _item.category_id diffrn_scan _item.mandatory_code no _item_type.code float _item_units.code 'seconds' loop_ _item_range.maximum _item_range.minimum . 0.0 save_ save_<a name="_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a> _item_description.description ; The value of this data item is the identifier of the first frame in the scan. This item is a pointer to <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> in the <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> category. ; _item.name '<a href="#_diffrn_scan.frame_id_start" >_diffrn_scan.frame_id_start</a>' _item.category_id diffrn_scan _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a> _item_description.description ; The value of this data item is the identifier of the last frame in the scan. This item is a pointer to <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> in the <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> category. ; _item.name '<a href="#_diffrn_scan.frame_id_end" >_diffrn_scan.frame_id_end</a>' _item.category_id diffrn_scan _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_scan.frames" >_diffrn_scan.frames</a> _item_description.description ; The value of this data item is the number of frames in the scan. ; _item.name '<a href="#_diffrn_scan.frames" >_diffrn_scan.frames</a>' _item.category_id diffrn_scan _item.mandatory_code no _item_type.code int loop_ _item_range.maximum _item_range.minimum . 1 1 1 save_ #################### # <a name="DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a> # #################### save_DIFFRN_SCAN_AXIS _category.description ; Data items in the <a href="#DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a> category describe the settings of axes for particular scans. Unspecified axes are assumed to be at their zero points. ; _category.id diffrn_scan_axis _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a>' '<a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' save_ save_<a name="_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a> _item_description.description ; The value of this data item is the identifier of the scan for which axis settings are being specified. Multiple axes may be specified for the same value of <a href="#_diffrn_scan.id" >_diffrn_scan.id</a>. This item is a pointer to <a href="#_diffrn_scan.id" >_diffrn_scan.id</a> in the <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a> category. ; _item.name '<a href="#_diffrn_scan_axis.scan_id" >_diffrn_scan_axis.scan_id</a>' _item.category_id diffrn_scan_axis _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a> _item_description.description ; The value of this data item is the identifier of one of the axes for the scan for which settings are being specified. Multiple axes may be specified for the same value of <a href="#_diffrn_scan.id" >_diffrn_scan.id</a>. This item is a pointer to <a href="#_axis.id" >_axis.id</a> in the AXIS category. ; _item.name '<a href="#_diffrn_scan_axis.axis_id" >_diffrn_scan_axis.axis_id</a>' _item.category_id diffrn_scan_axis _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_scan_axis.angle_start" >_diffrn_scan_axis.angle_start</a> _item_description.description ; The starting position for the specified axis in degrees. ; _item.name '<a href="#_diffrn_scan_axis.angle_start" >_diffrn_scan_axis.angle_start</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_axis.angle_range" >_diffrn_scan_axis.angle_range</a> _item_description.description ; The range from the starting position for the specified axis in degrees. ; _item.name '<a href="#_diffrn_scan_axis.angle_range" >_diffrn_scan_axis.angle_range</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_axis.angle_increment" >_diffrn_scan_axis.angle_increment</a> _item_description.description ; The increment for each step for the specified axis in degrees. In general, this will agree with <a href="#_diffrn_scan_frame_axis.angle_increment" >_diffrn_scan_frame_axis.angle_increment</a>. The sum of the values of <a href="#_diffrn_scan_frame_axis.angle">_diffrn_scan_frame_axis.angle</a> and <a href="#_diffrn_scan_frame_axis.angle_increment">_diffrn_scan_frame_axis.angle_increment</a> is the angular setting of the axis at the end of the integration time for a given frame. If the individual frame values vary, then the value of <a href="#_diffrn_scan_axis.angle_increment">_diffrn_scan_axis.angle_increment</a> will be representative of the ensemble of values of <a href="#_diffrn_scan_frame_axis.angle_increment">_diffrn_scan_frame_axis.angle_increment</a> (e.g. the mean). ; _item.name '<a href="#_diffrn_scan_axis.angle_increment" >_diffrn_scan_axis.angle_increment</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_axis.angle_rstrt_incr">_diffrn_scan_axis.angle_rstrt_incr</a> _item_description.description ; The increment after each step for the specified axis in degrees. In general, this will agree with <a href="#_diffrn_scan_frame_axis.angle_rstrt_incr" >_diffrn_scan_frame_axis.angle_rstrt_incr</a>. The sum of the values of <a href="#_diffrn_scan_frame_axis.angle" >_diffrn_scan_frame_axis.angle</a>, <a href="#_diffrn_scan_frame_axis.angle_increment" >_diffrn_scan_frame_axis.angle_increment</a> and <a href="#_diffrn_scan_frame_axis.angle_rstrt_incr" >_diffrn_scan_frame_axis.angle_rstrt_incr</a> is the angular setting of the axis at the start of the integration time for the next frame relative to a given frame and should equal <a href="#_diffrn_scan_frame_axis.angle" >_diffrn_scan_frame_axis.angle</a> for this next frame. If the individual frame values vary, then the value of <a href="#_diffrn_scan_axis.angle_rstrt_incr" >_diffrn_scan_axis.angle_rstrt_incr</a> will be representative of the ensemble of values of <a href="#_diffrn_scan_frame_axis.angle_rstrt_incr" >_diffrn_scan_frame_axis.angle_rstrt_incr</a> (e.g. the mean). ; _item.name '<a href="#_diffrn_scan_axis.angle_rstrt_incr">_diffrn_scan_axis.angle_rstrt_incr</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_axis.displacement_start" >_diffrn_scan_axis.displacement_start</a> _item_description.description ; The starting position for the specified axis in millimetres. ; _item.name '<a href="#_diffrn_scan_axis.displacement_start" >_diffrn_scan_axis.displacement_start</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_diffrn_scan_axis.displacement_range" >_diffrn_scan_axis.displacement_range</a> _item_description.description ; The range from the starting position for the specified axis in millimetres. ; _item.name '<a href="#_diffrn_scan_axis.displacement_range" >_diffrn_scan_axis.displacement_range</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_diffrn_scan_axis.displacement_increment" >_diffrn_scan_axis.displacement_increment</a> _item_description.description ; The increment for each step for the specified axis in millimetres. In general, this will agree with <a href="#_diffrn_scan_frame_axis.displacement_increment">_diffrn_scan_frame_axis.displacement_increment</a>. The sum of the values of <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a> and <a href="#_diffrn_scan_frame_axis.displacement_increment" >_diffrn_scan_frame_axis.displacement_increment</a> is the angular setting of the axis at the end of the integration time for a given frame. If the individual frame values vary, then the value of <a href="#_diffrn_scan_axis.displacement_increment" >_diffrn_scan_axis.displacement_increment</a> will be representative of the ensemble of values of <a href="#_diffrn_scan_frame_axis.displacement_increment" >_diffrn_scan_frame_axis.displacement_increment</a> (e.g. the mean). ; _item.name '<a href="#_diffrn_scan_axis.displacement_increment" >_diffrn_scan_axis.displacement_increment</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_diffrn_scan_axis.displacement_rstrt_incr">_diffrn_scan_axis.displacement_rstrt_incr</a> _item_description.description ; The increment for each step for the specified axis in millimetres. In general, this will agree with <a href="#_diffrn_scan_frame_axis.displacement_rstrt_incr">_diffrn_scan_frame_axis.displacement_rstrt_incr</a>. The sum of the values of <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a>, <a href="#_diffrn_scan_frame_axis.displacement_increment" >_diffrn_scan_frame_axis.displacement_increment</a> and <a href="#_diffrn_scan_frame_axis.displacement_rstrt_incr" >_diffrn_scan_frame_axis.displacement_rstrt_incr</a> is the angular setting of the axis at the start of the integration time for the next frame relative to a given frame and should equal <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a> for this next frame. If the individual frame values vary, then the value of <a href="#_diffrn_scan_axis.displacement_rstrt_incr" >_diffrn_scan_axis.displacement_rstrt_incr</a> will be representative of the ensemble of values of <a href="#_diffrn_scan_frame_axis.displacement_rstrt_incr" >_diffrn_scan_frame_axis.displacement_rstrt_incr</a> (e.g. the mean). ; _item.name '<a href="#_diffrn_scan_axis.displacement_rstrt_incr">_diffrn_scan_axis.displacement_rstrt_incr</a>' _item.category_id diffrn_scan_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_diffrn_scan_axis.reference_angle">_diffrn_scan_axis.reference_angle</a> _item_description.description ; The setting of the specified axis in degrees against which measurements of the reference beam center and reference detector distance should be made. In general, this will agree with <a href="#_diffrn_scan_frame_axis.reference_angle">_diffrn_scan_frame_axis.reference_angle</a>. If the individual frame values vary, then the value of <a href="#_diffrn_scan_axis.reference_angle">_diffrn_scan_axis.reference_angle</a> will be representative of the ensemble of values of <a href="#_diffrn_scan_frame_axis.reference_angle">_diffrn_scan_frame_axis.reference_angle</a> (e.g. the mean). If not specified, the value defaults to zero. ; _item.name '<a href="#_diffrn_scan_axis.reference_angle">_diffrn_scan_axis.reference_angle</a>' _item.category_id diffrn_scan_axis _item.mandatory_code implicit _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_axis.reference_displacement">_diffrn_scan_axis.reference_displacement</a> _item_description.description ; The setting of the specified axis in millimetres against which measurements of the reference beam center and reference detector distance should be made. In general, this will agree with <a href="#_diffrn_scan_frame_axis.reference_displacement">_diffrn_scan_frame_axis.reference_displacement</a>. If the individual frame values vary, then the value of <a href="#_diffrn_scan_axis.reference_displacement">_diffrn_scan_axis.reference_displacement</a> will be representative of the ensemble of values of <a href="#_diffrn_scan_frame_axis.reference_displacement">_diffrn_scan_frame_axis.reference_displacement</a> (e.g. the mean). If not specified, the value defaults to to the value of <a href="#">_diffrn_scan_axis.displacement</a>. ; _item.name '<a href="#_diffrn_scan_axis.reference_displacement">_diffrn_scan_axis.reference_displacement</a>' _item.category_id diffrn_scan_axis _item.mandatory_code implicit _item_type.code float _item_units.code 'millimetres' save_ ##################### # <a name="DIFFRN_SCAN_FRAME">DIFFRN_SCAN_FRAME</a> # ##################### save_DIFFRN_SCAN_FRAME _category.description ; Data items in the <a href="#DIFFRN_SCAN_FRAME">DIFFRN_SCAN_FRAME</a> category describe the relationships of particular frames to scans. ; _category.id diffrn_scan_frame _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a>' '<a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' save_ save_<a name="_diffrn_scan_frame.date">_diffrn_scan_frame.date</a> _item_description.description ; The date and time of the start of the frame being scanned. ; _item.name '<a href="#_diffrn_scan_frame.date">_diffrn_scan_frame.date</a>' _item.category_id diffrn_scan_frame _item.mandatory_code no _item_type.code yyyy-mm-dd save_ save_<a name="_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a> _item_description.description ; The value of this data item is the identifier of the frame being examined. This item is a pointer to <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> in the <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> category. ; _item.name '<a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a>' _item.category_id diffrn_scan_frame _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_scan_frame.frame_number" >_diffrn_scan_frame.frame_number</a> _item_description.description ; The value of this data item is the number of the frame within the scan, starting with 1. It is not necessarily the same as the value of <a href="#_diffrn_scan_frame.frame_id">_diffrn_scan_frame.frame_id</a>, but it may be. ; _item.name '<a href="#_diffrn_scan_frame.frame_number" >_diffrn_scan_frame.frame_number</a>' _item.category_id diffrn_scan_frame _item.mandatory_code no _item_type.code int loop_ _item_range.maximum _item_range.minimum . 0 0 0 save_ save_<a name="_diffrn_scan_frame.integration_time">_diffrn_scan_frame.integration_time</a> _item_description.description ; The time in seconds to integrate this step of the scan. This should be the precise time of integration of each particular frame. The value of this data item should be given explicitly for each frame and not inferred from the value of <a href="#_diffrn_scan.integration_time" >_diffrn_scan.integration_time</a>. ; _item.name '<a href="#_diffrn_scan_frame.integration_time" >_diffrn_scan_frame.integration_time</a>' _item.category_id diffrn_scan_frame _item.mandatory_code yes _item_type.code float _item_units.code 'seconds' loop_ _item_range.maximum _item_range.minimum . 0.0 save_ save_<a name="_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a> _item_description.description ; The value of <a href="#_diffrn_scan_frame.scan_id" >_diffrn_scan_frame.scan_id</a> identifies the scan containing this frame. This item is a pointer to <a href="#_diffrn_scan.id" >_diffrn_scan.id</a> in the <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a> category. ; _item.name '<a href="#_diffrn_scan_frame.scan_id">_diffrn_scan_frame.scan_id</a>' _item.category_id diffrn_scan_frame _item.mandatory_code yes _item_type.code code save_ ########################## # <a name="DIFFRN_SCAN_FRAME_AXIS">DIFFRN_SCAN_FRAME_AXIS</a> # ########################## save_DIFFRN_SCAN_FRAME_AXIS _category.description ; Data items in the <a href="#DIFFRN_SCAN_FRAME_AXIS">DIFFRN_SCAN_FRAME_AXIS</a> category describe the settings of axes for particular frames. Unspecified axes are assumed to be at their zero points. If, for any given frame, nonzero values apply for any of the data items in this category, those values should be given explicitly in this category and not simply inferred from values in <a href="#DIFFRN_SCAN_AXIS">DIFFRN_SCAN_AXIS</a>. ; _category.id diffrn_scan_frame_axis _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a>' '<a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a>' loop_ _category_group.id 'inclusive_group' 'diffrn_group' save_ save_<a name="_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a> _item_description.description ; The value of this data item is the identifier of one of the axes for the frame for which settings are being specified. Multiple axes may be specified for the same value of <a href="#_diffrn_scan_frame.id" >_diffrn_scan_frame.frame_id</a>. This item is a pointer to <a href="#_axis.id" >_axis.id</a> in the <a href="#AXIS">AXIS</a> category. ; _item.name '<a href="#_diffrn_scan_frame_axis.axis_id" >_diffrn_scan_frame_axis.axis_id</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_scan_frame_axis.angle" >_diffrn_scan_frame_axis.angle</a> _item_description.description ; The setting of the specified axis in degrees for this frame. This is the setting at the start of the integration time. ; _item.name '<a href="#_diffrn_scan_frame_axis.angle" >_diffrn_scan_frame_axis.angle</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_frame_axis.angle_increment">_diffrn_scan_frame_axis.angle_increment</a> _item_description.description ; The increment for this frame for the angular setting of the specified axis in degrees. The sum of the values of <a href="#_diffrn_scan_frame_axis.angle">_diffrn_scan_frame_axis.angle</a> and <a href="#_diffrn_scan_frame_axis.angle_increment">_diffrn_scan_frame_axis.angle_increment</a> is the angular setting of the axis at the end of the integration time for this frame. ; _item.name '<a href="#_diffrn_scan_frame_axis.angle_increment">_diffrn_scan_frame_axis.angle_increment</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_frame_axis.angle_rstrt_incr">_diffrn_scan_frame_axis.angle_rstrt_incr</a> _item_description.description ; The increment after this frame for the angular setting of the specified axis in degrees. The sum of the values of <a href="#_diffrn_scan_frame_axis.angle">_diffrn_scan_frame_axis.angle</a>, <a href="#_diffrn_scan_frame_axis.angle_increment">_diffrn_scan_frame_axis.angle_increment</a> and <a href="#_diffrn_scan_frame_axis.angle_rstrt_incr">_diffrn_scan_frame_axis.angle_rstrt_incr</a> is the angular setting of the axis at the start of the integration time for the next frame and should equal <a href="#_diffrn_scan_frame_axis.angle">_diffrn_scan_frame_axis.angle</a> for this next frame. ; _item.name '<a href="#_diffrn_scan_frame_axis.angle_rstrt_incr">_diffrn_scan_frame_axis.angle_rstrt_incr</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a> _item_description.description ; The setting of the specified axis in millimetres for this frame. This is the setting at the start of the integration time. ; _item.name '<a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_diffrn_scan_frame_axis.displacement_increment">_diffrn_scan_frame_axis.displacement_increment</a> _item_description.description ; The increment for this frame for the displacement setting of the specified axis in millimetres. The sum of the values of <a href="#_diffrn_scan_frame_axis.displacement">_diffrn_scan_frame_axis.displacement</a> and <a href="#_diffrn_scan_frame_axis.displacement_increment">_diffrn_scan_frame_axis.displacement_increment</a> is the angular setting of the axis at the end of the integration time for this frame. ; _item.name '<a href="#_diffrn_scan_frame_axis.displacement_increment">_diffrn_scan_frame_axis.displacement_increment</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_diffrn_scan_frame_axis.displacement_rstrt_incr">_diffrn_scan_frame_axis.displacement_rstrt_incr</a> _item_description.description ; The increment for this frame for the displacement setting of the specified axis in millimetres. The sum of the values of <a href="#_diffrn_scan_frame_axis.displacement">_diffrn_scan_frame_axis.displacement</a>, <a href="#_diffrn_scan_frame_axis.displacement_increment">_diffrn_scan_frame_axis.displacement_increment</a> and <a href="#_diffrn_scan_frame_axis.displacement_rstrt_incr">_diffrn_scan_frame_axis.displacement_rstrt_incr</a> is the angular setting of the axis at the start of the integration time for the next frame and should equal <a href="#_diffrn_scan_frame_axis.displacement">_diffrn_scan_frame_axis.displacement</a> for this next frame. ; _item.name '<a href="#_diffrn_scan_frame_axis.displacement_rstrt_incr">_diffrn_scan_frame_axis.displacement_rstrt_incr</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code no _item_default.value 0.0 _item_type.code float _item_units.code 'millimetres' save_ save_<a name="_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a> _item_description.description ; The value of this data item is the identifier of the frame for which axis settings are being specified. Multiple axes may be specified for the same value of <a href="#_diffrn_scan_frame.frame_id" >_diffrn_scan_frame.frame_id</a>. This item is a pointer to <a href="#_diffrn_data_frame.id" >_diffrn_data_frame.id</a> in the <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> category. ; _item.name '<a href="#_diffrn_scan_frame_axis.frame_id" >_diffrn_scan_frame_axis.frame_id</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_scan_frame_axis.reference_angle" >_diffrn_scan_frame_axis.reference_angle</a> _item_description.description ; The setting of the specified axis in degrees against which measurements of the reference beam center and reference detector distance should be made. This is normally the same for all frames, but the option is provided here of making changes when needed. If not provided, it is assumed to be zero. ; _item.name '<a href="#_diffrn_scan_frame_axis.reference_angle">_diffrn_scan_frame_axis.reference_angle</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code implicit _item_default.value 0.0 _item_type.code float _item_units.code 'degrees' save_ save_<a name="_diffrn_scan_frame_axis.reference_displacement">_diffrn_scan_frame_axis.reference_displacement</a> _item_description.description ; The setting of the specified axis in millimetres for this frame against which measurements of the reference beam center and reference detector distance should be made. This is normally the same for all frames, but the option is provided here of making changes when needed. If not provided, it is assumed to be equal to <a href="#_diffrn_scan_frame_axis.displacement" >_diffrn_scan_frame_axis.displacement</a>. ; _item.name '<a href="#_diffrn_scan_frame_axis.reference_displacement">_diffrn_scan_frame_axis.reference_displacement</a>' _item.category_id diffrn_scan_frame_axis _item.mandatory_code implicit _item_type.code float _item_units.code 'millimetres' save_ ####### # <a name="MAP">MAP</a> # ####### save_MAP _category.description ; Data items in the <a href="#MAP">MAP</a> category record the details of a maps. Maps record values of parameters, such as density, that are functions of position within a cell or are functions of orthogonal coordinates in three space. A map may is composed of one or more map segments specified in the MAP_SEGMENT category. Examples are given in the MAP_SEGMENT category. ; _category.id map _category.mandatory_code no loop_ _category_key.name '<a href="#_map.id" >_map.id</a>' '<a href="#_map.diffrn_id" >_map.diffrn_id</a>' '<a href="#_map.entry_id" >_map.entry_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - Identifying an observed density map and a calculated density map ; ; loop_ <a href="#_map.id" >_map.id</a> <a href="#_map.details" >_map.details</a> rho_calc ; density calculated from F_calc derived from the ATOM_SITE list ; rho_obs ; density combining the observed structure factors with the calculated phases ; ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_map.details" >_map.details</a> _item_description.description ; The value of <a href="#_map.details" >_map.details</a> should give a description of special aspects of each map. ; _item.name '<a name="_map.details" >_map.details</a>' _item.category_id map _item.mandatory_code no _item_type.code text loop_ _item_examples.case _item_examples.detail # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - Identifying an observed density map and a calculated density map ; ; loop_ <a href="#_map.id" >_map.id</a> <a href="#_map.details" >_map.details</a> rho_calc ; density calculated from F_calc derived from the ATOM_SITE list ; rho_obs ; density combining the observed structure factors with the calculated phases ; ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_map.diffrn_id" >_map.diffrn_id</a> _item_description.description ; This item is a pointer to <a href="#_diffrn.id" >_diffrn.id</a> in the <a href="#DIFFRN">DIFFRN</a> category. ; _item.name '<a href="#_map.diffrn_id" >_map.diffrn_id</a>' _item.category_id map _item.mandatory_code implicit _item_type.code code save_ save_<a name="_map.entry_id" >_map.entry_id</a> _item_description.description ; This item is a pointer to <a href="#_entry.id" >_entry.id</a> in the <a href="#ENTRY">ENTRY</a> category. ; _item.name '<a href="#_map.entry_id" >_map.entry_id</a>' _item.category_id map _item.mandatory_code implicit _item_type.code code save_ save_<a name="_map.id" >_map.id</a> _item_description.description ; The value of <a href="#_map.id" >_map.id</a> must uniquely identify each map for the given diffrn.id or entry.id. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_map.id" >_map.id</a>' map yes '<a href="#_map_segment.id" >_map_segment.id</a>' map_segment yes _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_map_segment.id" >_map_segment.id</a>' '<a href="#_map.id" >_map.id</a>' save_ ########################### # <a name="MAP_SEGMENT">MAP_SEGMENT</a> # ########################### save_MAP_SEGMENT _category.description ; Data items in the <a href="#MAP_SEGMENT">MAP_SEGMENT</a> category record the details about each segment (section or brick) of a map. ; _category.id map_segment _category.mandatory_code no loop_ _category_key.name '<a href="#_map_segment.id" >_map_segment.id</a>' '<a href="#_map_segment.map_id" >_map_segment.map_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Example 1 - Identifying an observed density map and a calculated density map, each consisting of one segment, both using the same array structure and mask. ; ; loop_ <a href="#_map.id" >_map.id</a> <a href="#_map.details" >_map.details</a> rho_calc ; density calculated from F_calc derived from the ATOM_SITE list ; rho_obs ; density combining the observed structure factors with the calculated phases ; loop_ _map_segment.map_id _map_segment.id _map_segment.array_id _map_segment.binary_id _map_segment.mask_array_id _map_segment.mask_binary_id rho_calc rho_calc map_structure 1 mask_structure 1 rho_obs rho_obs map_structure 2 mask_structure 1 ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_map_segment.array_id" >_map_segment.array_id</a> _item_description.description ; The value of _map_segment.array_id identifies the array structure into which the map is organized. This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category. ; _item.name '<a href="#_map_segement.array_id" >_map_segment.array_id</a>' _item.category_id map_segment _item.mandatory_code implicit _item_type.code code save_ save_<a name="_map_segment.binary_id" >_map_segment.binary_id</a> _item_description.description ; The value of <a href="#_map_segment.binary_id">_map_segment.binary_id</a> distinguishes the particular set of data organized according to <a href="#_map_segment.mask_array_id">_map_segment.array_id</a> in which the data values of the map are stored. This item is a pointer to <a href="#_array_data.binary_id" >_array_data.binary_id</a> in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category. ; _item.name '<a href="#_map_segment.binary_id" >_map_segment.binary_id</a>' _item.category_id map_segment _item.mandatory_code implicit _item_type.code int save_ save_<a name="_map_segment.mask_array_id" >_map_segment.mask_array_id</a> _item_description.description ; The value of <a href="#_map_segment.mask_array_id">_map_segment.mask_array_id</a>, if given, the array structure into which the mask for the map is organized. If no value is given, then all elements of the map are valid. If a value is given, then only elements of the map for which the corresponding element of the mask is non-zero are valid. The value of <a href="#_map_segment.mask_array_id">_map_segment.mask_array_id</a> differs from the value of <a href="#_map_segment.array_id">_map_segment.array_id</a> in order to permit the mask to be given as, say, unsigned 8-bit integers, while the map is given as a data type with more range. However, the two array structures must be aligned, using the same axes in the same order with the same displacements and increments This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> category. ; _item.name '<a href="#_map_segment.mask_array_id" >_map_segment.mask_array_id</a>' _item.category_id map_segment _item.mandatory_code implicit _item_type.code code save_ save_<a name="_map_segment.mask_binary_id" >_map_segment.mask_binary_id</a> _item_description.description ; The value of <a href="#_map_segment.mask_binary_id">_map_segment.mask_binary_id</a> identifies the particular set of data organized according to _map_segment.mask_array_id specifying the mask for the map. This item is a pointer to <a href="#_array_data.mask_binary_id" >_array_data.mask_binary_id</a> in the <a href="#ARRAY_DATA">ARRAY_DATA</a> category. ; _item.name '<a href="#_map_segment.mask_binary_id" >_map_segment.mask_binary_id</a>' _item.category_id map_segment _item.mandatory_code implicit _item_type.code int save_ save_<a name="_map_segment.id" >_map_segment.id</a> _item_description.description ; The value of <a href="#_map_segment.id" >_map_segment.id</a> must uniquely identify each segment of a map. ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_map_segment.id" >_map_segment.id</a>' map_segment yes _item_type.code code loop_ _item_linked.child_name _item_linked.parent_name '<a href="#_map_data_frame.map_segment_id" >_map_data_frame.map_segment_id</a>' '<a href="#_map_segment.id" >_map_segment.id</a>' save_ save_<a name="_map_segment.map_id" >_map_segment.map_id</a> _item_description.description ; This item is a pointer to <a href="#_map.id" >_map.id</a> in the <a href="#MAP">MAP</a> category. ; _item.name '<a href="#_map_segment.map_id" >_map_segment.map_id</a>' _item.category_id map_segment _item.mandatory_code yes _item_type.code code save_ save_<a name="_map_segment.details" >_map_segment.details</a> _item_description.description ; The value of <a href="#_map_segment.details" >_map_segment.details</a> should give a description of special aspects of each segment of a map. ; _item.name '<a name="_map_segment.details" >_map_segment.details</a>' _item.category_id map_segment _item.mandatory_code no _item_type.code text loop_ _item_examples.case _item_examples.detail ; Example to be provided ; ; ; save_ ######################## DEPRECATED DATA ITEMS ######################## save_<a name="_diffrn_detector_axis.id">_diffrn_detector_axis.id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn_detector.id">_diffrn_detector.id</a> in the <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> category. DEPRECATED -- DO NOT USE ; _item.name '<a href="#_diffrn_detector_axis.id">_diffrn_detector_axis.id</a>' _item.category_id diffrn_detector_axis _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_detector_element.center[1]" >_diffrn_detector_element.center[1]</a> _item_description.description ; The value of <a href="#_diffrn_detector_element.center[1]" >_diffrn_detector_element.center[1]</a> is the <b>X</b> component of the distortion-corrected beam centre in millimetres from the (0, 0) (lower-left) corner of the detector element viewed from the sample side. The <b>X</b> and <b>Y</b> axes are the laboratory coordinate system coordinates defined in the <a href="#AXIS">AXIS category</a> measured when all positioning axes for the detector are at their zero settings. If the resulting <b>X</b> or <b>Y</b> axis is then orthogonal to the detector, the <b>Z</b> axis is used instead of the orthogonal axis. Because of ambiguity about the setting used to determine this center, use of this data item is deprecated. The data item <a href="#_diffrn_data_frame.center_fast">_diffrn_data_frame.center_fast</a> which is referenced to the detector coordinate system and not directly to the laboratory coordinate system should be used instead. ; _item.name '<a href="#_diffrn_detector_element.center[1]" >_diffrn_detector_element.center[1]</a>' _item.category_id diffrn_detector_element _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float _item_units.code millimetres save_ save_<a name="_diffrn_detector_element.center[2]" >_diffrn_detector_element.center[2]</a> _item_description.description ; The value of <a href="#_diffrn_detector_element.center[2]" >_diffrn_detector_element.center[2]</a> is the <b>Y</b> component of the distortion-corrected beam centre in millimetres from the (0, 0) (lower-left) corner of the detector element viewed from the sample side. The <b>X</b> and <b>Y</b> axes are the laboratory coordinate system coordinates defined in the <a href="#AXIS">AXIS category</a> measured when all positioning axes for the detector are at their zero settings. If the resulting <b>X</b> or <b>Y</b> axis is then orthogonal to the detector, the <b>Z</b> axis is used instead of the orthogonal axis. Because of ambiguity about the setting used to determine this center, use of this data item is deprecated. The data item <a href="#_diffrn_data_frame.center_slow">_diffrn_data_frame.center_slow</a> which is referenced to the detector coordinate system and not directly to the laboratory coordinate system should be used instead. ; _item.name '<a href="#_diffrn_detector_element.center[2]" >_diffrn_detector_element.center[2]</a>' _item.category_id diffrn_detector_element _item.mandatory_code no _item_default.value 0.0 _item_sub_category.id vector _item_type.code float _item_units.code millimetres save_ save_<a name="_diffrn_measurement_axis.id">_diffrn_measurement_axis.id</a> _item_description.description ; This data item is a pointer to <a href="#_diffrn_measurement.id">_diffrn_measurement.id</a> in the <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> category. DEPRECATED -- DO NOT USE ; _item.name '<a href="#_diffrn_measurement_axis.id">_diffrn_measurement_axis.id</a>' _item.category_id diffrn_measurement_axis _item.mandatory_code yes _item_type.code code save_ ######################### DEPRECATED CATEGORY ######################### ##################### # <a name="DIFFRN_FRAME_DATA" >DIFFRN_FRAME_DATA</a> # ##################### save_DIFFRN_FRAME_DATA _category.description ; Data items in the DIFFRN_FRAME_DATA category record the details about each frame of data. The items in this category are now in the <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a> category. The items in the DIFFRN_FRAME_DATA category are now deprecated. The items from this category are provided as aliases in the 1.0 dictionary or, in the case of _diffrn_frame_data.details, in the 1.4 dictionary. THESE ITEMS SHOULD NOT BE USED FOR NEW WORK. The items from the old category are provided in this dictionary for completeness but should not be used or cited. To avoid confusion, the example has been removed and the redundant parent-child links to other categories have been removed. ; _category.id diffrn_frame_data _category.mandatory_code no loop_ _category_key.name '<a href="#_diffrn_frame_data.id" >_diffrn_frame_data.id</a>' '<a href="#_diffrn_frame_data.detector_element_id" >_diffrn_frame_data.detector_element_id</a>' loop_ _category_group.id 'inclusive_group' 'array_data_group' loop_ _category_examples.detail _category_examples.case # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; THE DIFFRN_FRAME_DATA category is deprecated and should not be used. ; ; # EXAMPLE REMOVED # ; # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - save_ save_<a name="_diffrn_frame_data.array_id" >_diffrn_frame_data.array_id</a> _item_description.description ; This item is a pointer to <a href="#_array_structure.id" >_array_structure.id</a> in the ARRAY_STRUCTURE category. DEPRECATED -- DO NOT USE ; _item.name '<a href="#_diffrn_frame_data.array_id" >_diffrn_frame_data.array_id</a>' _item.category_id diffrn_frame_data _item.mandatory_code implicit _item_type.code code save_ save_<a name="_diffrn_frame_data.binary_id" >_diffrn_frame_data.binary_id</a> _item_description.description ; This item is a pointer to <a href="#_array_data.binary_id" >_array_data.binary_id</a> in the ARRAY_STRUCTURE category. DEPRECATED -- DO NOT USE ; _item.name '<a href="#_diffrn_frame_data.binary_id" >_diffrn_frame_data.binary_id</a>' _item.category_id diffrn_frame_data _item.mandatory_code implicit _item_type.code int save_ save_<a name="_diffrn_frame_data.detector_element_id" >_diffrn_frame_data.detector_element_id</a> _item_description.description ; This item is a pointer to <a href="#_diffrn_detector_element.id">_diffrn_detector_element.id</a> in the DIFFRN_DETECTOR_ELEMENT category. DEPRECATED -- DO NOT USE ; _item.name '<a href="#_diffrn_frame_data.detector_element_id" >_diffrn_frame_data.detector_element_id</a>' _item.category_id diffrn_frame_data _item.mandatory_code yes _item_type.code code save_ save_<a name="_diffrn_frame_data.id" >_diffrn_frame_data.id</a> _item_description.description ; The value of <a href="#_diffrn_frame_data.id" >_diffrn_frame_data.id</a> must uniquely identify each complete frame of data. DEPRECATED -- DO NOT USE ; loop_ _item.name _item.category_id _item.mandatory_code '<a href="#_diffrn_frame_data.id" >_diffrn_frame_data.id</a>' diffrn_frame_data yes _item_type.code code save_ save_<a name="_diffrn_frame_data.details" >_diffrn_frame_data.details</a> _item_description.description ; The value of <a href="#_diffrn_data_frame.details" >_diffrn_data_frame.details</a> should give a description of special aspects of each frame of data. DEPRECATED -- DO NOT USE ; _item.name '<a name="_diffrn_frame_data.details" >_diffrn_frame_data.details</a>' _item.category_id diffrn_frame_data _item.mandatory_code no _item_type.code text save_ ################ END DEPRECATED SECTION ########### #################### ## <a name="ITEM_TYPE_LIST">ITEM_TYPE_LIST</a> ## #################### # # # The regular expressions defined here are not compliant # with the POSIX 1003.2 standard as they include the # '\n' and '\t' special characters. These regular expressions # have been tested using version 0.12 of Richard Stallman's # GNU regular expression library in POSIX mode. # In order to allow presentation of a regular expression # in a text field concatenate any line ending in a backslash # with the following line, after discarding the backslash. # # A formal definition of the '\n' and '\t' special characters # is most properly done in the DDL, but for completeness, please # note that '\n' is the line termination character ('newline') # and '\t' is the horizontal tab character. There is a formal # ambiguity in the use of '\n' for line termination, in that # the intention is that the equivalent machine/OS-dependent line # termination character sequence should be accepted as a match, e.g. # # '\r' (control-M) under MacOS # '\n' (control-J) under Unix # '\r\n' (control-M control-J) under DOS and MS Windows # loop_ _item_type_list.code _item_type_list.primitive_code _item_type_list.construct _item_type_list.detail code char '[_,.;:"&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]*' ; code item types/single words ... ; ucode uchar '[_,.;:"&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]*' ; code item types/single words (case insensitive) ... ; line char '[][ \t_(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*' ; char item types / multi-word items ... ; uline uchar '[][ \t_(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*' ; char item types / multi-word items (case insensitive)... ; text char '[][ \n\t()_,.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*' ; text item types / multi-line text ... ; binary char ;\n--CIF-BINARY-FORMAT-SECTION--\n\ [][ \n\t()_,.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*\ \n--CIF-BINARY-FORMAT-SECTION---- ; ; binary items are presented as MIME-like ascii-encoded sections in an imgCIF. In a CBF, raw octet streams are used to convey the same information. ; int numb '-?[0-9]+' ; int item types are the subset of numbers that are the negative or positive integers. ; float numb '-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)?' ; float item types are the subset of numbers that are the floating point numbers. ; any char '.*' ; A catch all for items that may take any form... ; yyyy-mm-dd char ;\ [0-9]?[0-9]?[0-9][0-9]-[0-9]?[0-9]-[0-9]?[0-9]\ ((T[0-2][0-9](:[0-5][0-9](:[0-5][0-9](.[0-9]+)?)?)?)?\ ([+-][0-5][0-9]:[0-5][0-9]))? ; ; Standard format for CIF date and time strings (see http://www.iucr.org/iucr-top/cif/spec/datetime.html), consisting of a yyyy-mm-dd date optionally followed by the character 'T' followed by a 24-hour clock time, optionally followed by a signed time-zone offset. The IUCr standard has been extended to allow for an optional decimal fraction on the seconds of time. Time is local time if no time-zone offset is given. Note that this type extends the mmCIF yyyy-mm-dd type but does not conform to the mmCIF yyyy-mm-dd:hh:mm type that uses a ':' in place if the 'T' specified by the IUCr standard. For reading, both forms should be accepted, but for writing, only the IUCr form should be used. For maximal compatibility, the special time zone indicator 'Z' (for 'zulu') should be accepted on reading in place of '+00:00' for GMT. ; ##################### ## <a name="ITEM_UNITS_LIST">ITEM_UNITS_LIST</a> ## ##################### loop_ _item_units_list.code _item_units_list.detail # 'metres' 'metres' 'centimetres' 'centimetres (metres * 10^<sup>( -2)</sup>^)' 'millimetres' 'millimetres (metres * 10^<sup>( -3)</sup>^)' 'nanometres' 'nanometres (metres * 10^<sup>( -9)</sup>^)' 'angstroms' '\%Angstroms (metres * 10^<sup>(-10)</sup>^)' 'picometres' 'picometres (metres * 10^<sup>(-12)</sup>^)' 'femtometres' 'femtometres (metres * 10^<sup>(-15)</sup>^)' # 'reciprocal_metres' 'reciprocal metres (metres^<sup>(-1)</sup>^)' 'reciprocal_centimetres' 'reciprocal centimetres ((metres * 10^<sup>( -2)</sup>^)^<sup>(-1)</sup>^)' 'reciprocal_millimetres' 'reciprocal millimetres ((metres * 10^<sup>( -3)</sup>^)^<sup>(-1)</sup>^)' 'reciprocal_nanometres' 'reciprocal nanometres ((metres * 10^<sup>( -9)</sup>^)^<sup>(-1)</sup>^)' 'reciprocal_angstroms' 'reciprocal \%Angstroms ((metres * 10^<sup>(-10)</sup>^)^<sup>(-1)</sup>^)' 'reciprocal_picometres' 'reciprocal picometres ((metres * 10^<sup>(-12)</sup>^)^<sup>(-1)</sup>^)' # 'nanometres_squared' 'nanometres squared (metres * 10^<sup>( -9)</sup>^)^<sup>2</sup>^' 'angstroms_squared' '\%Angstroms squared (metres * 10^<sup>(-10)</sup>^)^<sup>2</sup>^' '8pi2_angstroms_squared' '8\p^<sup>2</sup>^ * \%Angstroms squared (metres * 10^<sup>(-10)</sup>^)^<sup>2</sup>^' 'picometres_squared' 'picometres squared (metres * 10^<sup>(-12)</sup>^)^<sup>2</sup>^' # 'nanometres_cubed' 'nanometres cubed (metres * 10^<sup>( -9)</sup>^)^<sup>3</sup>^' 'angstroms_cubed' '\%Angstroms cubed (metres * 10^<sup>(-10)</sup>^)^<sup>3</sup>^' 'picometres_cubed' 'picometres cubed (metres * 10^<sup>(-12)</sup>^)^<sup>3</sup>^' # 'kilopascals' 'kilopascals' 'gigapascals' 'gigapascals' # 'hours' 'hours' 'minutes' 'minutes' 'seconds' 'seconds' 'microseconds' 'microseconds' # 'degrees' 'degrees (of arc)' 'degrees_squared' 'degrees (of arc) squared' # 'degrees_per_minute' 'degrees (of arc) per minute' # 'celsius' 'degrees (of temperature) Celsius' 'kelvins' 'degrees (of temperature) Kelvin' # 'counts' 'counts' 'counts_per_photon' 'counts per photon' # 'electrons' 'electrons' # 'electrons_squared' 'electrons squared' # 'electrons_per_nanometres_cubed' ; electrons per nanometres cubed (electrons/(metres * 10^<sup>( -9)</sup>^)^<sup>(-3)</sup>^) ; 'electrons_per_angstroms_cubed' ; electrons per \%Angstroms cubed (electrons/(metres * 10^<sup>(-10)</sup>^)^<sup>(-3)</sup>^) ; 'electrons_per_picometres_cubed' ; electrons per picometres cubed (electrons/(metres * 10^<sup>(-12)</sup>^)^<sup>(-3)</sup>^) ; 'kilowatts' 'kilowatts' 'milliamperes' 'milliamperes' 'kilovolts' 'kilovolts' # 'pixels_per_element' '(image) pixels per (array) element' # 'arbitrary' ; arbitrary system of units. ; # loop_ _item_units_conversion.from_code _item_units_conversion.to_code _item_units_conversion.operator _item_units_conversion.factor ### 'metres' 'centimetres' '*' 1.0E+02 'metres' 'millimetres' '*' 1.0E+03 'metres' 'nanometres' '*' 1.0E+09 'metres' 'angstroms' '*' 1.0E+10 'metres' 'picometres' '*' 1.0E+12 'metres' 'femtometres' '*' 1.0E+15 # 'centimetres' 'metres' '*' 1.0E-02 'centimetres' 'millimetres' '*' 1.0E+01 'centimetres' 'nanometres' '*' 1.0E+07 'centimetres' 'angstroms' '*' 1.0E+08 'centimetres' 'picometres' '*' 1.0E+10 'centimetres' 'femtometres' '*' 1.0E+13 # 'millimetres' 'metres' '*' 1.0E-03 'millimetres' 'centimetres' '*' 1.0E-01 'millimetres' 'nanometres' '*' 1.0E+06 'millimetres' 'angstroms' '*' 1.0E+07 'millimetres' 'picometres' '*' 1.0E+09 'millimetres' 'femtometres' '*' 1.0E+12 # 'nanometres' 'metres' '*' 1.0E-09 'nanometres' 'centimetres' '*' 1.0E-07 'nanometres' 'millimetres' '*' 1.0E-06 'nanometres' 'angstroms' '*' 1.0E+01 'nanometres' 'picometres' '*' 1.0E+03 'nanometres' 'femtometres' '*' 1.0E+06 # 'angstroms' 'metres' '*' 1.0E-10 'angstroms' 'centimetres' '*' 1.0E-08 'angstroms' 'millimetres' '*' 1.0E-07 'angstroms' 'nanometres' '*' 1.0E-01 'angstroms' 'picometres' '*' 1.0E+02 'angstroms' 'femtometres' '*' 1.0E+05 # 'picometres' 'metres' '*' 1.0E-12 'picometres' 'centimetres' '*' 1.0E-10 'picometres' 'millimetres' '*' 1.0E-09 'picometres' 'nanometres' '*' 1.0E-03 'picometres' 'angstroms' '*' 1.0E-02 'picometres' 'femtometres' '*' 1.0E+03 # 'femtometres' 'metres' '*' 1.0E-15 'femtometres' 'centimetres' '*' 1.0E-13 'femtometres' 'millimetres' '*' 1.0E-12 'femtometres' 'nanometres' '*' 1.0E-06 'femtometres' 'angstroms' '*' 1.0E-05 'femtometres' 'picometres' '*' 1.0E-03 ### 'reciprocal_centimetres' 'reciprocal_metres' '*' 1.0E+02 'reciprocal_centimetres' 'reciprocal_millimetres' '*' 1.0E-01 'reciprocal_centimetres' 'reciprocal_nanometres' '*' 1.0E-07 'reciprocal_centimetres' 'reciprocal_angstroms' '*' 1.0E-08 'reciprocal_centimetres' 'reciprocal_picometres' '*' 1.0E-10 # 'reciprocal_millimetres' 'reciprocal_metres' '*' 1.0E+03 'reciprocal_millimetres' 'reciprocal_centimetres' '*' 1.0E+01 'reciprocal_millimetres' 'reciprocal_nanometres' '*' 1.0E-06 'reciprocal_millimetres' 'reciprocal_angstroms' '*' 1.0E-07 'reciprocal_millimetres' 'reciprocal_picometres' '*' 1.0E-09 # 'reciprocal_nanometres' 'reciprocal_metres' '*' 1.0E+09 'reciprocal_nanometres' 'reciprocal_centimetres' '*' 1.0E+07 'reciprocal_nanometres' 'reciprocal_millimetres' '*' 1.0E+06 'reciprocal_nanometres' 'reciprocal_angstroms' '*' 1.0E-01 'reciprocal_nanometres' 'reciprocal_picometres' '*' 1.0E-03 # 'reciprocal_angstroms' 'reciprocal_metres' '*' 1.0E+10 'reciprocal_angstroms' 'reciprocal_centimetres' '*' 1.0E+08 'reciprocal_angstroms' 'reciprocal_millimetres' '*' 1.0E+07 'reciprocal_angstroms' 'reciprocal_nanometres' '*' 1.0E+01 'reciprocal_angstroms' 'reciprocal_picometres' '*' 1.0E-02 # 'reciprocal_picometres' 'reciprocal_metres' '*' 1.0E+12 'reciprocal_picometres' 'reciprocal_centimetres' '*' 1.0E+10 'reciprocal_picometres' 'reciprocal_millimetres' '*' 1.0E+09 'reciprocal_picometres' 'reciprocal_nanometres' '*' 1.0E+03 'reciprocal_picometres' 'reciprocal_angstroms' '*' 1.0E+01 ### 'nanometres_squared' 'angstroms_squared' '*' 1.0E+02 'nanometres_squared' 'picometres_squared' '*' 1.0E+06 # 'angstroms_squared' 'nanometres_squared' '*' 1.0E-02 'angstroms_squared' 'picometres_squared' '*' 1.0E+04 'angstroms_squared' '8pi2_angstroms_squared' '*' 78.9568 # 'picometres_squared' 'nanometres_squared' '*' 1.0E-06 'picometres_squared' 'angstroms_squared' '*' 1.0E-04 ### 'nanometres_cubed' 'angstroms_cubed' '*' 1.0E+03 'nanometres_cubed' 'picometres_cubed' '*' 1.0E+09 # 'angstroms_cubed' 'nanometres_cubed' '*' 1.0E-03 'angstroms_cubed' 'picometres_cubed' '*' 1.0E+06 # 'picometres_cubed' 'nanometres_cubed' '*' 1.0E-09 'picometres_cubed' 'angstroms_cubed' '*' 1.0E-06 ### 'kilopascals' 'gigapascals' '*' 1.0E-06 'gigapascals' 'kilopascals' '*' 1.0E+06 ### 'hours' 'minutes' '*' 6.0E+01 'hours' 'seconds' '*' 3.6E+03 'hours' 'microseconds' '*' 3.6E+09 # 'minutes' 'hours' '/' 6.0E+01 'minutes' 'seconds' '*' 6.0E+01 'minutes' 'microseconds' '*' 6.0E+07 # 'seconds' 'hours' '/' 3.6E+03 'seconds' 'minutes' '/' 6.0E+01 'seconds' 'microseconds' '*' 1.0E+06 # 'microseconds' 'hours' '/' 3.6E+09 'microseconds' 'minutes' '/' 6.0E+07 'microseconds' 'seconds' '/' 1.0E+06 ### 'celsius' 'kelvins' '-' 273.0 'kelvins' 'celsius' '+' 273.0 ### 'electrons_per_nanometres_cubed' 'electrons_per_angstroms_cubed' '*' 1.0E+03 'electrons_per_nanometres_cubed' 'electrons_per_picometres_cubed' '*' 1.0E+09 # 'electrons_per_angstroms_cubed' 'electrons_per_nanometres_cubed' '*' 1.0E-03 'electrons_per_angstroms_cubed' 'electrons_per_picometres_cubed' '*' 1.0E+06 # 'electrons_per_picometres_cubed' 'electrons_per_nanometres_cubed' '*' 1.0E-09 'electrons_per_picometres_cubed' 'electrons_per_angstroms_cubed' '*' 1.0E-06 ### ######################## ## <a name="DICTIONARY_HISTORY">DICTIONARY_HISTORY</a> ## ######################## loop_ _dictionary_history.version _dictionary_history.update _dictionary_history.revision 1.5.3 2007-07-08 ; Changes to support SLS miniCBF and suggestions from the 24 May 07 BNL imgCIF workshop (HJB) + Added new data items '<a href="#_array_data.header_contents" >_array_data.header_contents</a>', '<a href="#_array_data.header_convention" >_array_data.header_convention</a>', '<a href="#_diffrn_data_frame.center_fast" >_diffrn_data_frame.center_fast</a>', '<a href="#_diffrn_data_frame.center_slow" >_diffrn_data_frame.center_slow</a>', '<a href="#_diffrn_data_frame.center_units" >_diffrn_data_frame.center_units</a>', '<a href="#_diffrn_measurement.sample_detector_distance" >_diffrn_measurement.sample_detector_distance</a>', '<a href="#_diffrn_measurement.sample_detector_voffset" >_diffrn_measurement.sample_detector_voffset</a> + Deprecated data items '<a href="#_diffrn_detector_element.center[1]" >_diffrn_detector_element.center[1]</a>', '<a href="#_diffrn_detector_element.center[2]" >_diffrn_detector_element.center[2]</a>' + Added comments and example on miniCBF + Changed all array_id data items to implicit ; 1.5.2 2007-05-06 ; Further clarifications of the coordinate system. (HJB) ; 1.5.1 2007-04-26 ; Improve defintion of X-axis to cover the case of no goniometer and clean up more line folds (HJB) ; 1.5 2007-07-25 ; This is a cummulative list of the changes proposed since the imgCIF workshop in Hawaii in July 2006. It is the result of contributions by H. J. Bernstein, A. Hammersley, J. Wright and W. Kabsch. 2007-02-19 Consolidated changes (edited by HJB) + Added new data items '<a href="#_array_structure.compression_type_flag" >_array_structure.compression_type_flag</a>', '<a href="#_array_structure_list_axis.fract_displacement">_array_structure_list_axis.fract_displacement</a>', '<a href="#_array_structure_list_axis.fract_displacement_increment" >_array_structure_list_axis.displacement_increment</a>', '<a href="#_array_structure_list_axis.reference_angle" >_array_structure_list_axis.reference_angle</a>', '<a href="#_array_structure_list_axis.reference_displacement" >_array_structure_list_axis.reference_displacement</a>', '<a href="#_axis.sdystem" >_axis.system</a>', '<a href="#_diffrn_detector_element.reference_center_fast" >_diffrn_detector_element.reference_center_fast</a>', '<a href="#_diffrn_detector_element.reference_center_slow" >_diffrn_detector_element.reference_center_slow</a>', '<a href="#_diffrn_scan_axis.reference_angle" >_diffrn_scan_axis.reference_angle</a>', '<a href="#_diffrn_scan_axis.reference_displacement" >_diffrn_scan_axis.reference_displacement</a>', '<a href="#_map.details" >_map.details</a>', '<a href="#_map.diffrn_id" >_map.diffrn_id</a>', '<a href="#_map.entry_id" >_map.entry_id</a>', '<a name="#_map.id" >_map.id</a>', '<a href="#_map_segment.array_id" >_map_segment.array_id</a>', '<a href="#_map_segment.binary_id" >_map_segment.binary_id</a>', '<a href="#_map_segment.mask_array_id" >_map_segment.mask_array_id</a>', '<a href="#_map_segment.mask_binary_id" >_map_segment.mask_binary_id</a>', '<a href="#_map_segment.id" >_map_segment.id</a>', '<a href="#_map_segment.map_id" >_map_segment.map_id</a>', '<a href="#_map_segment.details" >_map_segment.details</a>. + Change type of '<a href="#_array_structure.byte_order" >_array_structure.byte_order</a>' and '<a href="#_array_structure.compression_type" >_array_structure.compression_type</a>' to ucode to make these values case-insensitive + Add values 'packed_v2' and 'byte_offset' to enumeration of values for '<a href="#_array_structure.compression_type" >_array_structure.compression_type</a>' + Add to defintions for the binary data type to handle new compression types, maps, and a variety of new axis types. 2007-07-25 Cleanup of typos for formal release (HJB) + Corrected text fields for reference_ tag descriptions that were off by one column + Fix typos in comments listing fract_ tags + Changed name of release from 1.5_DRAFT to 1.5 + Fix unclosed text fields in various map definitions ; 1.4 2006-07-04 ; This is a change to reintegrate all changes made in the course of publication of ITVG, by the RCSB from April 2005 through August 2008 and changes for the 2006 imgCIF workshop in Hawaii. 2006-07-04 Consolidated changes for the 2006 imgCIF workshop (edited by HJB) + Correct type of '<a href="#_array_structure_list.direction">_array_structure_list.direction</a>' from 'int' to 'code'. + Added new data items suggested by CN '<a href="#_diffrn_data_frame.details">_diffrn_data_frame.details</a>' '<a href="#_array_intensities.pixel_fast_bin_size" >_array_intensities.pixel_fast_bin_size</a>', '<a href="#_array_intensities.pixel_slow_bin_size" >_array_intensities.pixel_slow_bin_size</a> and '<a href="#_array_intensities.pixel_binning_method" >_array_intensities.pixel_binning_method</a> + Added deprecated item for completeness '<a href="#_diffrn_frame_data.details">_diffrn_frame_data.details</a>' + Added entry for missing item in contents list '<a href="#_array_structure_list_axis.displacement" >_array_structure_list_axis.displacement</a>' + Added new MIME type <b>X</b>-BASE32K based on work by VL, KM, GD, HJB + Correct description of MIME boundary delimiter to start in column 1. + General cleanup of text fields to conform to changes for ITVG by removing empty lines at start and finish of text field. + Amend example for ARRAY_INTENSITIES to include binning. + Add local copy of type specification (as 'code') for all children of '<a href="#_diffrn.id">_diffrn.id</a>'. + For consistency, change all references to 'pi' to '\p' and all references to 'Angstroms' to '\%Angstroms'. + Clean up all powers to use IUCr convention of '^power^', as in '10^3^' for '10**3'. + Update 'yyyy-mm-dd' type regex to allow truncation from the right and improve comments to explain handling of related mmCIF 'yyyy-mm-dd:hh:mm' type, and use of 'Z' for GMT time zone. 2005-03-08 and 2004-08-08 fixed cases where _item_units.code used instead of _item_type.code (JDW) 2004-04-15 fixed item ordering in _diffrn_measurement_axis.measurement_id added sub_category 'vector' (JDW) ; 1.3.2 2005-06-25 ; 2005-06-25 ITEM_TYPE_LIST: code, ucode, line, uline regexps updated to those of current mmCIF; float modified by allowing integers terminated by a point as valid. The 'time' part of yyyy-mm-dd types made optional in the regexp. (BM) 2005-06-17 Minor corrections as for proofs for IT G Chapter 4.6 (NJA) 2005-02-21 Minor corrections to spelling and punctuation (NJA) 2005-01-08 Changes as per Nicola Ashcroft. + Updated example 1 for DIFFRN_MEASUREMENT to agree with mmCIF. + Spelled out "micrometres" for "um" and "millimetres" for "mm". + Removed phrase "which may be stored" from ARRAY_STRUCTURE description. + Removed unused 'byte-offsets' compressions and updated cites to ITVG for '_array_structure.compression_type'. (HJB) ; 1.3.1 2003-08-13 ; Changes as per Frances C. Bernstein. + Identify initials. + Adopt British spelling for centre in text. + Set \p and \%Angstrom and powers. + Clean up commas and unclear wordings. + Clean up tenses in history. Changes as per Gotzon Madariaga. + Fix the ARRAY_DATA example to align '_array_data.binary_id' and <b>X</b>-Binary-ID. + Add a range to '<a href="#_array_intensities.gain_esd">_array_intensities.gain_esd</a>'. + In the example of DIFFRN_DETECTOR_ELEMENT, '<a href="#_diffrn_detector_element.id">_diffrn_detector_element.id</a>' and '<a href="#_diffrn_detector_element.detector_id">_diffrn_detector_element.detector_id</a>' interchanged. + Fix typos for direction, detector and axes. + Clarify description of polarisation. + Clarify axes in '<a href="#_diffrn_detector_element.center[1]">_diffrn_detector_element.center[1]</a>' '<a href="#_diffrn_detector_element.center[2]">_diffrn_detector_element.center[2]</a>'. + Add local item types for items that are pointers. (HJB) ; 1.3.0 2003-07-24 ; Changes as per Brian McMahon. + Consistently quote tags embedded in text. + Clean up introductory comments. + Adjust line lengths to fit in 80 character window. + Fix several descriptions in AXIS category which referred to '_axis.type' instead of the current item. + Fix erroneous use of deprecated item '_diffrn_detector_axis.id' in examples for DIFFRN_SCAN_AXIS. + Add deprecated items '_diffrn_detector_axis.id' and '_diffrn_measurement_axis.id'. (HJB) ; 1.2.4 2003-07-14 ; Changes as per I. David Brown. + Enhance descriptions in DIFFRN_SCAN_AXIS to make them less dependent on the descriptions in DIFFRN_SCAN_FRAME_AXIS. + Provide a copy of the deprecated DIFFRN_FRAME_DATA category for completeness. (HJB) ; 1.2.3 2003-07-03 ; Cleanup to conform to ITVG. + Correct sign error in ..._cubed units. + Correct '_diffrn_radiation.polarisn_norm' range. (HJB) ; 1.2.2 2003-03-10 ; Correction of typos in various DIFFRN_SCAN_AXIS descriptions. (HJB) ; 1.2.1 2003-02-22 ; Correction of ATOM_ for ARRAY_ typos in various descriptions. (HJB) ; 1.2 2003-02-07 ; Corrections to encodings (remove extraneous hyphens) remove extraneous underscore in '<a href="#_array_structure.encoding_type">_array_structure.encoding_type</a>' enumeration. Correct typos in items units list. (HJB) ; 1.1.3 2001-04-19 ; Another typo corrections by Wilfred Li, and cleanup by HJB. ; 1.1.2 2001-03-06 ; Several typo corrections by Wilfred Li. ; 1.1.1 2001-02-16 ; Several typo corrections by JW. ; 1.1 2001-02-06 ; Draft resulting from discussions on header for use at NSLS. (HJB) + Change DIFFRN_FRAME_DATA to <a href="#DIFFRN_DATA_FRAME">DIFFRN_DATA_FRAME</a>. + Change '_diffrn_detector_axis.id' to '<a href="#_diffrn_detector_axis.detector_id">_diffrn_detector_axis.detector_id</a>'. + Add '<a href="#_diffrn_measurement_axis.measurement_device">_diffrn_measurement_axis.measurement_device</a>' and change '_diffrn_measurement_axis.id' to '<a href="#_diffrn_measurement_axis.measurement_id">_diffrn_measurement_axis.measurement_id</a>'. + Add '<a href="#_diffrn_radiation.div_x_source">_diffrn_radiation.div_x_source</a>', '<a href="#_diffrn_radiation.div_y_source">_diffrn_radiation.div_y_source</a>', '<a href="#_diffrn_radiation.div_x_y_source">_diffrn_radiation.div_x_y_source</a>', '<a href="#_diffrn_radiation.polarizn_source_norm">_diffrn_radiation.polarizn_source_norm</a>', '<a href="#_diffrn_radiation.polarizn_source_ratio">_diffrn_radiation.polarizn_source_ratio</a>', '<a href="#_diffrn_scan.date_end">_diffrn_scan.date_end</a>', '<a href="#_diffrn_scan.date_start">_diffrn_scan.date_start</a>', '<a href="#_diffrn_scan_axis.angle_rstrt_incr">_diffrn_scan_axis.angle_rstrt_incr</a>', '<a href="#_diffrn_scan_axis.displacement_rstrt_incr">_diffrn_scan_axis.displacement_rstrt_incr</a>', '<a href="#_diffrn_scan_frame_axis.angle_increment">_diffrn_scan_frame_axis.angle_increment</a>', '<a href="#_diffrn_scan_frame_axis.angle_rstrt_incr">_diffrn_scan_frame_axis.angle_rstrt_incr</a>', '<a href="#_diffrn_scan_frame_axis.displacement">_diffrn_scan_frame_axis.displacement</a>', '<a href="#_diffrn_scan_frame_axis.displacement_increment">_diffrn_scan_frame_axis.displacement_increment</a>',and '<a href="#_diffrn_scan_frame_axis.displacement_rstrt_incr">_diffrn_scan_frame_axis.displacement_rstrt_incr</a>'. + Add '<a href="#_diffrn_measurement.device">_diffrn_measurement.device</a>' to category key. + Update yyyy-mm-dd to allow optional time with fractional seconds for time stamps. + Fix typos caught by RS. + Add <a href="#ARRAY_STRUCTURE_LIST_AXIS">ARRAY_STRUCTURE_LIST_AXIS</a> category, and use concept of axis sets to allow for coupled axes, as in spiral scans. + Add examples for fairly complete headers thanks to R. Sweet and P. Ellis. ; 1.0 2000-12-21 ; Release version - few typos and tidying up. (BM & HJB) + Move ITEM_TYPE_LIST, ITEM_UNITS_LIST and DICTIONARY_HISTORY to end of dictionary. + Alphabetize dictionary. ; 0.7.1 2000-09-29 ; Cleanup fixes. (JW) + Correct spelling of diffrn_measurement_axis in '<a href="#_axis.id">_axis.id</a>' + Correct ordering of uses of '_item.mandatory_code' and '_item_default.value'. ; 0.7.0 2000-09-09 ; Respond to comments by I. David Brown. (HJB) + Add further comments on '\n' and '\t'. + Update ITEM_UNITS_LIST by taking section from mmCIF dictionary and adding metres. Change 'meter' to 'metre' throughout. + Add missing enumerations to '<a href="#_array_structure.compression_type">_array_structure.compression_type</a>' and make 'none' the default. + Remove parent-child relationship between '<a href="#_array_structure_list.index">_array_structure_list.index</a>' and '<a href="#_array_structure_list.precedence">_array_structure_list.precedence</a>'. + Improve alphabetization. + Fix '<a href="#_array_intensities.gain_esd">_array_intensities_gain.esd</a>' related function. + Improve comments in <a href="#AXIS">AXIS</a>. + Fix DIFFRN_FRAME_DATA example. + Remove erroneous <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> example. + Add '<a href="#_diffrn_measurement_axis.id">_diffrn_measurement_axis.id</a>' to the category key. ; 0.6.0 1999-01-14 ; Remove redundant information for ENC_NONE data. (HJB) + After the D5 remove binary section identifier, size and compression type. + Add Control-L to header. ; 0.5.1 1999-01-03 ; Cleanup of typos and syntax errors. (HJB) + Cleanup example details for <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a> category. + Add missing quote marks for '<a href="#_diffrn_scan.id" >_diffrn_scan.id</a>' definition. ; 0.5 1999-01-01 ; Modifications for axis definitions and reduction of binary header. (HJB) + Restore '<a href="#_diffrn_detector.diffrn_id" >_diffrn_detector.diffrn_id</a>' to <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> KEY. + Add <a href="#AXIS">AXIS</a> category. + Bring in complete <a href="#DIFFRN_DETECTOR">DIFFRN_DETECTOR</a> and <a href="#DIFFRN_MEASUREMENT">DIFFRN_MEASUREMENT</a> categories from cif_mm.dic for clarity. + Change '<a href="#_array_structure.encoding_type">_array_structure.encoding_type</a>' from type code to uline and added X-Binary-Element-Type to MIME header. + Add detector beam centre '<a href="#_diffrn_detector_element.center[1]">_diffrn_detector_element.center[1]</a>' and '<a href="#_diffrn_detector_element.center[2]">_diffrn_detector_element.center[2]</a>'. + Correct item name of '<a href="#_diffrn_refln.frame_id">_diffrn_refln.frame_id</a>'. + Replace reference to '_array_intensities.undefined' by '_array_intensities.undefined_value'. + Replace references to '_array_intensity.scaling' with '_array_intensities.scaling'. + Add <a href="#DIFFRN_SCAN">DIFFRN_SCAN</a>... categories. ; 0.4 1998-08-11 ; Modifications to the 0.3 imgCIF draft. (HJB) + Reflow comment lines over 80 characters and corrected typos. + Update examples and descriptions of MIME encoded data. + Change name to cbfext98.dic. ; 0.3 1998-07-04 ; Modifications for imgCIF. (HJB) + Add binary type, which is a text field containing a variant on MIME encoded data. + Change type of '<a href="#_array_data.data" >_array_data.data</a>' to binary and specify internal structure of raw binary data. + Add '<a href="#_array_data.binary_id" >_array_data.binary_id</a>', and make '<a href="#_diffrn_frame_data.binary_id" >_diffrn_frame_data.binary_id</a>' and '<a href="#_array_intensities.binary_id" >_array_intensities.binary_id</a>' into pointers to this item. ; 0.2 1997-12-02 ; Modifications to the CBF draft. (JW) + Add category hierarchy for describing frame data developed from discussions at the BNL imgCIF Workshop Oct 1997. The following changes are made in implementing the workshop draft. Category DIFFRN_ARRAY_DATA is renamed to DIFFRN_FRAME_DATA. Category DIFFRN_FRAME_TYPE is renamed to <a href="#DIFFRN_DETECTOR_ELEMENT">DIFFRN_DETECTOR_ELEMENT</a>. The parent item for '<a href="#_diffrn_frame_data.array_id" >_diffrn_frame_data.array_id</a>' is changed from '_array_structure_list.array_id' to '_array_structure.id'. Item '_diffrn_detector.array_id' is deleted. + Add data item '<a href="#_diffrn_frame_data.binary_id" >_diffrn_frame_data.binary_id</a>' to identify data groups within a binary section. The formal identification of the binary section is still fuzzy. ; 0.1 1997-01-24 ; First draft of this dictionary in DDL 2.1 compliant format by John Westbrook (JW). This version is adapted from the Crystallographic Binary File (CBF) Format Draft Proposal provided by Andy Hammersley (AH). Modifications to the CBF draft. (JW) + In this version the array description has been cast in the categories <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> and <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a>. These categories have been generalized to describe array data of arbitrary dimension. + Array data in this description are contained in the category <a href="#ARRAY_DATA">ARRAY_DATA</a>. This departs from the CBF notion of data existing in some special comment. In this description, data are handled as an ordinary data item encapsulated in a character data type. Although data this manner deviates from CIF conventions, it does not violate any DDL 2.1 rules. DDL 2.1 regular expressions can be used to define the binary representation which will permit some level of data validation. In this version, the placeholder type code "any" has been used. This translates to a regular expression which will match any pattern. It should be noted that DDL 2.1 already supports array data objects although these have not been used in the current mmCIF dictionary. It may be possible to use the DDL 2.1 ITEM_STRUCTURE and ITEM_STRUCTURE_LIST categories to provide the information that is carried in by the <a href="#ARRAY_STRUCTURE">ARRAY_STRUCTURE</a> and <a href="#ARRAY_STRUCTURE_LIST">ARRAY_STRUCTURE_LIST</a>. By moving the array structure to the DDL level it would be possible to define an array type as well as a regular expression defining the data format. + Multiple array sections can be properly handled within a single datablock. ; #-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof </PRE> </BODY> </HTML>