From d575b866371d230482a9e24a76fc6e96323c1b35 Mon Sep 17 00:00:00 2001 From: Adam Paquette <acpaquette@usgs.gov> Date: Fri, 13 Nov 2020 17:42:03 -0700 Subject: [PATCH] Driver updates to get cassini, messenger, and viking working with isislabel isisspice data --- ale/base/label_isis.py | 1 + ale/drivers/co_drivers.py | 17 ++++++++++++++++- ale/drivers/mess_drivers.py | 8 ++++---- ale/drivers/viking_drivers.py | 15 +++++++++++++++ 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/ale/base/label_isis.py b/ale/base/label_isis.py index 66847e7..467a995 100644 --- a/ale/base/label_isis.py +++ b/ale/base/label_isis.py @@ -11,6 +11,7 @@ class IsisLabel(): if isinstance(self._file, pvl.PVLModule): self._label = self._file grammar = pvl.grammar.ISISGrammar() + grammar.comments+=(("#", "\n"), ) try: self._label = pvl.loads(self._file, grammar=grammar) except Exception: diff --git a/ale/drivers/co_drivers.py b/ale/drivers/co_drivers.py index eec96dc..106f38c 100644 --- a/ale/drivers/co_drivers.py +++ b/ale/drivers/co_drivers.py @@ -7,8 +7,10 @@ import pvl import spiceypy as spice from ale.base import Driver from ale.base.data_naif import NaifSpice +from ale.base.data_isis import IsisSpice from ale.base.label_pds3 import Pds3Label -from ale.base.type_distortion import RadialDistortion +from ale.base.label_isis import IsisLabel +from ale.base.type_distortion import RadialDistortion, NoDistortion from ale.base.type_sensor import Framer from ale.rotation import ConstantRotation @@ -325,3 +327,16 @@ class CassiniIssPds3LabelNaifSpiceDriver(Framer, Pds3Label, NaifSpice, RadialDis self._frame_chain.add_edge(rotation=rotation) return self._frame_chain + +class CassiniIssIsisLabelIsisSpiceDriver(Framer, IsisLabel, IsisSpice, NoDistortion, Driver): + @property + def sensor_name(self): + """ + Returns the name of the instrument + + Returns + ------- + : str + Name of the sensor + """ + return self.label['IsisCube']['Instrument']['SpacecraftName'] diff --git a/ale/drivers/mess_drivers.py b/ale/drivers/mess_drivers.py index 2dc561d..0672ccd 100644 --- a/ale/drivers/mess_drivers.py +++ b/ale/drivers/mess_drivers.py @@ -10,6 +10,7 @@ from ale.base.data_naif import NaifSpice from ale.base.label_pds3 import Pds3Label from ale.base.label_isis import IsisLabel from ale.base.type_sensor import Framer +from ale.base.type_distortion import NoDistortion from ale.base.data_isis import IsisSpice ID_LOOKUP = { @@ -18,7 +19,7 @@ ID_LOOKUP = { } -class MessengerMdisIsisLabelIsisSpiceDriver(Framer, IsisLabel, IsisSpice, Driver): +class MessengerMdisIsisLabelIsisSpiceDriver(Framer, IsisLabel, IsisSpice, NoDistortion, Driver): @property def spacecraft_name(self): """ @@ -72,8 +73,7 @@ class MessengerMdisIsisLabelIsisSpiceDriver(Framer, IsisLabel, IsisSpice, Driver return ID_LOOKUP[super().instrument_id] - -class MessengerMdisPds3NaifSpiceDriver(Framer, Pds3Label, NaifSpice, Driver): +class MessengerMdisPds3NaifSpiceDriver(Framer, Pds3Label, NaifSpice, NoDistortion, Driver): """ Driver for reading MDIS PDS3 labels. Requires a Spice mixin to acquire addtional ephemeris and instrument data located exclusively in spice kernels. @@ -249,7 +249,7 @@ class MessengerMdisPds3NaifSpiceDriver(Framer, Pds3Label, NaifSpice, Driver): return spice.gdpool('INS{}_PIXEL_PITCH'.format(self.ikid), 0, 1) -class MessengerMdisIsisLabelNaifSpiceDriver(IsisLabel, NaifSpice, Framer, Driver): +class MessengerMdisIsisLabelNaifSpiceDriver(IsisLabel, NaifSpice, Framer, NoDistortion, Driver): """ Driver for reading MDIS ISIS3 Labels. These are Labels that have been ingested into ISIS from PDS EDR images. Any SPCIE data attached by the spiceinit application diff --git a/ale/drivers/viking_drivers.py b/ale/drivers/viking_drivers.py index 74c2eb4..254d1dc 100644 --- a/ale/drivers/viking_drivers.py +++ b/ale/drivers/viking_drivers.py @@ -2,8 +2,10 @@ import spiceypy as spice import ale from ale.base.data_naif import NaifSpice +from ale.base.data_isis import IsisSpice from ale.base.label_isis import IsisLabel from ale.base.type_sensor import Framer +from ale.base.type_distortion import NoDistortion from ale.base.base import Driver class VikingIsisLabelNaifSpiceDriver(Framer, IsisLabel, NaifSpice, Driver): @@ -80,3 +82,16 @@ class VikingIsisLabelNaifSpiceDriver(Framer, IsisLabel, NaifSpice, Driver): offset2 = 1.0 / 64.0 * 4.48 return ephemeris_start_time + offset1 + offset2 + +class VikingIsisLabelIsisSpiceDriver(Framer, IsisLabel, IsisSpice, NoDistortion, Driver): + @property + def sensor_name(self): + """ + Returns the name of the instrument + + Returns + ------- + : str + Name of the sensor + """ + return self.label['IsisCube']['Instrument']['SpacecraftName'] -- GitLab