Skip to main content

SAXS Program Package


The routines of the SAXS Program Package (see manual) perform tasks that typically arise during or after data acquisition, like pixel by pixel operations on single or multiple images. These routines support storage of metadata like pixel size, wavelength, history etc. in the same file together with the scattering image. All experimental parameters can be saved together with the raw data during data acquisition and can be modified or updated later. It is possible to propagate statistical errors using a variance array. When generated it is written in an additional data block (Error block) following the primary scientific data (Psd block).

For this purpose a file format has been chosen that can store additional information together with the image data (ESRF data format). Metadata is written as keyword value pairs into a text header that can be viewed with commonly available editors, e.g. emacs or wordpad. The binary image data is appended to the end of the header. The package contains an implementation of input/output routines for EDF files that can be used for other developments. Because a commonly accepted definition of this format is missing a manual of  the SAXS format is available below.



The program package SAXS is a set of command line routines for mathematical operations on sequences of one or two-dimensional small- and wide angle scattering data, like the multiplication with a factor and adding a constant to a series of image data (saxs_mac) or the subtraction of image series (saxs_sub). It keeps track of metadata and supplies history information. Similar programs are available for addition, multiplication and division. Other routines allow row and column integration and azimuthal regrouping. The program saxs_normn normalizes the pixel intensities to an absolute scale. The program saxs_waxs allows several projections of wide angle scattering data, depending on the symmetry of the sample (isotropic scattering, fiber symmetry). Starting from bare images the required metadata, like pixel size, wavelength and title, can be added step by step and are saved together with the image data if not already available in the raw data. Once the information is given, it will not be lost any more and can be modified, if necessary. Metadata are generally saved in basic SI-units (meter, kilogramm, seconds). The pixel sizes and wavelength must be given in meters. To make live easy on the command line it is possible to append a unit name with an underscore, e.g. 0.05_mm, 0.1_nm. These values are internally converted to 5e-5 and 1e-10.



The input data must be written in the ESRF data format (EDF). If not, they need to be converted, e.g. with ascii2saxs or binary2saxs. BSL data can be read without external conversion. However, it could be necessary to specify the actual byte order (option -bibo 1 or -bibo 2). There are also routines to read specific detector data. Memories of BSL data files can be selected with -i1mem <input memory number> and -omem <output memory number>. The default is 1. A negative memory number specifies variance data, i.e. memory -N contains the variances of memory +N (with N>0).



The SAXS routines are command line oriented and can be included into shell scripts for batch processing. The command line history that is stored in the data file facilitates the creation of scripts. The package does not contain a graphical interface. To display data or to create masks graphically other programs can be used, e.g. saxsutilities or fit2d.



The used geometry and parametrization is called SX. It is not restricted to small scattering angles but can also describe wide angle scattering data and data from differently oriented detectors. The SX Parametrization is used by the SAXS programs and in the correction program SPD, which is an all-in-one online image distortion correction, normalization and azimuthal regrouping program.  The SX parametrization is also used in edfplot which is a part of saxsutilities written by Michael Sztucki.


SAXS scattering geometry

  • Scattering geometry: I0 (incident number of photons), I1 (transmitted number of photons). is (number of scattered photons), C (point of normal incidence), L (distance between C and sample), p1,p2 (pixel size). The detector can be inclined with respect to the incident beam (rot1, rot2, rot3).
WAXS projection

  • Illustration of the WAXS projection. Pixel distances on a Saxs projection are proportional to distances on the detector. Pixel distances on a Waxs projection are proportional to distances in reciprocal space: sp=2*sin(Theta)*(WaveLength0/WaveLength), WaveLength0=1e-9 m.



SX Parametrization
Implementation of the EDF Data Format in the SAXS Package
SAXS Format Manual
SAXS Program Package Manual



Peter Boesecke