Skip to content

Repository files navigation

MMTC: Multi-Mission Time Correlation

The Multi-Mission Time Correlation (MMTC) application is ground software which provides an automated means of correlating spacecraft time to ground time, along with associated functionality. MMTC is designed to be adaptable to any spacecraft and ground system, and is intended to be included in space mission ground data systems and to be run in a Mission Operations Center (MOC) or Mission Support Area (MSA.) It produces time correlation products in standard, widely-used formats, including NAIF SPICE SCLK kernels.

MMTC is licensed under the Apache License 2.0. See LICENSE.md for a copy of the license terms.

Quick Start

To get started with MMTC, visit the releases page and download the desired artifacts. Consider starting with:

  • the MMTC User's Guide
  • the demo package (mmtc-1.6.0-demo.zip; see section below)
  • one of the base application packages, ready for configuration & adaptation (e.g. mmtc-1.6.0.zip or mmtc-1.6.0-1.el8.x86_64.rpm; see User's Guide for details on use and configuration)

Note MMTC's runtime requirements:

  • Red Hat Enterprise Linux (RHEL) 8 or 9 on an x86-64 host
  • Java 8 for all components (except the web application, which requires Java 17)

Demo

For users who wish to experiment with MMTC’s behavior and functionality without configuring it for a specific mission, a turnkey demo is available in the form of a portable installation that comes packaged with example telemetry and configuration from the New Horizons spacecraft in a single .zip file. To try it out:

  1. Generate the compressed demo files with ./gradlew demoZip
  2. Extract the contents of the created .zip file (written within /build/distributions/) with unzip build/distributions/mmtc-[version]-demo.zip -d [path to extract to]
  3. Run setup-demo-zip.sh to configure environment variables, adjust the config, and automatically run MMTC several times

See the "Quick Start Guide" section of the User Guide for complete instructions.

Introduction

Context

Clocks on board spacecraft, like all clocks, experience 'drift', meaning the period between their 'ticks' is not exactly once per second (and in fact can vary in the face of external factors, such as temperature, voltage, current, relativistic effects, etc.)

Most space missions have requirements which demand a means of maintaining accurate and precise knowledge of time as measured onboard a spacecraft. For deep-space missions, this is typically performed through a process called 'time correlation', which is typically accomplished via a combination of spacecraft radio(s), avionics, and one or more oscillators in combination with ground antenna and ground data systems.

The decades-long history of space missions performing time correlation, along with the common principles that underlie many of their time correlation and timekeeping operations, provide the motivation for a common & multi-mission time correlation capability.

Overview

MMTC accomplishes its primary function (time correlation) by analyzing spacecraft telemetry and establishing a relationship between spacecraft clock (SCLK) time and Earth Receive Time (ERT) while accounting for several complicating factors (such as one-way light time.) MMTC also offers configurable 'filters' for ensuring the quality of data used for time correlation meets mission requirements. The primary result of this correlation is an updated Clock Change Rate, which encodes the rate of an Earth clock's 'ticks' to the SCLK's 'ticks.' This information - a related pair of an SCLK value and the ground time, as well as the measured Clock Change Rate - serves as a new correlation record and is written to new SCLK kernels and/or SCLK/SCET files.

MMTC creates the following output products:

  • SCLK kernels, compatible with the NAIF SPICE system of software and data
  • SCLK/SCET files, compatible with various JPL and AMMOS software
  • A number of types of CSV files, containing ancillary telemetry and data useful for analysis and/or anomaly resolution, and data that may be used to update onboard Guidance, Navigation and Control parameters

MMTC contains additional functionality, including:

  • the ability to read and write telemetry from and to plaintext CSV files
  • the ability to 'roll back' the state of output products to prior runs
  • a web application for viewing timekeeping telemetry, creating new correlation records, and related information

Missions adapt MMTC to their mission by accomplishing the following two steps:

  1. Creating an MMTC configuration that defines relevant details about their spacecraft, its telemetry, and the mission's ground data system
  2. Connecting MMTC to their mission's telemetry by selecting an existing MMTC Telemetry Source implementation or implementing a new Telemetry Source plugin using the included SDK

MMTC is implemented in Java and relies on NAIF SPICE software and data. MMTC can be run standalone or integrated into a ground system. MMTC software includes an optional first-party integration with the AMMOS commanding and telemetry system, AMPCS, and can be extended to integrate with additional ground systems via its plugin interface.

Building

Build requirements:

  • Red Hat Enterprise Linux (RHEL) 8 or 9 on an x86-64 host
  • Java 17

Clone the repository and run e.g. ./gradlew build to build the project.

Further information

For further information, which may be downloaded from the releases page, or referenced in the source at docs/User_Guide.adoc.

Copyright

© 2026 The Johns Hopkins University Applied Physics Laboratory LLC

This work was performed for the Jet Propulsion Laboratory, California Institute of Technology, sponsored by the United States Government under the Prime Contract 80NM0018D00004 between the Caltech and NASA under subcontract number 1658085.

About

Multi-Mission Time Correlation (MMTC)

Resources

Stars

6 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages