archNEMESIS logo


https://img.shields.io/badge/version-v1.0.6-red https://img.shields.io/badge/readthedocs-latest-blue https://img.shields.io/badge/github-code-green https://img.shields.io/badge/archNEMESIS-reference-yellow https://img.shields.io/badge/NEMESIS-reference-yellow https://img.shields.io/badge/discord-join-pink

ArchNEMESIS is an open source Python package developed for the analysis of remote sensing spectroscopic observations of planetary atmospheres. It is based on the widely used NEMESIS (Non-linear Optimal Estimator for MultivariatE Spectral analySIS) radiative transfer and retrieval tool, which has been extensively used for the investigation of a wide variety of planetary environments.

ArchNEMESIS is currently maintained by Juan Alday and Joseph Penn. The NEMESIS algorithm, code archNEMESIS is based on, was originally developed by Patrick Irwin.

In this website, we aim to provide a detailed description of the code and its functionalities. In addition, we include several jupyter notebooks to help users get used to some of these functionalities.

If interested users are missing key points in the documentation, would appreciate seeing jupyter notebooks for certain purposes, or want to report issues, please do so by contacting us or joining our Discord channel.

Installation

There are three main ways to install archNEMESIS, depending on your use case:

Installing from PyPI

The simplest way to install archNEMESIS is via PyPI. We recommend doing this inside a clean Python virtual environment:

python -m venv archnemesis-env
source archnemesis-env/bin/activate
pip install archnemesis

This will install the latest stable release of the package along with its dependencies. It is the recommended method if you just want to use the library without editing the source code.

Installing from GitHub (developer mode)

To install the latest development version, clone the GitHub repository:

git clone https://github.com/juanaldayparejo/archnemesis-dist.git

Before installing archNEMESIS, we recommend users to create and load a new Python virtual environment for a clean install:

python -m venv name_of_virtual_environment/
source name_of_virtual_environment/bin/activate

Then move into the package directory:

cd archnemesis-dist

Finally, install the library in editable mode:

pip install --editable .

This will install archNEMESIS along with all required dependencies, while keeping the source editable.

Citing archNEMESIS

If archNEMESIS has been significant in your research, we suggest citing the following articles:

  • archNEMESIS reference publication:
    • Alday, J., Penn, J., Irwin, P., Mason, J., Yang, J. and Dobinson, J. (2025) archNEMESIS: An Open-Source Python Package for Analysis of Planetary Atmospheric Spectra, Journal of Open Research Software, 13(1), p. 10. doi: 10.5334/jors.554

  • NEMESIS reference publication:
    • Irwin, P. G. J., Teanby, N. A., De Kok, R., Fletcher, L. N., Howett, C. J. A., Tsang, C. C. C., … & Parrish, P. D. (2008). The NEMESIS planetary atmosphere radiative transfer and retrieval tool. Journal of Quantitative Spectroscopy and Radiative Transfer, 109(6), 1136-1150. doi: 10.1016/j.jqsrt.2007.11.006

Revision history

  • 1.0.6 (16 December, 2025)
    • Fixing bugs to reconcile results with NEMESIS.

    • Implemented LineData class with functionality to extract data from HITRAN using HAPI.

    • Implemented first version of cross section calculations.

    • Combined radiative transfer calculations with and without gradients in same function (CIRSradg is now CIRSrad(gradients=True)).

    • Added forward modelling error capabilities.

    • First implementation of nemesisdisc, forward model type for gradient calculations (no scattering) and multiple averaging points.

    • Added functionality to read information from previous retrievals (LIN parameter).

    • Implemented AOTF spectrometer modelling capabilities in nemesisSO.

    • Implemented integration of signal across filters in nemesis (for modelling spectra from radiometers).

  • 1.0.5 (8 July, 2025)
    • New release of archNEMESIS for publication at Journal of Open Research Software.

    • Fixed minor bugs throughout the code.

    • Added unit test for calculation of optical properties using Mie Theory.

    • Updated setup file to avoid dependency conflicts.

  • 1.0.4 (2 July, 2025)
    • New release of archNEMESIS for release on PyPI and Docker Hub.

  • 1.0.3 (19 June, 2025)
    • New release of archNEMESIS for first release on PyPI.

  • 1.0.2 (19 June, 2025)
    • Fixed minor bugs throughout the code.

    • Included new model parameterisations.

    • Included new automatic tests (e.g., forward models for solar occultation and limb geometry).

    • Flags now identified with ENUMS rather than magic numbers.

    • Model parameterisations now defined as classes.

  • 1.0.1 (2 April, 2025)
    • Fixed minor bugs throughout the code.

    • Implementation of Oren-Nayar surface reflectance model.

    • Implementation of different surface reflectance models in multiple scattering calculations.

    • Included new automatic tests.

    • Included new model parameterisations.

  • 1.0.0 (27 January, 2025)
    • First release for publication at Journal of Open Research Software.

Dependencies