Table of Contents


marPredict - Predicts diffraction spots from marIndex parameters (or any other).


marPredict [ -h ] FILE


marPredict predicts diffraction spots for one or more oscillation ranges based on parameters obtained from the indexing program marIndex. marIndex produces a file (<name>.amp) containing all input parameters and - in addition - the resulting cell axes, angles, orientation and zone axes refinement parameters. This file can be taken directly as input. Like in program marIndex, program marPredict will always also consider the contents of a file called <name>.prm if it resides in the current directory. This ".prm" file is supposed to contain fixed parameters valid for all images of a data set, e.g. the wavelength or distance. The entries found in the ".prm" file may be overwritten by entries found in the option control input file! The nomenclature for both ".prm" and other input files is the same.

marPredict produces a binary output file with extension <name>.prd. The structure of this binary file is described below.

The program can be run stand-alone but usage within the graphical user interface automar is highly recommended.


Print usage information.

Read diffraction parameters from file FILE, e.g. marPredict.ctrl

Coordinate System

The coordinate system is defined such that X is the horizontal axis and Y the vertical axis, the origin being the lower left corner when seen in direction of the beam onto the detector surface.

Detector tilt and rotation are defined by 3 rotation angles around X, Y, and the detector normal Z (axis not used otherwise), in the math. +ve sense. Positive tilt_X or tilt_Y bring the upper or left half of the detector closer to the sample. A positive rotation (turn_Z) rotates the detector plane counter-clockwise as seen from the sample.

To avoid confusion, crystal coordinates x & y are defined parallel to X & Y, making the z-axis anti-parallel to the beam direction.

Crystal axes are defined by permutation indices l1,l2,l3 with values +|-(1,2,3) where "1" denotes the a*-axis, "2"=b*, "3"=c*; "+" means parallel and "-" anti- parallel to a coordinate axis; in this way l1 gives the reciprocal crystal axis along the x-axis; l2 that one "up" in the x-y-plane. The l3 index (towards the radiation source) is redundant, but may be forced to yield a left- handed system.

Orientation angles are given in degrees and are numbered the same way but are applied from right to left:

rotates around the z-axis (counter-clockwise when looking along the beam). Applying this missetting first allows easy setting of e.g. a crystallographic face diagonal along the rotation axis by phi_z = 45. + delta_phi_z, where delta_phi3 is the true missetting angle. The 45 deg. are not altered by any of the other phi_x,phi_y

rotates around the y-axis, again in the math. +ve sense.

is a mere correction of the spindle axis (if it is horizontal) and may thus be used as an offset for the PHI axis reading.

Example: hexagonal c*-axis along the (horizontal) PHI-axis, a* up => (3,1,2). phi_x=30 brings the b*-axis exactly against the beam.

marIndex always produces setting parameters with missetting angles < 45 deg. (except for trigonal alternatives) and assigns permutation indices accordingly, although an easier permutation of axes may exist - especially in the case of equivalent axes (e.g. a cubic crystal might always be described by "axes 1 2 3" but may be assigned "3 1 2").


