RMS-NAV is a comprehensive navigation system designed for spacecraft imagery processing. It provides tools to analyze images from various space missions (Cassini, Voyager, Galileo, New Horizons) and determine precise positional offsets by comparing observed images with theoretical models of celestial bodies.
- Multi-mission support: Works with Cassini, Voyager, Galileo, and New Horizons imagery
- Multiple navigation techniques: Star-based, body-based, and rings-based navigation
- Automated offset calculation: Determines precise pointing corrections
- Visualization tools: Creates annotated images with identified features
- Configurable processing: Customizable parameters for different scenarios
- PDS4 bundle generation: Creates PDS4-compliant bundles with labels, metadata, and browse products
- Backplane generation: Computes per-pixel geometry products (longitude, latitude, angles, etc.)
- Python 3.10 or higher
- SPICE toolkit and kernels for planetary data
- Dependencies listed in
requirements.txt
-
Clone the repository:
git clone https://github.com/SETI/rms-nav.git cd rms-nav -
Create and activate a virtual environment (recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install the required packages:
pip install -r requirements.txt
-
Set up SPICE kernels:
-
Download the required SPICE kernels for your mission
-
Set the
SPICE_PATHenvironment variable to point to your kernels directory:export SPICE_PATH=/path/to/your/spice/kernels
-
Note: To fix mypy operability with editable pip installs:
export SETUPTOOLS_ENABLE_FEATURES="legacy-editable"
Process a single Cassini image using the installed CLI script:
nav_offset coiss N1234567890 \
--pds3-holdings-root /path/to/pds3 \
--nav-results-root /path/to/nav_resultsProcess all Voyager images within a single PDS3 volume:
nav_offset vgiss \
--volumes VGISS_5101 \
--pds3-holdings-root /path/to/pds3 \
--nav-results-root /path/to/nav_resultsGenerate backplanes for processed images:
nav_backplanes coiss_saturn \
--nav-results-root /path/to/nav_results \
--backplane-results-root /path/to/backplane_results \
--volumes COISS_2001Generate PDS4 bundle files:
nav_create_bundle labels coiss_saturn \
--nav-results-root /path/to/nav_results \
--backplane-results-root /path/to/backplane_results \
--bundle-results-root /path/to/bundle_results \
--volumes COISS_2001Reproject a set of ring images and combine them into a mosaic:
nav_mosaic_rings coiss_saturn \
--volumes COISS_2001 \
--pds3-holdings-root /path/to/pds3 \
--nav-results-root /path/to/nav_results \
--planet SATURN \
--radius-inner 139500 \
--radius-outer 140220 \
--output-dir /path/to/mosaic_results \
--prefix saturn_fring_2004Display the resulting mosaic (or any individual reprojection file):
nav_mosaic_display_rings /path/to/mosaic_results/saturn_fring_2004_mosaic.fitsReproject body images (e.g. Mimas):
nav_mosaic_body coiss_saturn \
--volumes COISS_2001 \
--pds3-holdings-root /path/to/pds3 \
--nav-results-root /path/to/nav_results \
--body-name MIMAS \
--output-dir /path/to/mosaic_results \
--prefix mimas_2004See the Reprojection user guide for full option references and more examples.
Each of the main batch drivers above has a queue-driven counterpart suffixed
with _cloud_tasks, which reads file lists from a
cloud_tasks queue instead of
enumerating the dataset locally:
nav_offset_cloud_tasks— navigation offsetsnav_backplanes_cloud_tasks— backplane generationnav_create_bundle_cloud_tasks— PDS4 bundle labels passnav_mosaic_rings_cloud_tasks/nav_mosaic_body_cloud_tasks— mosaic reprojection pass (mosaic combination is run separately vianav_mosaic <mode> --skip-reproject)
These workers accept only the environment flags needed to locate configuration
and results roots; the task payload carries the list of files plus any
per-task parameters. Each of nav_offset, nav_backplanes, and
nav_mosaic_rings / nav_mosaic_body can produce a ready-to-load task-queue
JSON file for its matching worker via --output-cloud-tasks-file PATH. The
per-feature user guides document the JSON schema each worker expects:
nav_offset_cloud_tasks: Navigation user guidenav_backplanes_cloud_tasks: Backplanes user guidenav_mosaic_rings_cloud_tasks/nav_mosaic_body_cloud_tasks: Reprojection user guide
Comprehensive documentation is available in the docs directory. To build
the documentation:
cd docs
make htmlThe built documentation will be available in docs/_build/html.
Information on contributing to this package can be found in the Contributing Guide.
This code is licensed under the Apache License v2.0.