diff --git a/plio/io/io_moon_minerology_mapper.py b/plio/io/io_moon_minerology_mapper.py index c28a7dc99da72d14ecc562466906903365b7299e..de573ac9b794b0996db4f36a68f84a2b9b4ab40a 100644 --- a/plio/io/io_moon_minerology_mapper.py +++ b/plio/io/io_moon_minerology_mapper.py @@ -2,6 +2,15 @@ import os import numpy as np from .io_gdal import GeoDataset from .hcube import HCube + +try: + from libpysat.derived import m3, crism + from libpysat.derived.utils import add_derived_funcs + libpysat_enabled = True +except: + print('No libpysat module. Unable to attached derived product functions') + libpysat_enabled = False + import gdal @@ -9,6 +18,24 @@ class M3(GeoDataset, HCube): """ An M3 specific reader with the spectral mixin. """ + def __init__(self, file_name): + + GeoDataset.__init__(self, file_name) + HCube.__init__(self) + + if libpysat_enabled: + self.derived_funcs = add_derived_funcs(m3) + + def __getattr__(self, name): + try: + func = self.derived_funcs[name] + + setattr(self, name, func.__get__(self)) + return getattr(self, name) + + except: + raise AttributeError() + @property def wavelengths(self): if not hasattr(self, '_wavelengths'):