The accepted keywords in the parameter file (either ".amp", ".ctrl" or ".prm) are given below. Lines starting with "!", "#", "*", "----" or "remark" will be ignored. In addition, a "!" somewhere in a line will make the rest of the line to be ignored. Keywords are case insensitive.

SPAC*e-group <number> or <name>
Space group of crystal.
Default: SPACE-GROUP 1 (P1)

LATT*ice <name>
Bravais lattice or extinction group: one of "aP", "mP", "mC", "mA", "mB", "mI", "hP", "hR", "oP", "oC", "oI", "oF", "tP", "tI", "cP", "cI", or "cF". Obsolete when SPACEgroup given.
Default: LATTICE aP

CELL <a> <b> <c> [<alpha> <beta> <gamma>]
Unit cell parameters in Ang, deg.
Default: Angles all 90.0 deg.

DIST*ance <dist>
Sample to detector distance in mm.
Default: DISTANCE 100.0

WAVE*length <lambda1> [delta_lambda1/lambda1] [<lambda2> [delta_lambda2/lambda2]]
Wavelength of radiation in Ang.. May be given as "Cu", "Mo" or "Ag". With "Mo" or "Ag" the program will consider K-alpha_1 and K-alpha_2 components of the radiation. With "Cu", the program will consider K-alpha and K-beta components of the radiation. Delta_lambda1/lambda1 is optional (e.g. 0.003 for Cu-radiation). A second wavelength and its delta_lambda2/lambda2 may optionally be given resulting in the prediction of 2 superimposed patterns.

MOSA*icity <mosa_x> [<mosa_y>]
Mosaic spread of crystal in degrees. When no y-component is given, the mosaicity will be assumed to be isotropic.
Default: MOSAICITY 0.0

DIVE*ergence <div_y> [<div_x>]
Divergence of the beam in degrees. When no x-component is given, the divergence will be assumed to be isotropic.
Default: DIVERGENCE 0.0

CHI <chi>
CHI angle in degrees.
Default: CHI 0.0

OMEGA <omega>
OMEGA angle in degrees.
Default: OMEGA 0.0

TWOTHETA <twotheta>
2-Theta angle in degrees.
Default: TWOTHETA 0.0

SPOT*-size <x> <y>
Hor. (x) and vert. (y) size of spots in mm.
Default: SPOTSIZE 1.0 1.0

RESO*lution <max>
Max. resolution limit in Angst.
Default: RESOLUTION 2.0

BEAM*center <xcen> <ycen>
Center of beam in x and y (pixels).
Default: Half plate diameter.

PIXE*lsize <pixelsize_x> [<pixelsize_y>]
Pixelsize in x (and y, if differing from x) in mm .
Default: PIXELSIZE 0.150

IMAG*e <ffrm> <lfrm> START <phi_beg> OSC <dphi>
First (<ffrm>) and last (<lfrm>) image for which to generate predictions, the PHI position at the beginning of image <ffrm> (<phi_beg>) and the delta-PHI (<dphi>) per image.
Example: IMAGE 1 1 START 0.0 OSC 1.0

IMAG*e <template>
Image file name template with the image number embraced by <brackets>.
Example: IMAGE xtal_<000>

FILE*name <image_file_>
Specifies the complete image file name, not just the name root with the image number stripped off.
Example: lyso_001.mar1200

SCAN <size_x> [<size_y>]
No. of pixels in image in 1 dimension. Use one of: 1200, 1600, 1800, 2000, 2300, 3000 or 3450 (all IP) or 2048 (CCD)
Default: read from image file header

ORIE*ntation <phi_x> <phi_y> <phi_z>
Orientation angles of crystal in marIndex notation.
Default: ORIENTATION 0.0 0.0 0.0

AXES <l1 l2 l3>
Direction of the orientation angles in marIndex notation.
Default: AXES 1 2 3

TILT <tilt_X> [<tilt_Y>]
Detector tilt about the horizontal and vertical axis in degrees.
Default: TILT 0.0 0.0

ROT <turn_Z>
Detector rotation with respect to the projection of the 2-theta axis in degrees.
Default: ROT 0.0

SKEW <tilt_X> <tilt_Y> <turn_Z>
Combines keywords TILT and SKEW (see above).
Default: SKEW 0.0 0.0 0.0

(BEAM-)STOP <x_beg> <y_beg> <x_end> <y_end> [<width>]
Reject spots within a rectangle defined by <x&y_beg> in the lower left corner to <x&y_end> in the upper right corner (in pixel units). To exclude areas that are not running parallel to the horizontal and vertical plane, specify the <width> of the rectangular section. In that case, the x&y-coordinates given mark the start and end of a line and 2*<width> would be the thickness of the line .
Default: STOP 0 0 0 0 0

EXCLUDE SHADOW <x> <y> <r>
Reject spots within a circle of radius <r> pixels centered at pixels <x>,<y>.
SHADE <x1> <y1> <x2> <y2> [<width>]
Reject spots within a rectangle spanned between pixels <x1>,<y1> and <x2>,<y2>. If an optional width is given, the rectangle is tilted. The given coordinates then represent the middle of two opposite sides (with length <width>) of the rectangle.
RING <d1> <d2>
Reject spots within a resolution ranges <d1> to <d2>.
Reject spots within ice rings at 3.89 A, 3.67 A, 3.44 A, 2.67 A and 2.25 A.

Input Files

The program requires the input file in the local directory.

Output Files

The format of the binary spot file is as follows:

1.) Header:
Contains 1024 bytes (characters) and contains nothing more than the input file (.ctrl or .amp) in ASCII format, so the contents of this header can be looked up with something like "more".
2.) 1. data record with some identifiers
The record structure is given below. Since the record elements are 16-bit values, there is some requirement for byte-swapping when moving files between little-endian (Intel, Alpha) and big-endian (SGI, HP, Motorola) processors. Therefore, the first 16-bit element in the 1. data record only contains a fixed no. ("3001") which will let other programs recognize if this is a "marPredict"-file at all and if it requires byte-swapping.
3.) 2. data record through end-of-file
Predicted hkl, x/y-coordinates, etc.

Each data record is 32 byte long, 14 entries with 2-byte values (16-bit), and 1 entry with a 4-byte value (32-bit):

Element-type1. recordOther records
signed short3001h
signed short# pixels along xk
signed short# pixels along yl
unsigned short# of predicted latticeslattice
unsigned shortMultiplicator for 6-9flag
signed shortCenter x * multiplicatorx
signed shortCenter y * multiplicatory
unsigned shortDelta-PHI * 100Lorentz polar.
signed shortStart-PHI * 100PHI
unsigned shortRmax * multiplicatorRadius
unsigned shortRmin * multiplicatorcos(2-theta)
signed shortmosaicity * 100overlap
signed shortpixelsize x (micron)xoverlap
signed shortpixelsize y (micron)yoverlap
unsigned inttotal number of spotsspot number


The program itself is called in a very simple way:

marPredict marPredict.ctrl
The program reads parameters from file marPredict.ctrl in the local directory.

marPredict xtal_001
The program reads parameters from file xtal_001.amp in the local directory.

Example of file contents of the input file:

cell79.310 79.310 38.031 90.000 90.000 90.000
orientation36.369 -11.957 -10.269
axes3 2 -1
radius5.0 89.96
spotsize0.980 0.980
image1 1 START 0.000 OSC 0.500
scanmode1200 x 1200
pixelsize0.150 0.150
beamcenter595.700 598.150

See Also

automar, marPeaks, marIndex, marProcess


Klaus Bartels, marXperts GmbH, Norderstedt,



© Copyright 1997-2003 marXperts GmbH, Norderstedt, Germany


marXperts GmbHPhone: +49 - (40) - 529 884-0
Werkstr. 3 FAX: +49 - (40) - 529 884-20
D-22844 Norderstedt -

Table of Contents