SO2

We have downloaded several SO2 cross-sections from the MPI-Mainz UV/VIS Spectral Atlas and built optical corresponding optical properties within the sasktran core components. Our philosophy has been to present the cross-section data as measured with no modification on our part. We thank the the people at the Max-Planck Institute for Chemistry, Mainz, Germany for their excellent online database,

../_images/so2_all.png

Keller-Rudek, H., Moortgat, G. K., Sander, R., and Sörensen, R.: The MPI-Mainz UV/VIS spectral atlas of gaseous molecules of atmospheric interest. Earth Syst. Sci. Data, 5, 365–373, 2013, DOI: 10.5194/essd-5-365-2013

SO2_VANDAELE2009

High-resolution absorption measurements using a Fourier transform spectrometer at a resolution of 2 cm-1 at T = 298, 318, 338, 358 K, p = 0.05 - 199 Torr, on the spectral interval 23500-44500 cm-1 (227.275 nm to 416.658 nm):

import sasktranif as skif
import numpy as np
import matplotlib.pyplot as plt

optprop = skif.ISKOpticalProperty('SO2_VANDAELE2009')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 210,420, 0.1 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )

plt.plot( wavelen, np.log10(abs), '.-')
plt.xlabel('Wavelength nm')
plt.ylabel('log10( Cross-section ) ')
plt.title('Example of SO2 Vandaele et al. 2009')
plt.show()
../_images/so2_vandaele2009.png
  1. Hermans, A. C. Vandaele, and S. Fally. “Fourier transform measurements of SO2 absorption cross sections:I. Temperature dependence in the 24000-29000 cm-1 (345-420 nm) region,”. J. Quant. Spectrosc. Radiat. Transfer, 110, 756-765 (2009); doi:10.1016/j.jqsrt.2009.01.031

    1. Vandaele, C. Hermans, and S. Fally. “Fourier transform measurements of SO2 absorption cross sections:II. Temperature dependence in the 29000-44000 cm-1 (227-345 nm) region,”. J. Quant. Spectrosc. Radiat. Transfer 110, 2115-2126 (2009); doi:10.1016/j.jqsrt.2009.05.006

SO2_BOGUMIL2003

SO2 cross-sections measured at the resolution of the SCIAMACHY PFM spectrometer from 239 nm to 395 nm at 203 K, 223 K, 243 K, 273 K and 293 K. with a spectral resolution of 0.21 to 0.22 nm. Spectral regions are cut and concatenated at 251.1 nm and 312.8 nm by the authors and scaled to the absorption cross sections measured by Vandaele et al. 1994:

import sasktranif as skif
import numpy as np
import matplotlib.pyplot as plt

optprop = skif.ISKOpticalProperty('SO2_BOGUMIL2003')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 230,410,0.1 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )

plt.plot( wavelen, np.log10(abs), '.-')
plt.xlabel('Wavelength nm')
plt.ylabel('log10( Cross-section ) ')
plt.title('Example of SO2 Bogumil 2003')
plt.show()
../_images/so2_bogumil2003.png
  1. Bogumil, J. Orphal, T. Homann, S. Voigt, P. Spietz, O.C. Fleischmann, A. Vogel, M. Hartmann, H., Bovensmann, J. Frerick, and J.P. Burrows, “Measurements of molecular absorption spectra with the SCIAMACHY pre-flight model: Instrument characterization and reference data for atmospheric remote sensing in the 230-2380 nm region”, J. Photochem. Photobiol. A: Chem., 157, 167-184 (2003); doi:10.1016/S1010-6030(03)00062-5

A.C. Vandaele, P.C. Simon, Guilmot. M., M. Carleer, and R. Colin, “SO2 absorption cross section measurement in the UV using a Fourier transform spectrometer,” J. Geophys. Res., 99, 25599-25605 (1994); doi:10.1029/94JD02187

SO2_RUFUS2003

High-resolution (0.0005-0.0032 nm) absorption cross sections from 220.0 to 325.2 nm at 295K measured by using a Fourier transform spectrometer. Absorption cross sectionsfrom CfA (Harvard-Smithsonian Center for Astrophysics) Molecular Databases.:

import sasktranif as skif
import numpy as np
import matplotlib.pyplot as plt

optprop = skif.ISKOpticalProperty('SO2_RUFUS2003')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 210,350, 0.1 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )

plt.plot( wavelen, np.log10(abs), '.-')
plt.xlabel('Wavelength nm')
plt.ylabel('log10( Cross-section ) ')
plt.title('Example of SO2 Rufus 2003')
plt.show()
../_images/so2_rufus2003.png

Rufus, J., Stark, G., Smith, P. L., Pickering, J. C., and Thorne, A. P.: High‐resolution photoabsorption cross section measurements of SO2, 2: 220 to 325 nm at 295 K, J. Geophys. Res., 108, 5011, (2003); doi:10.1029/2002JE001931, E2.

SO2_FREEMAN1984

High resolution cross-sections measured from 171.079 nm to 239.860 at 213K at 0.002 nm resolution.:

import sasktranif as skif
import numpy as np
import matplotlib.pyplot as plt

optprop = skif.ISKOpticalProperty('SO2_FREEMAN1984')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 170.0, 240.0, 0.1 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )

plt.plot( wavelen, np.log10(abs), '.-')
plt.xlabel('Wavelength nm')
plt.ylabel('log10( Cross-section ) ')
plt.title('Example of SO2 Freeman 1984')
plt.show()
../_images/so2_freeman1984.png

D.E. Freeman, K. Yoshino, J.R. Esmond, and W.H. Parkinson. “High resolution cross section measurements of SO2 at 213 K in the wavelength region 172 - 240 nm”, Planet. Space Sci., 32, 1125-1134, (1984); doi:10.1016/0032-0633(84)90139-9

Examples

Some examples:

import sasktranif as skif
import numpy as np
import matplotlib.pyplot as plt

optprop = skif.ISKOpticalProperty('SO2_VANDAELE2009')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 210,420, 0.1 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )
plt.plot( wavelen, np.log10(abs), '.-')


optprop = skif.ISKOpticalProperty('SO2_BOGUMIL2003')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 230,410, 0.1 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )
plt.plot( wavelen, np.log10(abs), '.-')

optprop = skif.ISKOpticalProperty('SO2_RUFUS2003')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 210,350, 0.1 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )
plt.plot( wavelen, np.log10(abs), '.-')

optprop = skif.ISKOpticalProperty('SO2_FREEMAN1984')
msis    = skif.ISKClimatology('MSIS90')
mjd = 52393.3792987115;
location = [0.0, 0.0, 25000.0, mjd]
optprop.SetAtmosphericState( msis)
optprop.SetLocation(location)
wavelen = np.arange( 170.0, 240.0 )
ok, abs, ext,sca = optprop.CalculateCrossSections( 1.0E7/wavelen )
plt.plot( wavelen, np.log10(abs), '.-')

plt.xlabel('Wavelength nm')
plt.ylabel('log10( Cross-section ) ')
plt.title('SO2 Cross-sections')
plt.legend( ['Vandaele 2009','Bogumil 2003', 'Rufus 2003', 'Freeman 1984'] )
plt.show()