# Diffractogram Tool

Diffractogram shows a result of azimuth integration on 1d plot

- Calibration loads pyFAI calibration files, e.g. in PONI format
- Range defines the integration ranges
- combobox with Units sets x-axis units of the 1d diffractogram plot
- Show/Stop - switches on/off continuous mode of diffractogram update with each image
- Next - (re-)computes a diffractogram for the current image
- combobox with a Number of diffractograms corresponding to different ranges

Ranges and 1d plots colors can be changed in the lavue Configuration by setting Ranges and ROIs Colors`.`

Also in the Configuration the user can change

- Diffractogram size: number of points in the diffractogram
- Correct Solid Angle: correct solid angle flag for diffractogram

A contour plot of diffractograms (collected in time) can be created with use of the Buffering widget

- Buffer size: maximal number of diffractograms in the heat-map plot
- Reset: reset the diffractogram buffer
- Collect/Stop: start or stop collect diffractograms in the buffer
- Main plot: select 2D-plot i.e. Image shows the original image, Buffer <?> shows a buffer for the <?> diffractogram range

The configuration of the tool can be set with a JSON dictionary passed in the `--tool-configuration` option in command line or a`toolconfig` variable of `LavueController.LavueState` with the following keys:

`calibration` (string), `diff_number` (integer),`` `diff_ranges` ( [azimuth_start, azimuth_end, radial_start, radial_end] for each diffractogram i.e. lists of four floats), `diff_units` ( `"``q [1/nm]", "q [1/A]", "2th [deg]", "2th [rad]","r [mm]", "r [pixel]"` string), `buffer_size` (integer), `buffering` (boolean), `collect` (boolean), `show_diff` (boolean), `main_plot` (`image, buffer 1, buffer 2, buffer 3` or `buffer 4` string)

e.g.

`lavue -u diffractogram -s test --tool-configuration \{\"calibration\":\"test/images/eiger4n_al203_13.45kev.poni\",\"diff_number\":2,\"diff_ranges\":[[10,20,0,10],[-5,5,5,15]],\"diff_units\":\"r\ [mm]\",\"buffering\":true``,\"buffer_size\":512\} --start`