Skip to main content

Model of Earth atmosphere absorption and transmission vs. wavelength and location.

Project description

Zenodo DOI Travis CI Coverage AppVeyor CI PyPi version PyPi formats Maintainability PyPi Download stats

Lowtran in Python

LOWTRAN7 atmospheric absorption extinction model. Updated by Michael Hirsch to be platform independent and easily accessible from Python.

The main LOWTRAN program has been made accessible from Python by using direct memory transfers instead of the cumbersome and error-prone process of writing/reading text files. xarray.Dataset high-performance, simple N-D array data is passed out, with appropriate metadata.

Gallery

See below for how to make these examples.

Lowtran7 absorption

Install

  1. A Fortran compiler such as gfortran is needed. We use f2py (part of numpy) to seamlessly use the Fortran Lowtran library from Python. If you don't have one, here is how to install Gfortran:

    • Linux: apt install gfortran
    • Mac: brew install gcc
    • Windows
  2. Install Python Lowtran code

    python -m pip install -e .
    

See this page if you have errors on Fortran compilation.

Examples

In these examples, you can write to HDF5 with the -o option.

We present examples of:

  • ground-to-space transmittance: TransmittanceGround2Space.py

    Lowtran Transmission

  • sun-to-observer scattered radiance (why the sky is blue): ScatterRadiance.py

    Lowtran Scatter Radiance

  • sun-to-observer irradiance: SolarIrradiance.py

    Lowtran Solar Irradiance

  • observer-to-observer solar single-scattering solar radiance (up-going) with custom Pressure, Temperature and partial pressure for 12 species: UserDataHorizontalRadiance.py Lowtran Solar Irradiance

  • observer-to-observer transmittance with custom Pressure, Temperature and partial pressure for 12 species: UserDataHorizontalTransmittance.py

  • observer-to-observer transmittance HorizontalTransmittance.py

    Lowtran Horizontal Path transmittance

Notes

LOWTRAN7 User manual -- you may refer to this to understand what parameters are set to default. Currently I don't have any aerosols enabled for example, though it's straightforward to add them.

Right now a lot of configuration features aren't implemented, please request those you want.

Reference

  • Original 1994 Lowtran7 Code
  • LOWFIL program in reference/lowtran7.10.f was not connected as we had previously implemented a filter function directly in Python.
  • LOWSCAN spectral sampling (scanning) program in reference/lowtran7.13.f was not connected as we had no need for coarser spectral resolution.

Fortran (optional)

This is not necessary for normal users:

cd bin
cmake ..
cmake --build .
ctest -V

should generate this text output.

Windows f2py

(this is handled automatically by setup.py, noted here for debugging)

Yes, even though you're using a 64-bit compiler:

f2py --compiler=mingw32 -m lowtran7 -c lowtran7.f

Tested on Windows with MinGW.

Windows Fortran compile

Normal users don't need to do this. I suggest that you instead use Cygwin or Windows Subsystem for Linux:

cd bin
cmake -G "MinGW Makefiles" ..
cmake --build .
ctest -V

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
lowtran-2.4.0.tar.gz (844.4 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page