===================================================== rsv_mapper.py ===================================================== :Info: :Author: Jon Wright :Date: 26 June 2009 :Revision: $Revision: $ Introduction ============ We wish to convert a series of diffraction images into a 3D reciprocal space volume. The rsv_mapper.py script which is in ImageD11 accomplishes this task. The program reads the geometry and computes k vectors for each pixel in the image and stores these in a cache. Then for each image, a rotation matrix is constructed representingthe rotation of the crystal axes compared to the laboratory axes. This matrix includes the current rotation of the crystal due to the diffractometer and also the orientation matrix. By applying the matrix, we can get to hkl values, or reciprocalspace co-ordinates, to use directly as array indices. The pixel values are accumulated in a 3D array and a second array counts the number of contributing pixels. This volume is written out in hdf format. Running the program =================== In common with many other scripts in ImageD11 you type:: $ rsv_mapper.py --help Usage: rsv_mapper.py [options] Options: -h, --help show this help message and exit The following options are all used to describe a series of images corresponding to a rotation experiment. They are the same for peaksearch.py:: -5 HDF5, --hdf5=HDF5 hdf file containing input image series This reads the series of images from an hdf file, in the event that you have them in that format (it is currently unlikely for raw data):: -n STEM, --stem=STEM stem name for input image series -f FIRST, --first=FIRST first number for input image series -l LAST, --last=LAST last number for input image series --ndigits=NDIGITS Number of digits in file numbering [4] -P PADDING, --padding=PADDING Is the image number to padded Y|N, e.g. should 1 be 0001 or just 1 in image name, default=Y -F FORMAT, --format=FORMAT format [.edf] for input image series -O FLOOD, --flood=FLOOD Flood -d DARK, --dark=DARK Dark image -s SPLINE, --splinefile=SPLINE Name of fit2d spline file for spatial dist -S OMEGASTEP, --step=OMEGASTEP omega step size -T OMEGA, --start=OMEGA start omega Some particular points to note: the dark and flood and spline images are quite important at this stage for avoiding artifacts. If your images are not already corrected it is important to use the right ones:: -p PARS, --pars=PARS ImageD11 parameter file for experiment See the transform module documentation. You need good instrument parameters to map the pixels to correct positions in reciprocal space. The program *does not* recompute k vectors based on the crystal translation, so it is better to set this to zero and align your crystal as well as you can:: -u UBIFILE, --ubifile=UBIFILE Name of ubi file (first matrix is used) An orientation matrix in ImageD11's format. This means the matrix which is used to make scattering vectors onto crystal axes (the axes you will use in reciprocal space):: hkl = (UBI).(g) -x NPIXELS, --npixels=NPIXELS Number of pixels in reciprocal space map per integer hkl [16] -i IMAGES, --images=IMAGES Number of images to process [all] This option removes a border around the images. Useful in the case that the detector image does not go to the edge:: -b BORDER, --border=BORDER Border around images to allocate space, px [10] FIXME: radius and mask:: -o OUTPUT, --output=OUTPUT Name of hdf5 output file How to get started ================== You need to calibrate your experimental setup in terms of beam center and sample to detector distance. Also determine the detector orientation. This is outside the scope of this document, see the transform module. Now you can choose Things to do ============ + Parallelise the code + Allow the user to select a region of interest + Radius and mask active pixel selections? + Process only specific planes + Rebin the image before processing (an optimisation) + Split pixels in 3D (at least add in a couple of intermediate angular steps) + Apply a polarisation correction + Write directly a format which can be read by chimera