TT2000 with cdflib

We can handle the CDF_TT2000 with the cdflib binding of several languages (C, IDL, Matlab, python…)

In python, using spacepy.pycdf library, CDF_TT2000 values are automatically converted in python datatime objects that can de displayed as UTC strings.

from spacepy import pycdf

cdf = pycdf.CDF("filename.cdf")

epoch = cdf["Epoch"]

print ("START time = ", epoch [0].isoformat(timespec="milliseconds")
print ("STOP  time = ", epoch [-1].isoformat(timespec="milliseconds")

TT2000 using spice kernels

We can handle TT2000 values using spice kernels.

TT2000 values correspond to Terrestrial Time (TT) but given in nano-seconds

They have first to be converted in TDT (fractional seconds).

Then converted to TDB (or ET) ephemeris time

Then these ET can be converted in UTC ISO string values

import  spiceypy

# Import leap seconds file

spiceypy.furnsh ("kernels/lsk/naif0012.tls")


def     tt2000_to_UTC (tt2000):
        """
        Convert TT2000 (nanoseconds) to UTC string
        """

        # TT2000 to TDT
        seconds = tt2000 / 1.0e9

        # TDT to TDB == ET

        et = spiceypy.unitim (seconds, "TDT", "TDB")

        # ET to UTC string
        return spiceypy.et2utc (et, "ISOC", 6)