From 7d4d944c3862ec1c4893e8bf842edc895f26a69a Mon Sep 17 00:00:00 2001 From: Stuart Sides <ssides@usgs.gov> Date: Tue, 30 Apr 2019 10:05:18 -0700 Subject: [PATCH] Updates to LRO NAC driver without distortion model (#113) * Modidified for LRO NAC * Updates to LRO NAC driver without distortion model * Update the test with the new name * Fixed missed name change --- ale/config.py | 1 + ale/drivers/lro_drivers.py | 71 ++++++++++++++++--------------- tests/pytests/test_lro_drivers.py | 6 +-- 3 files changed, 41 insertions(+), 37 deletions(-) diff --git a/ale/config.py b/ale/config.py index 2aa91b1..ae3fe14 100644 --- a/ale/config.py +++ b/ale/config.py @@ -9,4 +9,5 @@ mdis = '/data/spice/mess-e_v_h-spice-6-v1.0/messsp_1000/extras/mk' # Messenger mro = '/data/spice/mro-m-spice-6-v1.0/mrosp_1000/extras/mk' # Mars Reconnaissance Orbiter kaguya = '/data/spice/SELENE/kernels/mk/' dawn = '/data/spice/dawn-m_a-spice-6-v1.0/dawnsp_1000/extras/mk' +lro = '/usgs/cpkgs/isis3/data/lro/kernels/mk/' # LRO diff --git a/ale/drivers/lro_drivers.py b/ale/drivers/lro_drivers.py index 22522e9..e157357 100644 --- a/ale/drivers/lro_drivers.py +++ b/ale/drivers/lro_drivers.py @@ -5,44 +5,12 @@ import numpy as np import pvl import spiceypy as spice +from ale import config from ale.util import get_metakernels from ale.drivers.base import LineScanner, NaifSpice, Pds3Label, Driver -class LroLrocNaifSpice(Driver, NaifSpice, LineScanner): - """ - Lroc mixin class for defining snowflake Spice calls. - """ - - @property - def metakernel(self): - """ - Returns latest instrument metakernels - - Returns - ------- - : string - Path to latest metakernel file - """ - metakernels = get_metakernels(years=self.start_time.year, missions='lro', versions='latest') - self._metakernel = metakernels['data'][0]['path'] - return self._metakernel - - @property - def spacecraft_name(self): - """ - Spacecraft name used in various Spice calls to acquire - ephemeris data. - - Returns - ------- - : str - Spacecraft name - """ - return "LRO" - - -class LroLrocPds3NaifSpiceDriver(Pds3Label, LroLrocNaifSpice): +class LroLrocPds3LabelNaifSpiceDriver(Driver, NaifSpice, Pds3Label, LineScanner): """ Driver for reading Lroc labels. Requires a Spice mixin to acquire addtional ephemeris and instrument data located exclusively in spice kernels. @@ -72,3 +40,38 @@ class LroLrocPds3NaifSpiceDriver(Pds3Label, LroLrocNaifSpice): return "LRO_LROCNACL" elif instrument == "LROC" and frame_id == "RIGHT": return "LRO_LROCNACR" + + @property + def metakernel(self): + """ + Returns latest instrument metakernels + + Returns + ------- + : string + Path to latest metakernel file + """ + metakernel_dir = config.lro + + mks = sorted(glob(os.path.join(metakernel_dir,'*.tm'))) + if not hasattr(self, '_metakernel'): + for mk in mks: + if str(self.start_time.year) in os.path.basename(mk): + self._metakernel = mk + return self._metakernel + + + @property + def spacecraft_name(self): + """ + Spacecraft name used in various SPICE calls to acquire + ephemeris data. + + Returns + ------- + : str + Spacecraft name + """ + return "LRO" + + diff --git a/tests/pytests/test_lro_drivers.py b/tests/pytests/test_lro_drivers.py index cfa2192..92bda58 100644 --- a/tests/pytests/test_lro_drivers.py +++ b/tests/pytests/test_lro_drivers.py @@ -5,7 +5,7 @@ import pytest import ale from ale.drivers import lro_drivers, base -from ale.drivers.lro_drivers import LroLrocPds3NaifSpiceDriver +from ale.drivers.lro_drivers import LroLrocPds3LabelNaifSpiceDriver from ale import util # 'Mock' the spice module where it is imported @@ -15,7 +15,7 @@ simplespice = SimpleSpice() base.spice = simplespice lro_drivers.spice = simplespice -LroLrocPds3NaifSpiceDriver.metakernel = get_mockkernels +LroLrocPds3LabelNaifSpiceDriver.metakernel = get_mockkernels @pytest.fixture def lro_lroclabel(): @@ -112,6 +112,6 @@ def lro_lroclabel(): """ def test_lro_creation(lro_lroclabel): - with LroLrocPds3NaifSpiceDriver(lro_lroclabel) as m: + with LroLrocPds3LabelNaifSpiceDriver(lro_lroclabel) as m: d = m.to_dict() assert isinstance(d, dict) -- GitLab