# HITRANCHEMICAL_XXX¶

Calculates the optical absorption and extinction of various atmospheric molecules using the Voigt line-shape and the HITRAN spectral line database. The object supports all of the HITRAN species specified in the HITRAN database file molparam.txt. HITRAN 2008 identifies 41 molecules and we use the molecule name rather than the HITRAN index number. The general notation is to replace the XXX in HITRANCHEMICAL_XXX with the uppercase chemical name (e.g. H2O) to produce HITRANCHEMICAL_H2O. The exception to the rule is the NO+ molecule (hitran index 36) is specified as HITRANCHEMICAL_NOPLUS.

HITRANCHEMICAL_H2O H2O
HITRANCHEMICAL_CO2 CO2
HITRANCHEMICAL_O3 O3
HITRANCHEMICAL_N2O N2O
HITRANCHEMICAL_CO CO
HITRANCHEMICAL_CH4 CH4
HITRANCHEMICAL_O2 O2
HITRANCHEMICAL_NO NO
HITRANCHEMICAL_SO2 SO2
HITRANCHEMICAL_NO2 NO2
HITRANCHEMICAL_NH3 NH3
HITRANCHEMICAL_HNO3 HNO3
HITRANCHEMICAL_OH OH
HITRANCHEMICAL_HF HF
HITRANCHEMICAL_HCL HCl
HITRANCHEMICAL_HBR HBr
HITRANCHEMICAL_HI HI
HITRANCHEMICAL_CLO ClO
HITRANCHEMICAL_OCS OCS
HITRANCHEMICAL_H2CO H2CO
HITRANCHEMICAL_HOCL HOCl
HITRANCHEMICAL_N2 N2
HITRANCHEMICAL_HCN HCN
HITRANCHEMICAL_CH3CL CH3Cl
HITRANCHEMICAL_H2O2 H2O2
HITRANCHEMICAL_C2H2 C2H2
HITRANCHEMICAL_C2H6 C2H6
HITRANCHEMICAL_PH3 PH3
HITRANCHEMICAL_COF2 COF2
HITRANCHEMICAL_SF6 SF6 PAR file is in HITRAN 2008 Supplemental folder. Move it to to HITRAN2008\By-Molecule\Uncompressed-files. This file is VERY LARGE
HITRANCHEMICAL_HCOOH HCOOH
HITRANCHEMICAL_HO2 HO2
HITRANCHEMICAL_O O
HITRANCHEMICAL_CLONO2 ClONO2 PAR file is in HITRAN 2008 Supplemental folder. Move it to to HITRAN2008\By-Molecule\Uncompressed-files
HITRANCHEMICAL_NOPLUS NO+
HITRANCHEMICAL_HOBR HOBr
HITRANCHEMICAL_C2H4 C2H4
HITRANCHEMICAL_CH3OH CH3OH
HITRANCHEMICAL_CH3BR CH3Br
HITRANCHEMICAL_CH3CN CH3CN
HITRANCHEMICAL_CF4 CF4 PAR file is in HITRAN 2008 Supplemental folder. Move it to to HITRAN2008\By-Molecule\Uncompressed-files
HITRANCHEMICAL_HC3N HC3N Not distributed in Hitran 2008
HITRANCHEMICAL_CS CS Not distributed in Hitran 2008

## Micro-Windows and Tolerance¶

The HITRANCHEMICAL_XXX class works on the concept of a micro-window and adjusts its Voigt line-shape calculations so that weak lines within the micro-window are ignored. This can generate a significant computational saving when used properly but can generate choppy signals when set too aggressively. The micro-window is specified using property SetWavenumberRange. The default micro-window is the entire set of lines specified in the Hitran database which is usually too aggressive and often results in choppy spectra. The micro-window must be set during initialization before any optical property calculations are made or calls to SetLocation are made, i.e. its one of the first things done to the object after it is created.

The HITRANCHEMICAL_XXX object will ignore lines within the micro-window that are weaker than a pre-determined limit. The limit is set as the maximum line strength in the window multiplied by a user defined tolerance. The default tolerance is 1.0E-09 while the maximum line strength is, by default, taken as the maximum line strength within the current micro-window. If the tolerance is too large then the resultant spectra may appear choppy. The choppiness can be eliminated by reducing the tolerance although the computational time will increase. The weak line limit is not only used to determine which lines to completely reject but also the cutoff limits for the Voigt line shape of accepted spectral lines. The tolerance can be adjusted by calling property SetLineTolerance and is applied to all subsequent calculations. The user can also achieve a similar effect using property SetMaxLineShapeStrength which will use a user defined maximum line strength rather than the maximum strength in the current micro-window.

