The file absorbance.py is a Python script which implements the procedure for estimation of the principal absorbances of a crystal from unpolarised spectroscopic measurements described by Jackson et al. (2018) This paper provides a rigorous treatment of the estimation problem, which is an improvement of the simplistic approach of Sambridge et al (2008), see also Kovács et al .(2008).

The input to the python script is an Excel spreadsheet with columns of unpolarised absorbances. One column per dataset. The example implements the test cases described in detail in Jackson et al. (2018) and compares estimation of the estimated principal absorbances using the original procedure of Sambridge et al. (2018) together with the improved procedure of Jackson et al. (2018). Results are produced in the forms of figures which should mimic those in Jackson et. al. (2018) and a text to the python terminal.

Uncertainty in the estimated principal absorbances takes the form of a probability density function over each parameter as seen below and in Figure 9 of Jackson et al. (2018). Error distributions are not symmetric nor Gaussian.

This program has been developed and tested with the python interpreter Enthought Canopy. This is free software for academic use (https://www.enthought.com/product/canopy/). Use on other python 2 or python 3 systems should be straightforward provided all standard libraries are available. It's been successfully tested on linux system python 2 and 3 and OSX macports python 2 and 3

Conditional PDFs produced by the python script absorbance.py for the test problem described by Jackson et al. (2018). This figure is comparable to Figure 9 of Jackson et al. (2018).

It is hoped that the example driver program in absorbance.py is straightforward enough for anyone with a working knowledge of python to modify as desired. The file may also be imported as a library into the users existing python scripts.


A tar file absorbance.tar.gz is provided for download containing the python source code absorbance.py and the excel spreadsheet Absorbance_testdata.xlsx containing input data sets.


The inverse problem of unpolarised infrared spectroscopy of geological materials: Estimation from noisy random sampling of a quadratic form, Jackson, A., Parker, R.L., Sambridge, M., Constable, C., Wolf, A.,, American Mineralogist, 103, 1176-1184, 2018. doi:10.2138/am-2018-6152.

Quantitative absorbance spectroscopy with unpolarized light: Part II. Experimental evaluation and development of a protocol for quantitative analysis of mineral IR spectra, Kovács, I., Hermann, J., O'Neill. H. St.C., FitzGerald, J., Sambridge, M., American Mineralogist, 93, 765-778, 2008. doi:10.2138/am.2008.2656.

Quantitative absorbance spectroscopy with unpolarized light: Part I. Physical and mathematical development, Sambridge, M., FitzGerald, J., Kovács, I., O'Neill. H. St.C., Hermann, J., American Mineralogist. 93, 751-764, 2008. doi:10.2138/am.2008.2657.