Software

Radiative transfer codes and data products

vSmartMOM / vSmartMOM.jl

I developed vSmartMOM, originally written in Fortran and C++, as a vector (polarized) matrix-operator radiative transfer model with analytic derivatives (Sanghavi et al. 2013; Sanghavi, Davis & Eldering 2014). Since 2020 it has been rebuilt as the open-source Julia package vSmartMOM.jl. The Julia port began with Christian Frankenberg and Schmidt Software Fellow Rupesh Jeyaram, whose work I supervised (2020–2022; JOSS 2022). I lead its scientific development (formulations, linearization, Raman scattering, retrieval methodology); Christian Frankenberg contributes software engineering, performance and release integration.

Today vSmartMOM.jl runs the same physics on heterogeneous CPU/GPU hardware and includes:

  • polarized multiple scattering with analytic Jacobians, including surface SIF;
  • rotational and vibrational Raman scattering;
  • line-by-line absorption from HITRAN, HITEMP and ExoMol;
  • a fully coupled canopy–atmosphere treatment. Rather than a simple BRDF, the canopy (with atmosphere inside it) is a scattering medium described by leaf optical properties and leaf angular distributions, with the soil as the lower boundary. It was benchmarked in the JRC’s first coupled surface–atmosphere intercomparison, RAMI4ATM;
  • a polarized Cox–Munk ocean surface, with fully coupled ocean–atmosphere radiative transfer in development;
  • brown-dwarf and directly imaged exoplanet radiative transfer (via ExoOptics.jl).

It is used for Earth-observation work (SIF and greenhouse-gas retrieval biases, Carbon-I) and HWO reflected-light simulations.

GitHub · Documentation · JOSS paper · Method paper (JQSRT 2014)

using Pkg; Pkg.add("vSmartMOM")

Milestones

  • 2013–2014 vSmartMOM (Fortran / C++) by Suniti Sanghavi: vector matrix-operator radiative transfer, linearized with respect to aerosol and surface properties.
  • 2020 Julia rewrite begins (initially RadiativeTransfer.jl), with GPU/CPU kernels from the start and HITRAN-based cross-sections.
  • 2021 Benchmarked against 6SV1; first inelastic (Raman) core routines added (Dec 2021).
  • 2022 Raman optical properties and RT formalism (JQSRT Part I; Part II 2023); ExoMol/HITEMP support; canopy optics (CanopyOptics.jl); v1.0 release and JOSS paper.
  • 2024–2025 Raman correction for OCO-2/3 SIF retrievals (GRL 2025); v1.1.
  • 2026 v2 series (v2.1, v2.2): fully coupled canopy–atmosphere RT (RAMI4ATM), polarized ocean surface and OceanOptics.jl, GPU line-by-line absorption in AtmosphericAbsorption.jl (HITRAN & ExoMol, Voigt to Hartmann–Tran, line mixing, MT_CKD/CIA), ExoOptics.jl for brown dwarfs and exoplanets, analytic Jacobians for multi-sensor retrievals (12–20× faster in tested inversions), and the Google radiative transfer benchmark dataset.
  • In development Fully coupled ocean–atmosphere radiative transfer.

The RemoteSensingTools ecosystem

Package Purpose
vSmartMOM.jl Polarized matrix-operator RT with Raman, canopy, ocean and analytic Jacobians
ExoOptics.jl Brown-dwarf and directly imaged exoplanet RT, built on vSmartMOM.jl
AtmosphericAbsorption.jl GPU-accelerated molecular cross-sections from HITRAN & ExoMol
CanopyOptics.jl Canopy optical properties (leaf optics, leaf angle distributions)
OceanOptics.jl Ocean optical properties for radiative transfer
InstrumentOperator.jl Instrument line shapes for hyperspectral sensors

Data products

  • Correcting the effects of Raman scattering on SIF retrievals — lookup tables (JPL data set, 2024).
  • Raman scattering in the Earth’s atmosphere: radiative transport simulations (JPL data set, 2023).