Note that the tolerance calculation is applied independently to each HITRANCHEMICAL_XXX object. This is slightly different to some other codes which apply a single tolerance and maximum line strength globally to all atmospheric components within a given micro-window. However our technique will always include more lines than the “global” technique and will never be worse.

Users should be aware that the code ignores any spectral lines that lie outside the micro-window. This will cause inaccuracy in any spectral calculation if there are strong lines just outside the micro-window. Consequently we recommend users ensure they survey the spectral environment in the vicinity of their desired micro-window and expand the micro-window used in the calculation accordingly.

## Isotopes¶

Many molecules in the HITRAN database have several isotopic forms. By default we load the hitran database for all isotopes associated with the molecule and use the values which have already been adjusted by the HITRAN folks to naturally occurring abundances. The property SetIsotopeFilter allows you to select just one isotope of the molecule although we do not yet have any mechanisms to adjust for natural abundance.

## Hitran Installation¶

The code works with the 2008 HITRAN database. It does not yet work with HITRAN 2012, file parsum.dat was removed from the 2012 distribution. We will fix the issue at some point in time. We do not supply the Hitran database as it is not ours to give away. You can register and download the database for free from the HITRAN website, http://www.cfa.harvard.edu/hitran/. You need to download the same directory organization as stored on the hitran web site as our code looks for specific files in specific directories. After you have downloaded the database the Hitran folder should look like the figure below.

The object loads in the HITRAN spectral line data from the molecule specific PAR file stored in the hitran folder HITRAN2008\By-Molecule\Uncompressed-files. While these are fairly large files we find that our computers parse the files quite quickly especially compared to any subsequent radiative transfer calculations. However we do urge users to avoid unnecessary creation and destruction of the HITRANCHEMICAL_XXX objects to avoid excessive file parsing. HITRANCHEMICAL_XXX does not use the compressed files.

### Notes¶

1. The Hitran 2008 PAR files for SF6, ClONO2 and CF4 are distributed in the Supplemental folder and must be manually copied to the HITRAN2008\By-Molecule\Uncompressed-files folder before you can use these molecules.
2. PAR files for HC3N and CS are not distributed in Hitran 2008.

### Hitran Registry Setting¶

The base directory of the HITRAN database must be entered into the proper registry setting. A default value is supplied during installation of the USASK SASKTRANIF Core objects but it is only appropriate for users working at the USASK-ARG group. Other users should edit the value presented on the first dialog screen of the installation script. Experienced users can edit the registry setting, e.g.[HKEY_LOCAL_MACHINE\SOFTWARE\USask-ARG\SkOpticalProperties\Hitran\] “BaseDirectory”=C:\Hitran

## Properties¶

SetIsotopeFilter( int isotopenumner)

Allows the HITRAN object to load in just one isotope of the requested molecule. The value set must match one of the isotope labels used for the given molecule in the HITRAN database file, molparam.txt. Note that the code does not adjust the line strength but uses the line strength value as written in the HITRAN database. This means you may have to account for and/or remove the abundance automatically built into the HITRAN database line strength values.

SetLineTolerance( double tolerance)

Allows the user to set the tolerance used to reject weak lines from the current micro-window. The default value is 1.0E-09. A larger value will speed up calculation of spectra but may result in choppy spectra at the smaller intensities, especially in extinction/absorption spectra which typically follow the log of the cross-secton. A smaller value will reduce choppiness but invrease computational speed. A similar result can be achived by changing property SetMaxLineStrength; the choice is really down to the users preference. Only values greater than zero are acceptable.

SetMaxLineStrength( double maxstrength)

Allows the user to manually set the maximum line strength within a micro-window. By default the object will use the strongest line in the micro-window. The value is used with the line tolerance to reject weak lines from spectral calculations. Reducing the value of the maximum line strength can reduce choppiness in the spectra. Its use is similar to property SetLineTolerance. Only values greater than zero are acceptable. A negative value is an error. A value of zero will disable the manual setting and reinstate usage of the default.

SetWavenumberRange( array(2) )

A 2 element array that specifies the lowest and highest wavenumber of interest. This will define the micro-window used by subsequent calculations. Users should call this property early in the objects life only micro-window within a gi The object will discard any spectral lines outside this range. This is normally done to optimize the execution of radiative transfer codes. This value must be set during initialization before spectral lines are read in.