Skip to content

slcs-jsc/jurassic

Juelich Rapid Spectral Simulation Code

The Juelich Rapid Spectral Simulation Code (JURASSIC) is a fast infrared radiative transfer model for the analysis of atmospheric remote sensing measurements.

logo

release (latest by date) commits since latest release (by SemVer) last commit top language code size repo size codacy codecov tests docs license doi SWH

Introduction

The Jülich Rapid Spectral Simulation Code (JURASSIC) is a radiative transfer model for simulating infrared radiation in the Earth's atmosphere. It is designed to provide a balance between computational efficiency and physical accuracy, making it suitable for a wide range of applications in atmospheric and remote sensing research.

JURASSIC applies established spectral approximations together with precomputed lookup tables derived from detailed line-by-line calculations to represent gaseous absorption, emission, and transmission. This approach enables reliable simulations across large datasets or ensembles without the runtime demands of full line-by-line models.

Typical use cases include satellite radiance simulations, sensitivity studies, retrieval algorithm development, and the analysis of atmospheric composition. With its modular design and support for high-performance computing environments, JURASSIC offers a practical tool for studying radiative processes in the middle and upper atmosphere.

Features

JURASSIC provides a comprehensive and efficient framework for infrared radiative transfer simulations, offering key capabilities to support research, operational, and development workflows:

  • Efficient radiative transfer approximations: JURASSIC implements the Emissivity Growth Approximation (EGA) and the Curtis–Godson Approximation (CGA) to model infrared radiative transfer. These methods enable rapid yet accurate simulations of atmospheric radiances and transmittances across a broad spectral range.

  • High-fidelity spectroscopy via lookup tables: Band transmittances are derived from pre-calculated lookup tables based on detailed line-by-line spectroscopy. This approach maintains spectroscopic accuracy while largely reducing computational cost, making the model suitable for large-scale and near-real-time applications.

  • Optimal estimation retrieval framework: In addition to forward modelling, JURASSIC includes an optimal estimation retrieval module for inverse modelling of atmospheric state variables. This enables the derivation of geophysical parameters such as temperature or trace gas volume mixing ratios from observed radiances, providing a complete forward–inverse modelling system within the same framework.

  • Flexible configuration and modular design: The model supports customizable spectral bands, instrument configurations, and atmospheric input fields, allowing users to integrate JURASSIC into diverse workflows and existing analysis pipelines.

  • Validated against established reference models: The model has undergone extensive benchmarking and intercomparison studies with leading radiative transfer codes such as KOPRA, RFM, and SARTA, ensuring reliable performance and scientific credibility across a wide range of atmospheric conditions.

  • Hybrid parallelization for HPC environments: JURASSIC enables hybrid MPI–OpenMP parallelization for highly efficient execution on multicore CPUs and HPC clusters, enabling the processing of large datasets, global simulations, or long time series with excellent scalability.

  • Open source and community-oriented: JURASSIC is distributed under the GNU General Public License (GPL), fostering transparency, collaboration, and community-driven development within the atmospheric and remote sensing research community.

Getting started

Prerequisites

This documentation describes the installation of JURASSIC on a Linux system. A number of standard tools (gcc, git, make) and software libraries are needed to install JURASSIC.

Mandatory build and runtime dependencies include:

  • GNU Scientific Library (GSL) for numerical calculations
  • netCDF-C library (version 4.9.1 or later) for file input/output
  • GNU C compiler with OpenMP support
  • GNU C++ compiler (g++ / gcc-c++), required to build the bundled HDF5 library

A complete list of mandatory and optional dependencies is provided in the dependencies file.

Installation

To install JURASSIC, follow these steps:

1. Download JURASSIC

Get the latest or a previous version from the JURASSIC releases page. After downloading, extract the release file:

unzip jurassic-x.y.zip

Alternatively, to get the latest development version, clone the GitHub repository:

git clone https://github.com/slcs-jsc/jurassic.git

2. Install required libraries

The JURASSIC git repository includes a copy of the GNU GSL library that can be compiled and installed using a build script:

cd [jurassic_directory]/libs
bash build.sh

This builds GSL, zlib, szip, HDF5, and netCDF-C 4.9.2 into libs/build/. Before running the script, ensure that a C++ compiler is installed, as it is required to build HDF5:

# Debian/Ubuntu
sudo apt install g++

# Fedora/RHEL
sudo dnf install gcc-c++

Alternatively, if you prefer to use existing system libraries, install the dependencies manually. Note that netCDF-C 4.9.1 or later is required. Many Linux distributions (e.g. Fedora 36, Ubuntu 22.04) ship older versions, in which case the bundled build path above is recommended.

