SMV image file format

The SMV file format is a broad standard x-ray diffraction image file format that appeared with the first CCD-based x-ray detectors. SMV stands for Super Marty View, a program written by Dr. Martin "Marty" Stanton to display the images form the original SBC CCD detector. The format is largely informal, the only rigid rule is that the file header is text and begins with the string: "\n{HEADER_BYTES=", where \n is the newline character (ASCII decimal code 13). This string must be followed with an ASCII number indicating the number of bytes in the header before the start of the image data. The header itself is generally expected to be all text and describe the nature of this image data in a keyword=value type format. The most common SMV header is 512 bytes. So common in fact that many data processing programs assume that it is without reading the HEADER_BYTES entry. An example of such a 512-byte header is given here:


{
HEADER_BYTES=  512;
DIM=2;
BYTE_ORDER=little_endian;
TYPE=unsigned_short;
SIZE1=3072;
SIZE2=3072;
PIXEL_SIZE=0.102592;
BIN=2x2;
BIN_TYPE=HW;
ADC=fast;
CREV=1;
BEAMLINE=ALS831;
DETECTOR_SN=926;
DATE=Thu Apr 17 07:45:15 2008;
TIME=0.674101;
ACC_TIME=2860;
DISTANCE=150.05;
TWOTHETA=0.00;
PHI=0.000;
OSC_START=0.000;
OSC_RANGE=1.000;
WAVELENGTH=1.115872;
BEAM_CENTER_X=156.27;
BEAM_CENTER_Y=156.52;
DENZO_X_BEAM=158.64;
DENZO_Y_BEAM=156.27;
}

Description of common keywords:

DIM indicates that the image is two-dimensional. No known beamlines produce other-dimensional SMV images.

BYTE_ORDER can be either little_endian or big_endian. No other values are known to be in use. This reflects the byte ordering of the image data. Big endian implies that the first byte of a 16-bit number is the most significant byte. Little endian implies the opposite. For more information, see [1]

TYPE All known SMV images use the unsigned short integer (16 bit) value of TYPE.

SIZE1 number of pixels along each edge of the image. It is unclear and unimportant which of SIZE1 or SIZE2 is X or Y as all known SMV image formats are square.

PIXEL_SIZE Size of a pixel. All known formats provide this number in millimeters.

BIN degree of pixel binning (averaging) used when reading out the CCD. Some image processing programs need to know this value in order to estimate the detector read-out noise.

BIN_TYPE Introduced for the ADSC Quantum 315r detectors to indicate that the binning was done on the hardware level, as opposed to the software level. Some image processing programs need to know this value in order to estimate the detector read-out noise.

ADC indicates the mode of the analog-to-digital converter used to read out the image.

CREV Introduced by ADSC to indicate the version number of the SMV header style. Some image processing programs need to know this value in order to estimate the detector read-out noise.


BEAMLINE Introduced at the Advanced Light Source to indicate which beamline was used to collect the data.

DETECTOR_SN Serial number of the ADSC detector used to collect the image. Useful for determining which beamline was used to collect the data, but not with 100% reliability as detectors can move from beamline to beamline.

DATE A common, but unfortunately not universal entry to indicate when the image was collected. There is no standard to the nature of this format, but it is usually a Unix date.

TIME exposure time of the image in seconds. Sometimes this can be half the exposure time if the image was dezingered, but confusing records like this are discouraged.

ACC_TIME number of milliseconds between the start and stop of electron accumulation on the CCD. This is useful for determining an appropriate dark current.

DISTANCE the sample-to-detector distance. All known SMV file formats give this in millimeters. Although this is generally the distance along a line normal to the detector surface, there is no universal standard for this. It could also mean the distance that would be traveled by the direct beam before hitting the surface of the detector.

TWOTHETA detector angle relative to the normal-to-beam orientation.

PHI Starting value of spindle rotation motor for this image.

OSC_START Starting value of spindle rotation motor for this image.

OSC_RANGE change in value of spindle rotation motor for this image.

WAVELENGTH X-ray wavelength used to obtain this image. All known SMV file formats give this in Angstrom.

BEAM_CENTER_X Position on the detector face that would be hit by the direct x-ray beam if the beamstop were removed. Most beamlines give this in millimeters, but some at ESRF give it in pixel units. Unfortunately, there are also 16 possible conventions for representing the beam center (4 corners to use as 0,0, and 2 axes to assign to either "X" or "Y"), and nearly all of these are used by one program or another.

At the Advanced Light Source and Stanford Synchrotron Radiation Lab these values are given so as to give the correct beam center display in the program ADXV (provided by ADSC).


DENZO_X_BEAM Introduced at the Advanced Light Source to indicate the direct beam position to enter into the data processing program denzo or mosflm, as these programs coincidentally use the same beam center convention. This was an attempt to avoid confusion by specifying the convention explicitly.