Software suite for the analysis of laser altimetry data: from standard range data (PDS RDR) to planetary orientation and tides. Existing or simulated ranges (pyaltsim) are geolocated on the planetary surface on the basis of input emitter trajectory and planetary rotation model (pygeoloc). Intersections between such groundtrack are located by a computationally efficient multi-threaded algorithm: elevation differences, or discrepancies, are computed toghether with numerical partial derivatives with respect to the chosen solve-for parameters (pyxover). Crossovers residuals and partial derivatives contribute to the equations system solved by least-squares in ``accumxov''. Statistics and plotting tools are also provided (xovutil).
This is scientific code in ongoing development: using it might be tricky, reading it can cause headaches and results need to be thoroughly checked and taken with a healthy degree of mistrust! Use it at your own risk and responsibility.
Make a new directory and clone this repository to it. Then, inside the
directory that you've just created, run python -m venv env
. This will
create a "virtual environment", which is a useful tool that Python
provides for managing dependencies for projects. The new directory
"contains" the virtual environment.
To activate the virtual environment, run source env/bin/activate
from
the directory containing it. Make sure to do this before doing
anything else below.
Install the rest of the dependencies by running pip install -r requirements.txt
.
Finally, run:
pip install .
To install the package in editable mode, so that changes in this directory propagate immediately, run:
pip install -e .
To test the installation, from the project directory, run:
python setup.py test
The examples directory contains the setup to process altimetry ranges by the Mercury
Laser Altimeter (MLA) onboard the MESSENGER mission, illustrating how
to use this package. To run the example, you'll need to import the required spice
kernels listed in examples/MLA/data/aux/mymeta
to examples/MLA/data/aux/kernels/
and eventually adapt mymeta
.
Then, try:
cd examples
python mla_iter.py
Else, check out the tests
directory for a "simpler" approach.
For more details, refer to docs/manual.stub
(in progress...)
1. Desprats W., S. Bertone, D. Arnold, et al. (2024). Combination of altimetry crossovers and Doppler observables for orbit determination and geodetic parameter recovery: application to Callisto. Accepted by Acta Astronautica. 10.1016/j.actaastro.2024.10.045
2. Grisolia, M. (2024). Validation of radioscience derived orbits by crossovers analyses of the Mercury Laser Altimeter. B.Sc. Thesis, Polytechnic University of Turin (Italy).
3. Desprats, W. (2024). Simulation Study for Geodetic Parameter Recovery at Europa and Callisto. Ph.D. Thesis, Astronomical Institute, University of Bern (Switzerland)
4. Bertone S., E. Mazarico, M. K. Barker, et al. (2021). Deriving Mercury geodetic parameters with altimetric crossovers from the Mercury Laser Altimeter (MLA). Journal of Geophysical Research - Planets, 126(4): e2020JE006683. 10.1029/2020JE006683
5. Hosseiniarani, A. (2020). BepiColombo Laser Altimeter (BELA) Performance Evaluation: From Laboratory Tests to Simulations of Flight Observations. Ph.D. Thesis, Space Research & Planetary Sciences, University of Bern (Switzerland)