Py4CAtS --- Python for Computational ATmospheric Spectroscopy

lbl2od scheme

Main Scripts/Functions: From Hitran/Geisa to Cross Sections to Optical Depths

extract
extract (select) lines of a certain molecule (and isotope) and/or wavenumber range from line parameter database
lbl2xs
line-by-line (lbl) cross sections for some molecule(s) and some p, T
lbl2od
computation of line-by-line optical depth due to molecular absorption (combines lbl2xs, xs2ac, ac2od)

Installation: Getting started with Py4CAtS

Download a tarball of Python sources, some data files, and the documentation and unpack it at some convenient place:
tar xfvz py4cats-lite.tgz

The top-level directory py4cats-lite includes a 1.ReadMe file with basic instructions, and four subdirectories bin, data, doc, and src.

Prerequisites: Python (version 2.6 or 2.7) and numpy (scipy sometimes and matplotlib for plotting)

And you need some line data (HITRAN and/or GEISA). For the beginning, here is a thermal infrared excerpt of Hitran 86.


Usage

Py4CAtS can be used in two ways, from the Unix/Linux (or Windows/Mac?) console/terminal or (much better, more flexible, ..... See the demo!NEW! or the poster for the ASA-HITRAN 2016 congress) inside the (I)Python interpreter.

Documentation

For a detailed review of line-by-line modeling for infrared radiative transfer see the manual py4cats-lite.pdf in the doc directory.
Sections 5 and 6 describe Py4CAtS' usage from the Unix/Linux shell and the (i)python shell, respectively.

How to cite Py4CAtS?

F. Schreier and S. Gimeno Garcia. Py4CAtS – Python Tools for Line-by-Line Modelling of Atmospheric Radiative Transfer. In Robert F. Cahalan and Jürgen Fischer (editors), Radiation Processes in the Atmosphere and Ocean (IRS 2012): Proceedings of the International Radiation Symposium (IRC/IAMAS) Volume 1531 of AIP Conference Proceedings, pages 123 - 126. American Institute of Physics, 2013. doi: 10.1063/1.4804723
See also GARLIC (Py4CAtS' big brother)

(download BiBTeX entries)


What's new?

July 2015
The 'main' scripts (e.g. lbl2od) can now be used as functions inside the (I)Python interpreter.
October 2015
Sources thoroughly checked with Pep8, PyFlakes, and PyChecker
Script od2ri with function dod2ri added to compute radiation intensity
March 2016
A new function cgs in module cgsUnits.py for easier conversions of physical quantities
Improved ac2wf.py and od2ri functions/modules.
July 2016
Further source code checks with Pylint
Absorption coefficients and optical depths are now stored in subclassed numpy arrays acArray and odArray (similar to xsArray before)
September 2016
Atmospheric data: corrected "CH3CL" -> "CH3Cl"
Functions atlas (in module lines.py), acPlot (in module absCo.py), and odPlot (in module oDepth.py) rewritten (to exploit recursive calls)
October 2016
xs2ac corrected to allow single level atmosphere and cross sections
November 2016
od2ri corrected to allow atmospheric data starting at ToA
Some further checks of 'important' function arguments implemented
srf.py: wavenumber shift implemented in fts function
Atmospheric data sets: trace gas profiles saved in separate file
December 2016
Setup script py4cats.py 'generalized' for Windows (pathname construction!)
Line mixing added (first order, Voigt and Lorentz, "brute force" only)
read_line_file in the lines.py script now works recursively
atlas now also allows to plot voigtLines
misc.py: new function triSpec for convolution with triangular
moreFun.py: new function erfcx for exponentially scaled complementary error function

© fgs   (+49-8153-28-1234)
Fri Dec 9, 2016; 12:34