Commit 0c28b16d authored by Kelvin Rodriguez's avatar Kelvin Rodriguez Committed by Jesse Mapel
Browse files

Themis IR/VIS support (#289)

* ISIS ideal now fails if inst id is not ISIS Ideal

* redo super

* updated ideal test

* updated themis tests

* added themis test data

* updates as per comments

* updated as per comments

* updated tests
parent 5f3bab41
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -166,11 +166,11 @@ class IsisLabel():
          Spacecraft clock start count
          Spacecraft clock start count
        """
        """
        if 'SpacecraftClockStartCount' in self.label['IsisCube']['Instrument']:
        if 'SpacecraftClockStartCount' in self.label['IsisCube']['Instrument']:
            return self.label['IsisCube']['Instrument']['SpacecraftClockStartCount']
            return str(self.label['IsisCube']['Instrument']['SpacecraftClockStartCount'])
        elif 'SpacecraftClockCount' in self.label['IsisCube']['Instrument']:
        elif 'SpacecraftClockCount' in self.label['IsisCube']['Instrument']:
            return self.label['IsisCube']['Instrument']['SpacecraftClockCount']
            return str(self.label['IsisCube']['Instrument']['SpacecraftClockCount'])
        elif 'SpacecraftClockStartCount' in self.label['IsisCube']['Archive']:
        elif 'SpacecraftClockStartCount' in self.label['IsisCube']['Archive']:
            return self.label['IsisCube']['Archive']['SpacecraftClockStartCount']
            return str(self.label['IsisCube']['Archive']['SpacecraftClockStartCount'])
        else:
        else:
            return None
            return None


+1 −1
Original line number Original line Diff line number Diff line
@@ -71,7 +71,7 @@ def load(label, props={}, formatter='usgscsm', verbose=False):
                isd = formatter(driver)
                isd = formatter(driver)
                if verbose:
                if verbose:
                    print("Success with: ", driver)
                    print("Success with: ", driver)
                    print("ISD:\n", isd)
                    print("ISD:\n", json.dumps(isd, indent=2, cls=AleJsonEncoder))
                return isd
                return isd
        except Exception as e:
        except Exception as e:
            if verbose:
            if verbose:
+138 −0
Original line number Original line Diff line number Diff line
import spiceypy as spice

import ale
from ale.base.data_naif import NaifSpice
from ale.base.label_isis import IsisLabel
from ale.base.type_sensor import LineScanner
from ale.base.base import Driver

import pvl

class OdyThemisIrIsisLabelNaifSpiceDriver(LineScanner, IsisLabel, NaifSpice, Driver):
    """
    Driver for Themis IR ISIS cube
    """
    @property
    def instrument_id(self):
        inst_id = super().instrument_id

        if inst_id not in ["THEMIS_IR"]:
            raise Exception(f"{inst_id} is not a valid THEMIS IR instrument name. Expecting THEMIS_IR")

        return inst_id

    @property
    def sensor_model_version(self):
        return 1

    @property
    def spacecraft_name(self):
        name = super().spacecraft_name.replace('_', ' ')
        if name != "MARS ODYSSEY":
            raise Exception("{name} for label is not a valid Mars Odyssey spacecraft name")
        return name

    @property
    def ikid(self):
        return self.label['IsisCube']['Kernels']['NaifFrameCode']

    @property
    def line_exposure_duration(self):
        """
        returns line exposure duration

        Taken from ISIS ThemisIr Camera Model
        """
        return (33.2871/1000 * self.line_summing)

    @property
    def ephemeris_start_time(self):
        og_start_time = super().ephemeris_start_time
        offset = self.label["IsisCube"]["Instrument"]["SpacecraftClockOffset"]
        if isinstance(offset, pvl._collections.Units):
            units = offset.units
            if "ms" in units.lower():
                offset = offset.value * 0.001
            else:
                # if not milliseconds, the units are probably seconds
                offset = offset.value

        return og_start_time + offset


class OdyThemisVisIsisLabelNaifSpiceDriver(LineScanner, IsisLabel, NaifSpice, Driver):
    """"
    Driver for Themis VIS ISIS cube
    """

    @property
    def instrument_id(self):
        inst_id = super().instrument_id

        if inst_id not in ["THEMIS_VIS"]:
            raise Exception(f"{inst_id} is not a valid THEMIS VIS instrument name. Expecting \"THEMIS_VIS\"")

        return inst_id

    @property
    def sensor_model_version(self):
        return 1

    @property
    def spacecraft_name(self):
        name = super().spacecraft_name.replace('_', ' ')
        if name != "MARS ODYSSEY":
            raise Exception("{name} for label is not a valid Mars Odyssey spacecraft name")
        return name

    @property
    def ikid(self):
        return self.label['IsisCube']['Kernels']['NaifFrameCode']

    @property
    def ephemeris_start_time(self):
        """
        The starting ephemeris time, in seconds

        Formula derived from ISIS3's ThemisVis Camera model

        Returns
        -------
        : double
          Starting ephemeris time in seconds
        """
        og_start_time = super().ephemeris_start_time

        offset = self.label["IsisCube"]["Instrument"]["SpacecraftClockOffset"]
        if isinstance(offset, pvl._collections.Units):
            units = offset.units
            if "ms" in units.lower():
                offset = offset.value * 0.001
            else:
                # if not milliseconds, the units are probably seconds
                offset = offset.value

        return og_start_time + offset - (self.line_exposure_duration/2)

    @property
    def line_exposure_duration(self):
        """
        The line exposure duration of the image, in seconds

        Returns
        -------
        : float
          Line exposure duration in seconds
        """
        line_exposure_duration = self.label['IsisCube']['Instrument']['ExposureDuration']
        if isinstance(line_exposure_duration, pvl._collections.Units):
            units = line_exposure_duration.units
            if "ms" in units.lower():
                line_exposure_duration = line_exposure_duration.value * 0.001
            else:
                # if not milliseconds, the units are probably seconds
                line_exposure_duration = line_exposure_duration.value
        else:
            # if no units are available, assume the exposure duration is given in milliseconds
            line_exposure_duration = line_exposure_duration * 0.001
        return line_exposure_duration
+274 −0
Original line number Original line Diff line number Diff line
DAFETF NAIF DAF ENCODED TRANSFER FILE
'DAF/SPK '
'2'
'6'
'SPKMERGE                                                    '
BEGIN_ARRAY 1 73
'MONTE Difference Line Table             '
'2322375D3A4104^8'
'232237A4089708^8'
'-35'
'4'
'1'
'1'
73
'232237D9A5EB02^8'
'C9C897C6B5BE8^1'
'193912F8D6B7D^2'
'25D59C754213B8^2'
'327225F1AD6FA^2'
'3F0EAF6E18CB88^2'
'4BAB38EA84277^2'
'5847C266EF8358^2'
'64E44BE35ADF4^2'
'7180D55FC63B28^2'
'7E1D5EDC31971^2'
'8AB9E8589CF2F8^2'
'975671D5084EE^2'
'A3F2FB5173AAC8^2'
'B08F84CDDF06B^2'
'0^0'
'-6DAF071A237F4^3'
'11C13E397FFC97^1'
'70FC356F7F4314^3'
'2F3ECABD0A6F1^1'
'-AF5D6B61152F58^3'
'134F0377053E6B^1'
'5B67C2C5058464^-2'
'-B888F9243920A8^-4'
'-2FFF469D469924^-5'
'73554A97C57CB8^-7'
'F222EB6174B18^-9'
'-1015A6E074897C^-8'
'1623BF2F8D99D^-8'
'83BFAF2E528B8^-9'
'-DA7CFF3AAF9^-9'
'-AA34D3AF27DDC^-9'
'3D3EAEFF89813^-9'
'851DB492C7ECC^-9'
'1CAB4BC5E6644^-9'
'-422CDE8^-9'
'-3562F04^-9'
'-5E24FE8667E814^-2'
'-1F0029EED195CF^-3'
'3076FD84651B3E^-5'
'10517D2BEEEBF3^-6'
'-57764EDA436FBC^-8'
'F014EDD01C15D^-9'
'-60688A03B1679^-9'
'-1843D10C6B9225^-8'
'-5FE3C9B4EBC21^-9'
'E672E274B5854^-9'
'BC0178534D22D^-9'
'-2EF5299EEB78D^-9'
'-9258D2568^-9'
'-368BB7D^-9'
'3886698^-9'
'923F27DDAB151^-2'
'-C7EBECE2DCFC38^-4'
'-4C8D5AB52C82A^-5'
'76475D67D0834C^-7'
'414090E0A9B3D8^-8'
'A8A53BE0D20D8^-9'
'ABDF731B8BABC^-9'
'-68DE8938BE01B^-9'
'-EA10CE4FD164C^-9'
'-5025D13218068^-9'
'6F9D2ACEF73C2^-9'
'7A94A5B6DE2528^-9'
'105C8^-A'
'-4F36EC8^-9'
'-31893F8^-9'
'F^1'
'E^1'
'E^1'
'E^1'
'232237D9A5EB02^8'
'1^1'
END_ARRAY 1 73
BEGIN_ARRAY 2 39
'DE-0721LE-0721                          '
'2322375D3A4104^8'
'232237A4089708^8'
'A'
'0'
'1'
'2'
39
'2319474^8'
'A8C^5'
'6F9501C2BCCDC4^4'
'-22D3D6C1C0191^4'
'-81194DD9620068^1'
'90A53E5CCF685^-1'
'-4D25BAAF008C5^-1'
'6FB48613964718^-2'
'1F82642A708764^-2'
'-14253353947AF6^-3'
'-F6739EF21A1D3^-4'
'-45FC8DFAACD308^-5'
'72CF1FF0A27ED4^-5'
'EFD9FC6FB774F8^5'
'C9F5D270E59B88^3'
'-1655EE33F6608F^2'
'29572ACCFF9E2A^0'
'-2DB358591B7D8C^-1'
'-9F6CFF619553F8^-2'
'D11D30DAB63A28^-3'
'4D50547810F66C^-3'
'-16EE855412303C^-4'
'-25161E067C2DD8^-4'
'-17B9C479556ED2^-5'
'64C258C47ABED8^5'
'66A26612F84FD4^3'
'-9635E4D62DB458^1'
'15C10F059BDC7^0'
'-1201DCE40C5BDB^-1'
'-60B17C12A7EE94^-2'
'3B907BB84AD7F6^-3'
'2B636A900D5786^-3'
'D4BFD84B2E409^-5'
'-135B8F7BD8270F^-4'
'-189342350AE687^-5'
'230EBB4^8'
'1518^6'
'23^2'
'1^1'
END_ARRAY 2 39
BEGIN_ARRAY 3 39
'DE-0721LE-0721                          '
'2322375D3A4104^8'
'232237A4089708^8'
'4'
'0'
'1'
'2'
39
'2323D34^8'
'1518^6'
'A9B614F265355^7'
'11096CB6B0389A^7'
'-138F5D9AD34149^6'
'-578143AB36E40C^4'
'3B84AF0746727E^3'
'105DAD3D68BEB4^2'
'-9BB7E2E0115398^0'
'-38401F3BE712E^-1'
'1CE7A08FECFE7A^-2'
'D84D7C61C7D2D^-4'
'1B0C407FB894D5^-6'
'-55FA371D7E2734^7'
'1BBE52A03DF54^7'
'A03A1DE235E968^5'
'-85D7AF4305E81^4'
'-21E01962153124^3'
'159ECB38A11E14^2'
'696526ED7BB294^0'
'-3DA2A15A747BCE^-1'
'-177DA6EDCB6FA9^-2'
'EA261A0D7B3B48^-4'
'B8A505B44DC94^-5'
'-2C0D3571897D3A^7'
'C43E5F0D83694^6'
'51F09D4A185204^5'
'-3B07938E566E6A^4'
'-1124D026A49EF7^3'
'97A0224D6F26D8^1'
'3487FDD17D887^0'
'-1ABC208FE2D8ED^-1'
'-BACDBCF536F2B8^-3'
'5FE9C4DB401B1C^-4'
'611334EEA4BC3^-5'
'230EBB4^8'
'2A3^6'
'23^2'
'1^1'
END_ARRAY 3 39
BEGIN_ARRAY 4 54
'MAR097                                  '
'2322375D3A4104^8'
'232237A4089708^8'
'1F3'
'4'
'1'
'3'
54
'2322579^8'
'2A3^4'
'-326CF742A4FA1E^-3'
'-7D7F2E2F6B56B^-4'
'-7AEF8B5DEDA314^-3'
'-3E8FD0D80F55D6^-5'
'15142B57E95624^-3'
'-2948827FDC5C98^-5'
'-14C79D2FBA8D32^-4'
'A3AA3D6D9C5178^-6'
'49F1DC821148B4^-4'
'75E3FE20F91B4^-3'
'-1C89CD8A1749F6^-3'
'-3D6C410EF6E428^-3'
'4FE5013DFC5D1^-4'
'5CF73FFA5457A8^-4'
'-6127446FECFE8^-5'
'-4A30E53DBC64C^-5'
'1D6DCDCF53E01F^-3'
'3D40A365E2145E^-3'
'3957492ECAE23E^-3'
'-1E63F8713F1944^-3'
'-9BF155C7F3B9A^-4'
'2FC1617BAB869E^-4'
'908E36378D79^-5'
'-2ADA851EAF283^-5'
'-373D7F3877C566^-7'
'-80744176CA6FF^-6'
'-F49EEC0431A05^-8'
'3A0B3E24F9D904^-6'
'-66420B176656B4^-8'
'-5E9227886FBCA^-7'
'3650022E3C37DC^-8'
'0^0'
'-EECFA0DCC2DBC^-7'
'-1DDED56D14E408^-6'
'-77460971AAA478^-6'
'D6C5701CCD3DA8^-7'
'147F608099607^-6'
'-1BA27E6AEE140E^-7'
'-189ED3D9529E97^-7'
'0^0'
'-621AF42026DC8^-7'
'3BFCA3FC217D78^-6'
'-3AB96C788D738A^-6'
'-1B00613907AC3D^-6'
'A6E54D1F6C166^-7'
'291E361B2DEE14^-7'
'-E38965E60CF84^-8'
'0^0'
'23222D6^8'
'546^4'
'32^2'
'1^1'
END_ARRAY 4 54
TOTAL_ARRAYS 4
 ~NAIF/SPC BEGIN COMMENTS~
; /tmp/themis_kernels/I74199019RDR_0.bsp LOG FILE

; Created 2019-09-30/15:01:16.00.
;
; BEGIN SPKMERGE COMMANDS

LEAPSECONDS_KERNEL   = /usgs/cpkgs/isis3/data/base/kernels/lsk/naif0012.tls

SPK_KERNEL           = /tmp/themis_kernels/I74199019RDR_0.bsp
  SOURCE_SPK_KERNEL  = /usgs/cpkgs/isis3/data/odyssey/kernels/spk/m01_ext56.bsp
    INCLUDE_COMMENTS = NO
    BODIES           = -53
    BEGIN_TIME       = 2018 SEP 05 18:41:28.045
    END_TIME         = 2018 SEP 05 18:42:38.851
  SOURCE_SPK_KERNEL  = /usgs/cpkgs/isis3/data/base/kernels/spk/mar097.bsp
    INCLUDE_COMMENTS = NO
    BODIES           = 4, 10, 499
    BEGIN_TIME       = 2018 SEP 05 18:41:28.045
    END_TIME         = 2018 SEP 05 18:42:38.851

; END SPKMERGE COMMANDS
 ~NAIF/SPC END COMMENTS~
+346 −0
Original line number Original line Diff line number Diff line
DAFETF NAIF DAF ENCODED TRANSFER FILE
'DAF/SPK '
'2'
'6'
'SPKMERGE                                                    '
BEGIN_ARRAY 1 145
'MONTE Difference Line Table             '
'23223A0EFD5374^8'
'23223A540B2664^8'
'-35'
'4'
'1'
'1'
145
'23223A52C8913C^8'
'9A7D94342326^1'
'134FB2868464C^2'
'1CF78BC9C6972^2'
'269F650D08C98^2'
'30473E504AFBE^2'
'39EF17938D2E4^2'
'4396F0D6CF60A^2'
'4D3ECA1A1193^2'
'56E6A35D53C56^2'
'608E7CA095F7C^2'
'6A3655E3D82A2^2'
'73DE2F271A5C8^2'
'7D86086A5C8EE^2'
'872DE1AD9EC14^2'
'0^0'
'-330C532A5956A6^3'
'1C661E8E830518^1'
'CE3B70E8238718^3'
'1A2998695D29DC^1'
'-66E19648353A18^3'
'25BE4F3B316DF2^1'
'2AA1CFD2E7F7C2^-2'
'-E3CAC282E6886^-4'
'-D17C5B0C42C4E^-6'
'4D9CF4E792B744^-7'
'-A77E24137A63C^-9'
'-1330A0DAB9576A^-8'
'-2E658B6D430BD8^-9'
'1EB5502^-9'
'132ED56^-9'
'21C392^-A'
'-34EA34^-A'
'-214BD2^-A'
'-966A^-C'
'B6494^-B'
'0^0'
'-AB4C81B490B5B8^-2'
'-D1007925F8217^-4'
'3481D7277A0A1^-5'
'39B8C983299EB8^-7'
'-507B3A47D073FC^-8'
'-15E6AB4A77448^-9'
'7BD1960D9BEE8^-9'
'32E55771A0C234^-9'
'-A4B5BA1F9B6D^-B'
'-B57A0F280A3FB^-A'
'-5230D0BBC98D6^-A'
'A2A58^-B'
'1C998^-A'
'C47D8^-B'
'17AE8^-B'
'55DFA6C751C8C8^-2'
'-12F1E6F63D177D^-3'
'-1A577DB1227EC3^-5'
'65F4B19EAE0F3C^-7'
'2244306C689E7^-9'
'-EED1AE2F08D8D^-9'
'-4A95F07293EFD^-9'
'87CD5D1194EB8^-A'
'13551B^-9'
'6CCB48^-A'
'-1E5128^-A'
'-2B2334^-A'
'-BABA^-B'
'4FCBC^-B'
'0^0'
'F^1'
'D^1'
'E^1'
'D^1'
'23223AC6A6C064^8'
'9A7D94342326^1'
'134FB2868464C^2'
'1CF78BC9C6972^2'
'269F650D08C98^2'
'30473E504AFBE^2'
'39EF17938D2E4^2'
'4396F0D6CF60A^2'
'4D3ECA1A1193^2'
'56E6A35D53C56^2'
'608E7CA095F7C^2'
'6A3655E3D82A2^2'
'73DE2F271A5C8^2'
'7D86086A5C8EE^2'
'872DE1AD9EC14^2'
'0^0'
'-25F1D680AB1ED6^3'
'1D739C142FC72C^1'
'D8F50C21DC7C68^3'
'1530293D88CE5B^1'
'-55478239DEF784^3'
'27F78B3F80CBF4^1'
'1FBAA1C4359B5D^-2'
'-EC4EBF71AE6B38^-4'
'-9DD6FACFFFA048^-6'
'4EC66293161B94^-7'
'3F2229F47166FE^-8'
'-52950A5ABA04E8^-9'
'-A4D979FD430BD8^-9'
'-76DC3F^-A'
'201481D^-9'
'7D8251^-A'
'-5CBF51^-A'
'-35F24D^-A'
'BFC4F^-B'
'246EDC^-A'
'0^0'
'-B413D28FEACD88^-2'
'-A89187573F7AE8^-4'
'374F3F7CF2AFA4^-5'
'460ABEC91998BC^-7'
'-20AD5584779F3A^-8'
'-2305CF5F6F804E^-8'
'-84EEE380067EC^-A'
'667135A4CA3264^-9'
'137E905462239D^-9'
'-12B42DFF57CE03^-9'
'-924A08BBC98D6^-A'
'25C5B8^-A'
'333BB8^-A'
'6FCD^-B'
'1BD68^-B'
'47323840EAB8F8^-2'
'-141185D5591669^-3'
'-15FDA8053A5DC^-5'
'63CD50C82FDC58^-7'
'41149F45EE7514^-8'
'1B2E0527BDE588^-9'
'-9F1457A5643F3^-9'
'-1B34DF2EE6B148^-9'
'1D4483^-9'
'CB16F4^-A'
'-4257A8^-A'
'-4849^-A'
'-47888^-B'
'FEB4C^-B'
'0^0'
'F^1'
'D^1'
'E^1'
'D^1'
'23223A52C8913C^8'
'23223AC6A6C064^8'
'2^1'
END_ARRAY 1 145
BEGIN_ARRAY 2 39
'DE-0721LE-0721                          '
'23223A0EFD5374^8'
'23223A540B2664^8'
'A'
'0'
'1'
'2'
39
'2319474^8'
'A8C^5'
'6F9501C2BCCDC4^4'
'-22D3D6C1C0191^4'
'-81194DD9620068^1'
'90A53E5CCF685^-1'
'-4D25BAAF008C5^-1'
'6FB48613964718^-2'
'1F82642A708764^-2'
'-14253353947AF6^-3'
'-F6739EF21A1D3^-4'
'-45FC8DFAACD308^-5'
'72CF1FF0A27ED4^-5'
'EFD9FC6FB774F8^5'
'C9F5D270E59B88^3'
'-1655EE33F6608F^2'
'29572ACCFF9E2A^0'
'-2DB358591B7D8C^-1'
'-9F6CFF619553F8^-2'
'D11D30DAB63A28^-3'
'4D50547810F66C^-3'
'-16EE855412303C^-4'
'-25161E067C2DD8^-4'
'-17B9C479556ED2^-5'
'64C258C47ABED8^5'
'66A26612F84FD4^3'
'-9635E4D62DB458^1'
'15C10F059BDC7^0'
'-1201DCE40C5BDB^-1'
'-60B17C12A7EE94^-2'
'3B907BB84AD7F6^-3'
'2B636A900D5786^-3'
'D4BFD84B2E409^-5'
'-135B8F7BD8270F^-4'
'-189342350AE687^-5'
'230EBB4^8'
'1518^6'
'23^2'
'1^1'
END_ARRAY 2 39
BEGIN_ARRAY 3 39
'DE-0721LE-0721                          '
'23223A0EFD5374^8'
'23223A540B2664^8'
'4'
'0'
'1'
'2'
39
'2323D34^8'
'1518^6'
'A9B614F265355^7'
'11096CB6B0389A^7'
'-138F5D9AD34149^6'
'-578143AB36E40C^4'
'3B84AF0746727E^3'
'105DAD3D68BEB4^2'
'-9BB7E2E0115398^0'
'-38401F3BE712E^-1'
'1CE7A08FECFE7A^-2'
'D84D7C61C7D2D^-4'
'1B0C407FB894D5^-6'
'-55FA371D7E2734^7'
'1BBE52A03DF54^7'
'A03A1DE235E968^5'
'-85D7AF4305E81^4'
'-21E01962153124^3'
'159ECB38A11E14^2'
'696526ED7BB294^0'
'-3DA2A15A747BCE^-1'
'-177DA6EDCB6FA9^-2'
'EA261A0D7B3B48^-4'
'B8A505B44DC94^-5'
'-2C0D3571897D3A^7'
'C43E5F0D83694^6'
'51F09D4A185204^5'
'-3B07938E566E6A^4'
'-1124D026A49EF7^3'
'97A0224D6F26D8^1'
'3487FDD17D887^0'
'-1ABC208FE2D8ED^-1'
'-BACDBCF536F2B8^-3'
'5FE9C4DB401B1C^-4'
'611334EEA4BC3^-5'
'230EBB4^8'
'2A3^6'
'23^2'
'1^1'
END_ARRAY 3 39
BEGIN_ARRAY 4 54
'MAR097                                  '
'23223A0EFD5374^8'
'23223A540B2664^8'
'1F3'
'4'
'1'
'3'
54
'2322579^8'
'2A3^4'
'-326CF742A4FA1E^-3'
'-7D7F2E2F6B56B^-4'
'-7AEF8B5DEDA314^-3'
'-3E8FD0D80F55D6^-5'
'15142B57E95624^-3'
'-2948827FDC5C98^-5'
'-14C79D2FBA8D32^-4'
'A3AA3D6D9C5178^-6'
'49F1DC821148B4^-4'
'75E3FE20F91B4^-3'
'-1C89CD8A1749F6^-3'
'-3D6C410EF6E428^-3'
'4FE5013DFC5D1^-4'
'5CF73FFA5457A8^-4'
'-6127446FECFE8^-5'
'-4A30E53DBC64C^-5'
'1D6DCDCF53E01F^-3'
'3D40A365E2145E^-3'
'3957492ECAE23E^-3'
'-1E63F8713F1944^-3'
'-9BF155C7F3B9A^-4'
'2FC1617BAB869E^-4'
'908E36378D79^-5'
'-2ADA851EAF283^-5'
'-373D7F3877C566^-7'
'-80744176CA6FF^-6'
'-F49EEC0431A05^-8'
'3A0B3E24F9D904^-6'
'-66420B176656B4^-8'
'-5E9227886FBCA^-7'
'3650022E3C37DC^-8'
'0^0'
'-EECFA0DCC2DBC^-7'
'-1DDED56D14E408^-6'
'-77460971AAA478^-6'
'D6C5701CCD3DA8^-7'
'147F608099607^-6'
'-1BA27E6AEE140E^-7'
'-189ED3D9529E97^-7'
'0^0'
'-621AF42026DC8^-7'
'3BFCA3FC217D78^-6'
'-3AB96C788D738A^-6'
'-1B00613907AC3D^-6'
'A6E54D1F6C166^-7'
'291E361B2DEE14^-7'
'-E38965E60CF84^-8'
'0^0'
'23222D6^8'
'546^4'
'32^2'
'1^1'
END_ARRAY 4 54
TOTAL_ARRAYS 4
 ~NAIF/SPC BEGIN COMMENTS~
; /tmp/themis_kernels/I74199019RDR_1.bsp LOG FILE

; Created 2019-09-30/15:01:16.00.
;
; BEGIN SPKMERGE COMMANDS

LEAPSECONDS_KERNEL   = /usgs/cpkgs/isis3/data/base/kernels/lsk/naif0012.tls

SPK_KERNEL           = /tmp/themis_kernels/I74199019RDR_1.bsp
  SOURCE_SPK_KERNEL  = /usgs/cpkgs/isis3/data/odyssey/kernels/spk/m01_ext56.bsp
    INCLUDE_COMMENTS = NO
    BODIES           = -53
    BEGIN_TIME       = 2018 SEP 05 18:52:57.807
    END_TIME         = 2018 SEP 05 18:54:06.861
  SOURCE_SPK_KERNEL  = /usgs/cpkgs/isis3/data/base/kernels/spk/mar097.bsp
    INCLUDE_COMMENTS = NO
    BODIES           = 4, 10, 499
    BEGIN_TIME       = 2018 SEP 05 18:52:57.807
    END_TIME         = 2018 SEP 05 18:54:06.861

; END SPKMERGE COMMANDS
 ~NAIF/SPC END COMMENTS~
Loading