diff --git a/lumispy/hyperspy_extension.yaml b/lumispy/hyperspy_extension.yaml index 3d34c83f9..ca9b4b691 100644 --- a/lumispy/hyperspy_extension.yaml +++ b/lumispy/hyperspy_extension.yaml @@ -150,8 +150,18 @@ signals: lazy: True module: lumispy.signals.luminescence_transient + TransientSpectrumCasting: + signal_type: TransientSpec + signal_type_aliases: + - TRLumiSpec + - TR luminescence spectrum + - time-resolved luminescence spectrum + signal_dimension: 1 + dtype: real + lazy: False + module: lumispy.signals.luminescence_transientspec LumiTransientSpectrum: - signal_type: Luminescence + signal_type: TransientSpec signal_type_aliases: - TRLumiSpec - TR luminescence spectrum @@ -161,9 +171,8 @@ signals: lazy: False module: lumispy.signals.luminescence_transientspec LazyLumiTransientSpectrum: - signal_type: Luminescence + signal_type: TransientSpec signal_type_aliases: - - TransientSpec - TRLumiSpec - TR luminescence spectrum - time-resolved luminescence spectrum diff --git a/lumispy/signals/__init__.py b/lumispy/signals/__init__.py index 7f89bfcd9..010b97238 100644 --- a/lumispy/signals/__init__.py +++ b/lumispy/signals/__init__.py @@ -41,6 +41,7 @@ "LazyELSpectrum", "LumiTransient", "LazyLumiTransient", + "TransientSpectrumCasting", "LumiTransientSpectrum", "LazyLumiTransientSpectrum", ] diff --git a/lumispy/signals/luminescence_spectrum.py b/lumispy/signals/luminescence_spectrum.py index 39fda3363..759af0abc 100644 --- a/lumispy/signals/luminescence_spectrum.py +++ b/lumispy/signals/luminescence_spectrum.py @@ -26,7 +26,6 @@ from traits.api import Undefined from lumispy.signals.common_luminescence import CommonLumi -from lumispy.signals.luminescence_transient import LumiTransient from lumispy import to_array, savetxt from lumispy.utils import solve_grating_equation from lumispy.utils.axes import GRATING_EQUATION_DOCSTRING_PARAMETERS @@ -45,21 +44,8 @@ class LumiSpectrum(Signal1D, CommonLumi): _signal_dimension = 1 _signal_type = "Luminescence" - def __init__(self, *args, **kwargs): - if hasattr(self, "axes_manager") and self.axes_manager[-1].units in [ - "fs", - "ps", - "ns", - "µs", - "mus", - "ms", - "s", - ]: - self.metadata.Signal.signal_type = "Transient" - self.__class__ = LumiTransient - self.__init__(*args, **kwargs) - else: - super().__init__(*args, **kwargs) + def __init(self, *args, **kwargs): + super().__init__(*args, **kwargs) def remove_background_from_file(self, background=None, inplace=False, **kwargs): """Subtract the background to the signal in all navigation axes. If no diff --git a/lumispy/signals/luminescence_transientspec.py b/lumispy/signals/luminescence_transientspec.py index 08e9e4143..74d420436 100644 --- a/lumispy/signals/luminescence_transientspec.py +++ b/lumispy/signals/luminescence_transientspec.py @@ -21,21 +21,47 @@ ------------------------------------------------- """ -from hyperspy.signals import Signal2D +from hyperspy.signals import Signal1D, Signal2D from hyperspy._signals.lazy import LazySignal +from lumispy.signals import LumiSpectrum, LumiTransient from lumispy.signals.common_luminescence import CommonLumi from lumispy.signals.common_transient import CommonTransient +class TransientSpectrumCasting(Signal1D, CommonLumi, CommonTransient): + """**1D signal class for casting reduced LumiTransientSpectrum to either Luminescence or Transient**""" + + _signal_type = "TransientSpec" + _signal_dimension = 1 + + def __init__(self, *args, **kwargs): + if hasattr(self, "axes_manager") and self.axes_manager[-1].units in [ + "fs", + "ps", + "ns", + "µs", + "mus", + "ms", + "s", + ]: + self.metadata.Signal.signal_type = "Transient" + self.__class__ = LumiTransient + self.__init__(*args, **kwargs) + else: + self.metadata.Signal.signal_type = "Luminescence" + self.__class__ = LumiSpectrum + self.__init__(*args, **kwargs) + + class LumiTransientSpectrum(Signal2D, CommonLumi, CommonTransient): - """**General 2D luminescence signal class (transient/time resolved)**""" + """**2D luminescence signal class (spectrum+transient/time resolved dimensions)**""" - _signal_type = "Luminescence" + _signal_type = "TransientSpec" _signal_dimension = 2 class LazyLumiTransientSpectrum(LazySignal, LumiTransientSpectrum): - """**General lazy 2D luminescence signal class (transient/time resolved)**""" + """**Lazy 2D luminescence signal class (spectral+transient/time resolved dimensions)**""" _lazy = True