README

Version 1.1.0 License: LGPL 3.0 Issues Stargazers


LIME logo

lime_tbx

Run the LIME model, simulate lunar observations and compare them with real remote sensing data.
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Development Guide
  6. License
  7. Authors

About the project

The lime_tbx is a Python package that provides a comprehensive toolbox for utilizing the Lunar Irradiance Model of ESA (LIME) to simulate lunar observations and compare them with remote sensing data of the Moon.

LIME is the Lunar Irradiance Model of the European Space Agency (ESA), which aims to determine an improved lunar irradiance model with sub-2% radiometric uncertainty.

More information about LIME can be found on lime.uva.es.

Collaborators

This project is managed, financed and supported by the European Space Agency (ESA).

The project is a collaboration between multiple institutions, including:

  • NPL (National Physics Laboratory, United Kingdom)

  • UVa (Universidad de Valladolid, Spain)

  • VITO (Vlaamse Instelling voor Technologisch Onderzoek, Belgium)

Built with

  • Python

  • Qt

  • SPICE

  • EO-CFI

  • CoMet Toolkit

Getting started

The LIME Toolbox is designed as an standalone desktop application that one can directly install without the need of installing Python or any other software used in its development. Nevertheless, it can be installed as a Python package.

Prerequisites

The LIME Toolbox is compatible with the following operating systems and architectures:

  • Windows 10 with x86_64 arch.

  • Linux with GLIBC >= 2.23 and x86_64 arch.

  • Mac with x86_64 arch. or with ARM64 arch. and Rosetta interpreter.

Installation

One can download and install LIME TBX as a standalone desktop application on lime.uva.es/downloads.

Another option is installing the python package and its dependencies by using:

pip install -e .

This project uses Qt for GUI development, and it relies on qtpy to manage compatibility between different Qt bindings (PySide2 and PySide6). However, since qtpy does not include a Qt binding by default, you must specify which one to install.

  • Install with PySide6 (Recommended)

    pip install -e ".[pyside6]"
    

    PySide6 provides the latest Qt features and long-term support.

  • Install with PySide2 (For Legacy Compatibility)

    pip install -e ".[pyside2]"
    

    Use PySide2 if you need compatibility with older Qt5-based applications, or you need to install it in an old OS.

Usage

Check the online documentation’s User Guide or download the User Guide File to fully explore the capabilities of the toolbox.

Roadmap

  • Allow coefficients of more than six wavelengths, being as flexible as possible. (NFR108)

    • The TBX must accept coefficients that also include data for the 1088 CIMEL photometer’s 2130 nm band. (NFR108-A)

    • The TBX must accept coefficients made for any response function specified in the coefficients file. (NFR108-B)

  • Sign installers with official certificates

  • Fully migrate project to GitHub (issues, CI pipeline, etc.)

  • Automate Mac Build & Packaging Process through Github actions (NFR409-C)

  • Allow users to simulate series of lunar observations, where not only the time varies. (FR107)

See the open issues for a full list of proposed features (and known issues).

If you wish to contribute to the lime_tbx project, please check the Contributing Guide.

Development Guide

For a detailed description on how the Toolbox is structured and implemented please refer to the official documentation, specially the Design and Implementation sections, under Technical Details.

Versioning

Version changes and descriptions are stored in the CHANGELOG. This file is updated each time a new version is released.

Setting Up the Environment

To prepare your environment for development, testing or deployment, follow these steps:

  1. Install Pre-commit Hooks Install the pre-commit hooks to automatically check code styling:

    pre-commit install
    
    • When you commit changes, black will check your code for styling errors.

    • If errors are found, they will be corrected, and the commit will be aborted to allow you to review the changes.

    • If you’re satisfied, reattempt the commit.

  2. Install Python Dependencies

    1. Install requirements.txt

      Install the python package dependencies listed in the requirements.txt file, preferably in a python virtual enironment:

      pip install -r requirements.txt
      
    2. Install a Qt binding

      As previously explained, this project relies on qtpy to manage compatibility between different Qt bindings. Since qtpy does not include a Qt binding by default, you must install your preferred QT binding package manually. For example, PySide6:

      pip install PySide6
      

Testing

Run the following commands to ensure the code works as expected:

  1. Unit Tests To perform unit tests:

    python3 -m unittest
    
  2. Coverage Tests To generate a coverage report:

    ./coverage_run.sh
    

License

Distributed under the LGPL-v3 License. See LGPL v3 for more information.

Authors


ESA logoLogo of UVaLogo of NPLLogo of VITO