Py4CAtS --- Python for Computational ATmospheric Spectroscopy
[Image: DLR]
Main Scripts/Functions: From Hitran/Geisa to cross sections to optical depths and radiance (intensity)
- higstract
- HItran-GeiSa extract (select) lines of (a) certain molecule(s) (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)
- (d)od2ri
- Given the (layer, delta) line-by-line optical depth solve Schwarzschild equation to radiation intensity
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.tgz
The top-level directory py4cats includes a 1.ReadMe file with basic instructions, and six subdirectories bin, data, doc, art, aux, and lbl.
NOTE: Py4CAtS has been restructured / reorganized as a package, where the source files (Python modules) are now distributed in three separate directories (art, aux, and lbl; in the "old, flat" version all *.py files were collected in a single src directory).
Also note, that the top level directory has been renamed from "py4CAtS" to "py4cats" (i.e. lower case letters only to avoid any confusion w.r.t. upper/lower).
For more details see "What's new?".
Prerequisites: Python (3) and numpy (sometimes scipy 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
or the poster for the ASA-HITRAN 2016 congress) inside the (I)Python interpreter or Jupyter Qt Console or notebook.
Documentation
For a detailed review of line-by-line modeling for infrared radiative transfer see the manual py4cats.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, S. Gimeno García, P. Hochstaffl and S. Städt.
Py4CAtS --- Python for Computational ATmospheric Spectroscopy.
Atmosphere 10(5), 262, 2019, doi: 10.3390/atmos10050262
-
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
-
F. Schreier and P. Hochstaffl.
Py4CAtS --- Python for Computational ATmospheric Spectroscopy.
GSICS Quarterly 13(4), pp. 6 - 8, 2020 doi: 10.25923/ymt5-wz59
- See also GARLIC (Generic Atmospheric Radiation Line-by-line Infrared Code, Py4CAtS' big brother): JQSRT 137, 29-50, 2014
and our related projects lbl4IR
(download BiBTeX entries)
- March 2021
- Source code now reorganized as a package
Source files are now distributed over three subdirectories
- lbl: modules related to lbl computations incl. Hitran/Geisa database access, Voigt routines etc.;
- art: modules related to atmospheric radiative transfer;
- aux: auxiliary modules that should/could be useful in any context, e.g. input/output routines.
The setup module py4cats.py is not required anymore, import of the Py4CAtS module is now organized by the __init__.py files.
- Spring - Summer 2021 (see What's new? for a full listing)
- Plot functions
- atmPlot, acPlot, odPlot, riPlot, xsPlot functions have an additional argument **kwArgs (passed thru to MatPlotLib's functions)
acPlot, odPlot, xsPlot with an additional argument xUnit (instead of flag mue or nm)
- Module aux/aerosol.py
- new module for aerosol optical depth using simple power law (Angstrom coefficient)
- Modules lbl/lbl.py, lbl/lines.py, and lbl/lineshapes.py
- "beyond Voigt" line shapes and parameters
- Module art/limb.py:
- new module for limb (occultation) transmission and effective height
- Module lbl/molecules.py
- new molecules (Hitran20, Geisa20) added
- Module art/oDepth.py
- class odArray with new attribute column density;
- convolve method with default Gauss;
- new function odConvolve (calls class method for a list/dictionary of optical depths);
- Module art/od2ri.py
- completely rewritten with added support for surface reflection etc
- Module art/rayleigh.py
- new module for Rayleigh extinction
- Module art/radInt.py
- class riArray with new method noise;
convolve method with default Gauss;
new function riConvolve (calls class method for a list/dictionary of radiances);
function riRead now returns a dictionary of riArray's if all entries of the pickle file have a `key`;
function riSave: if called with a dictionary of riArray's, save each as dictionary with an extra `key`
- Module lbl/sdr.py
- new module for speed-dependent Voigt and Rautian functions
- Fall 2021 (see What's new? for a full listing)
- Module lbl/lbl2od.py
- three new options for function lbl2od to add cia, Rayleigh, and aerosol extinction to absorption coefficient(s) and optical depth(s)
- Module art/cia.py
- new module for collision-induced absorption
© fgs (+49-8153-28-1234)
Wed Oct 27, 2021; 12:34
Imprint
Privacy Policy
Terms of Use
Accessibility