3. Configure the Makefile

Navigate to the source directory and adjust the Makefile as needed:

cd [jurassic_directory]/src
emacs Makefile

Pay special attention to the following settings:

  • Edit the LIBDIR and INCDIR paths to point to the directories where the necessary libraries are located on your system.

  • By default, the JURASSIC binaries are linked dynamically. If you used the bundled libs, set LD_LIBRARY_PATH before running any JURASSIC binary:

    export LD_LIBRARY_PATH=[jurassic_directory]/libs/build/lib:$LD_LIBRARY_PATH
    

    If you installed system libraries in standard paths, this step is not needed. If you prefer static linking, you can enable it by setting the STATIC flag, which allows you to copy and use the binaries on other machines. However, in some cases, either static or dynamic linking may not be feasible or could cause specific issues.

4. Compile and test the installation

Once the Makefile is configured, compile the code using:

make [-j]

To verify the installation, run the test suite:

make check

This will execute a series of tests sequentially. If any test fails, check the log messages for further details.

Run the examples

JURASSIC includes a projects directory containing example setups that demonstrate different observation geometries and typical model workflows. This directory can also be used to store your own experiments.

Navigate to the projects directory:

cd [jurassic_directory]/projects

Running the examples provided in the projects directory is a convenient way to verify that the installation was successful. Example simulations are provided for three observation geometries:

# Limb
cd limb && ./run.sh

# Nadir
cd ../nadir && ./run.sh

# Zenith
cd ../zenith && ./run.sh

Each example performs a complete radiative transfer simulation. The scripts generate an observation geometry file,

cat obs.tab

a standard mid-latitude atmospheric profile,

cat atm.tab

and simulated radiances for two or three detector channels:

cat rad.tab

Kernel functions (Jacobians) are calculated using a finite-difference method:

cat kernel.tab

The simulation output is automatically compared with reference data to verify the correctness of the results. Additionally, gnuplot is used to generate plots of the simulated radiances and kernel functions.

limb radiance datanadir radiance datazenith radiance data

limb temperature kernel functionnadir temperature kernel functionzenith temperature kernel function

Lookup tables

JURASSIC relies on precomputed spectroscopic lookup tables derived from high-resolution line-by-line calculations. These tables provide band transmittances used by the radiative transfer approximations implemented in the model.

Precomputed lookup tables for common configurations are available from the JURASSIC data repository.

Users may either download these datasets or generate custom lookup tables tailored to specific spectral bands or instrument configurations. Creating custom lookup tables requires access to a line-by-line radiative transfer model capable of calculating high-resolution absorption spectra of a homogeneous gas cell.

Further information

More detailed information for new users and developers of JURASSIC is collected in the GitHub wiki.

These are the main references for citing the JURASSIC model in scientific publications:

  • Baumeister, P. F. and Hoffmann, L.: Fast infrared radiative transfer calculations using graphics processing units: JURASSIC-GPU v2.0, Geosci. Model Dev., 15, 1855–1874, https://doi.org/10.5194/gmd-15-1855-2022, 2022.

  • Hoffmann, L., and M. J. Alexander, Retrieval of stratospheric temperatures from Atmospheric Infrared Sounder radiance measurements for gravity wave studies, J. Geophys. Res., 114, D07105, https://doi.org/10.1029/2008JD011241, 2009.

  • Hoffmann, L., Kaufmann, M., Spang, R., Müller, R., Remedios, J. J., Moore, D. P., Volk, C. M., von Clarmann, T., and Riese, M.: Envisat MIPAS measurements of CFC-11: retrieval, validation, and climatology, Atmos. Chem. Phys., 8, 3671-3688, https://doi.org/10.5194/acp-8-3671-2008, 2008.

  • You can cite the source code of JURASSIC by using the DOI https://doi.org/10.5281/zenodo.4572889. This DOI represents all versions, and will always resolve to the latest one. Specific DOIs for each release of JURASSIC can be found on the Zenodo website.

Please see the citation file for further information.

Contributing

We are interested in sharing JURASSIC for operational or research applications. Please do not hesitate to contact us if you have any further questions or need support.

License

JURASSIC is distributed under the GNU General Public License v3.0.

Contact

Dr. Lars Hoffmann

Jülich Supercomputing Centre, Forschungszentrum Jülich

e-mail: l.hoffmann@fz-juelich.de

About

The Juelich Rapid Spectral Simulation Code (JURASSIC) is a fast infrared radiative transfer model for the analysis of atmospheric remote sensing measurements.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors

Languages