iFit

Introduction

iFit is a spectral analysis tool designed to retrieve volcanic SO2 slant column densities (SCDs) from passive measurements of scattered UV sunlight. It is a similar method to the traditional Differential Optical Absorption Spectroscopy (DOAS) approach commonly used by volcanologists, but has two main differences:

  1. The forward model and all calculations therein are computed in intensity on a high resolution (0.01 nm spaced) wavelength grid, instead of in optical depth. This avoids the need for several corrections required by traditional DOAS, namely the I0-effect and saturation effects.

  2. A high resolution literature solar spectrum is used in place of the measured reference spectrum, removing the chance for contamination of the reference spectrum with SO2.

More details on iFit can be found in following paper: Esse et al. (2020)

Installation

To install iFit simply clone this repository. iFit is written in Python and requires version 3.6 or higher, with numpy and scipy. An example script is given in iFit.py (note this also uses matplotlib, pandas and tqdm).

There is also a Graphical User Interface (GUI), accessible by running iFitUI.py. This additionally requires PyQt5, pyqtgraph, pyyaml and pandas.

The GUI can also handle spectra acquisition using the python-seabreeze library with Ocean Insight (previously Ocean Optics) spectrometers.

The easiest way to install is using Anaconda. First create a new environment:

conda create -n myenv python=3.6 numpy scipy matplotlib pyqt pyqtgraph pyyaml pandas

Setting myenv to whatever name you want to use for the environment. Then activate the environment once it is created:

conda activate myenv

Finally, install python-seabreeze if required

conda install -c conda-forge seabreeze

Alternatively an executable is available. Currently this is only for Windows, however if you require an alternative version please get in touch and I will try to help.