README

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
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:
Built with
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:
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.
Install Python Dependencies
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
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 preferredQT
binding package manually. For example,PySide6
:pip install PySide6
Testing
Run the following commands to ensure the code works as expected:
Unit Tests To perform unit tests:
python3 -m unittest
Coverage Tests To generate a coverage report:
./coverage_run.sh
License
Distributed under the LGPL-v3 License. See LGPL v3 for more information.