|
|
Line 254: |
Line 254: |
| rm tmp1 tmp2 | | rm tmp1 tmp2 |
|
| |
|
| </pre>
| |
|
| |
| For MarCCD data, generate_XDS.INP relies on mccd_xdsparams.pl which is below, and should also be in your $PATH . Alternatively, catmar (which can be downloaded from http://www.marresearch.com/download.html) may be used.
| |
|
| |
| <pre>
| |
| #!/usr//bin/perl -w
| |
| #
| |
| #
| |
| # Copyright 2004
| |
| # by
| |
| # The Board of Trustees of the
| |
| # Leland Stanford Junior University
| |
| # All rights reserved.
| |
| #
| |
| # Disclaimer Notice
| |
| #
| |
| # The items furnished herewith were developed under the sponsorship
| |
| # of the U.S. Government. Neither the U.S., nor the U.S. D.O.E., nor the
| |
| # Leland Stanford Junior University, nor their employees, makes any war-
| |
| # ranty, express or implied, or assumes any liability or responsibility
| |
| # for accuracy, completeness or usefulness of any information, apparatus,
| |
| # product or process disclosed, or represents that its use will not in-
| |
| # fringe privately-owned rights. Mention of any product, its manufactur-
| |
| # er, or suppliers shall not, nor is it intended to, imply approval, dis-
| |
| # approval, or fitness for any particular use. The U.S. and the Univer-
| |
| # sity at all times retain the right to use and disseminate the furnished
| |
| # items for any purpose whatsoever.
| |
| #
| |
| # Permission Notice
| |
| #
| |
| # Permission is hereby granted, free of charge, to any person obtaining a
| |
| # copy of this software and associated documentation files (the "Software"),
| |
| # to deal in the Software without restriction, including without limitation
| |
| # the rights to use, copy, modify, merge, publish, distribute, sublicense,
| |
| # and/or sell copies of the Software, and to permit persons to whom the
| |
| # Software is furnished to do so, subject to the following conditions:
| |
| #
| |
| # The above copyright notice and this permission notice shall be included
| |
| # in all copies or substantial portions of the Software.
| |
| #
| |
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
| |
| # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTA-
| |
| # BILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
| |
| # EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
| |
| # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
| |
| # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
| |
| # THE USE OR OTHER DEALINGS IN THE SOFTWARE.
| |
| #
| |
| # MARCDD image header format
| |
| #
| |
| # TIFF header 1024 bytes
| |
| # Private frame header 3072 bytes
| |
| ## file/header format parameters 256 bytes
| |
| ## data statistics 128 bytes
| |
| ## more statistics 256 bytes
| |
| ## goniostat parameters 128 bytes
| |
| ### xtal_to_detector int32 (mm*1000)
| |
| ### beam_x int32 (pixel*1000)
| |
| ### beam_y int32 (pixel*1000)
| |
| ## detector parameters 128 bytes
| |
| ### detector_type int32
| |
| ### pixelsize_x int32 (nanometers
| |
| ### pixelsize_y int32 (nanometers
| |
| ##X-ray source parameters 128 bytes
| |
|
| |
| die "ERROR: Missing Argument. \nUsage: $0 [options] <image_filename>\n" unless @ARGV;
| |
|
| |
| while ($_ = $ARGV[0], /^-/) {
| |
| shift;
| |
| last if /^--$/;
| |
| # if (/^-D(.*)/) { $debug = $1 }
| |
| if (/^-v/) { $verbose = 1 }
| |
| # ... # other switches
| |
| }
| |
|
| |
| open ( FILE, '<', $ARGV[0] ) or
| |
| die ( "ERROR: Cannot open file" );
| |
|
| |
| seek ( FILE, 1024+80, 0 );
| |
| read ( FILE , $size_fast, 4 );
| |
| read ( FILE , $size_slow, 4 );
| |
|
| |
| seek ( FILE, 1024+256+128+256, 0 );
| |
|
| |
| read ( FILE , $xtal_to_detector, 4 );
| |
| read ( FILE , $beam_x, 4 );
| |
| read ( FILE , $beam_y, 4 );
| |
|
| |
| seek ( FILE, 1024+256+128+256+16, 0);
| |
|
| |
| read ( FILE , $exp, 4 ); #exp time x 1000
| |
|
| |
| seek ( FILE, 1024+256+128+256+44, 0);
| |
| read ( FILE , $start_phi, 4 ); #start phi x 1000
| |
| seek ( FILE, 1024+256+128+256+76, 0);
| |
| read ( FILE , $end_phi, 4 ); #end phi x 1000
| |
|
| |
| seek ( FILE, 1024+256+128+256+128, 0 );
| |
|
| |
| read ( FILE , $detector_type, 4 );
| |
| read ( FILE , $pixelsize_x, 4 );
| |
| read ( FILE , $pixelsize_y, 4 );
| |
|
| |
| seek ( FILE, 1024+256+128+256+128+128+12, 0 );
| |
| read ( FILE , $wavelength, 4 ); #wavelength x 10000
| |
|
| |
| close ( FILE );
| |
|
| |
| $size_fast = unpack ('i*' ,$size_fast);
| |
| $size_slow = unpack ('i*' ,$size_slow);
| |
| $xtal_to_detector =unpack('i*' ,$xtal_to_detector) / 1000;
| |
| $detector_type =unpack('i*' ,$detector_type);
| |
| $beam_x = unpack ('i*' ,$beam_x) / 1000 ; # pixels
| |
| $beam_y = unpack ('i*' ,$beam_y) / 1000 ; # pixels
| |
| $beam_xc = $size_fast - $beam_x ;
| |
| $beam_yc = $size_fast - $beam_y ;
| |
| $pixelsize_x = unpack ('i*' ,$pixelsize_x) / 1000000 ; # mm
| |
| $pixelsize_y = unpack ('i*' ,$pixelsize_y) / 1000000 ; # mm
| |
| $beam_x_mm = $beam_x * $pixelsize_x ; # mm
| |
| $beam_y_mm = $beam_y * $pixelsize_y ; # mm
| |
| $exp = unpack ('i*' ,$exp) / 1000 ; #seconds
| |
| $start_phi = unpack ('i*' ,$start_phi); #mdeg
| |
| $end_phi = unpack ('i*' ,$end_phi); #mdeg
| |
| $osc = ($end_phi - $start_phi)/1000; # deg
| |
| $wavelength = unpack ('i*' ,$wavelength)/100000 ; #A
| |
|
| |
| if ($verbose) {
| |
| print "NX= ${size_fast} NY= ${size_slow} QX= ${pixelsize_x} QY= ${pixelsize_y} \n";
| |
| print "DETECTOR_DISTANCE= ${xtal_to_detector} \n";
| |
| print "ORGX= ${beam_xc} ORGY= ${beam_yc} \n";
| |
| print "OSCILLATION_RANGE= ${osc} \n";
| |
| print "X-RAY_WAVELENGTH= ${wavelength} \n";
| |
|
| |
| } else {
| |
| print "$size_fast,$size_slow", "\n";
| |
| print "$xtal_to_detector", "\n";
| |
| print "$beam_x_mm,$beam_y_mm", "\n";
| |
| print "$pixelsize_x", "\n";
| |
| print "$exp","\n";
| |
| print "$osc","\n";
| |
| print "$wavelength","\n";
| |
| }
| |
|
| |
| exit
| |
| </pre> | | </pre> |