madman.analysis.absorbance

Absorbance.

  1r"""Absorbance."""
  2
  3from collections.abc import Sequence
  4from numbers import Real
  5
  6import numpy as np
  7from matplotlib import pyplot as plt
  8
  9from madman.analysis.spectrum import (
 10    EnergySpectrumMeta,
 11    EnergySpectrum,
 12    PairResolvedEnergySpectrum,
 13    BandPairResolvedEnergySpectrum,
 14    CellPairResolvedEnergySpectrum,
 15)
 16
 17
 18class SpectralAbsorbanceMeta(EnergySpectrumMeta):
 19    r"""Metaclass of SpectralAbsorbance."""
 20
 21    @property
 22    def std_axes(cls) -> plt.Axes:
 23        r"""Standard axes to plot spectral absorbance."""
 24        _, ax = plt.subplots(tight_layout=True)
 25        ax.set_xlabel(r"Photon energy / $\mathrm{eV}$")
 26        ax.set_ylabel(r"Spectral absorbance")
 27        return ax
 28
 29
 30class SpectralAbsorbance(EnergySpectrum, metaclass=SpectralAbsorbanceMeta):
 31    r"""Spectral absorbance.
 32
 33    Note:
 34        `energies`: Photon energies [$\mathrm{eV}$].
 35        `values`: Spectral absorbance values.
 36    """
 37
 38    def __init__(
 39        self,
 40        energies: Sequence[Real, ...],
 41        values: Sequence[Real, ...],
 42        *,
 43        d_energy: Real | None = None,
 44    ) -> None:
 45        r"""Initialize SpectralAbsorbance object.
 46
 47        Args:
 48            energies: Photon energies [$\mathrm{eV}$].
 49            values: Spectral absorbance values.
 50            d_energy: Target photon energy increment [$\mathrm{eV}$].
 51
 52        Raises:
 53            ValueError: If there are negative photon energies.
 54            ValueError: If there are negative values.
 55            ValueError: If there are values greater than 1.
 56        """
 57        if np.less(energies, 0.0).any():
 58            raise ValueError("Negative photon energies!")
 59        if np.less(values, 0.0).any():
 60            value_min = np.amin(values)
 61            if not np.isclose(value_min, 0.0):
 62                raise ValueError("Negative values!")
 63        if np.greater(values, 1.0).any():
 64            value_max = np.amax(values)
 65            if not np.isclose(value_max, 1.0):
 66                raise ValueError("Values greater than 1!")
 67        super().__init__(energies, values, d_energy=d_energy)
 68
 69
 70class ResolvedSpectralAbsorbance(PairResolvedEnergySpectrum):
 71    r"""Resolved spectral absorbance.
 72
 73    Note:
 74        `energies`: Photon energies [$\mathrm{eV}$].
 75        `rsv_values`: Resolved spectral absorbance values.
 76    """
 77
 78
 79class BandResolvedSpectralAbsorbance(BandPairResolvedEnergySpectrum):
 80    r"""Band resolved spectral absorbance.
 81
 82    Note:
 83        `energies`: Photon energies [$\mathrm{eV}$].
 84        `rsv_values`: Band resolved spectral absorbance values.
 85
 86    Note:
 87        See `madman.analysis.spectrum.BandResolvedEnergySpectrum` for details.
 88    """
 89
 90
 91class CellResolvedSpectralAbsorbance(CellPairResolvedEnergySpectrum):
 92    r"""Cell resolved spectral absorbance.
 93
 94    Note:
 95        `energies`: Photon energies [$\mathrm{eV}$].
 96        `rsv_values`: Cell resolved spectral absorbance values.
 97
 98    Note:
 99        See `madman.analysis.spectrum.CellResolvedEnergySpectrum` for details.
100    """
class SpectralAbsorbanceMeta(madman.analysis.spectrum.EnergySpectrumMeta):
19class SpectralAbsorbanceMeta(EnergySpectrumMeta):
20    r"""Metaclass of SpectralAbsorbance."""
21
22    @property
23    def std_axes(cls) -> plt.Axes:
24        r"""Standard axes to plot spectral absorbance."""
25        _, ax = plt.subplots(tight_layout=True)
26        ax.set_xlabel(r"Photon energy / $\mathrm{eV}$")
27        ax.set_ylabel(r"Spectral absorbance")
28        return ax

Metaclass of SpectralAbsorbance.

std_axes: matplotlib.axes._axes.Axes
22    @property
23    def std_axes(cls) -> plt.Axes:
24        r"""Standard axes to plot spectral absorbance."""
25        _, ax = plt.subplots(tight_layout=True)
26        ax.set_xlabel(r"Photon energy / $\mathrm{eV}$")
27        ax.set_ylabel(r"Spectral absorbance")
28        return ax

Standard axes to plot spectral absorbance.

Inherited Members
builtins.type
type
mro
madman.analysis.spectrum.EnergySpectrumMeta
rsv
band_rsv
cell_rsv
class SpectralAbsorbance(madman.analysis.spectrum.EnergySpectrum):
31class SpectralAbsorbance(EnergySpectrum, metaclass=SpectralAbsorbanceMeta):
32    r"""Spectral absorbance.
33
34    Note:
35        `energies`: Photon energies [$\mathrm{eV}$].
36        `values`: Spectral absorbance values.
37    """
38
39    def __init__(
40        self,
41        energies: Sequence[Real, ...],
42        values: Sequence[Real, ...],
43        *,
44        d_energy: Real | None = None,
45    ) -> None:
46        r"""Initialize SpectralAbsorbance object.
47
48        Args:
49            energies: Photon energies [$\mathrm{eV}$].
50            values: Spectral absorbance values.
51            d_energy: Target photon energy increment [$\mathrm{eV}$].
52
53        Raises:
54            ValueError: If there are negative photon energies.
55            ValueError: If there are negative values.
56            ValueError: If there are values greater than 1.
57        """
58        if np.less(energies, 0.0).any():
59            raise ValueError("Negative photon energies!")
60        if np.less(values, 0.0).any():
61            value_min = np.amin(values)
62            if not np.isclose(value_min, 0.0):
63                raise ValueError("Negative values!")
64        if np.greater(values, 1.0).any():
65            value_max = np.amax(values)
66            if not np.isclose(value_max, 1.0):
67                raise ValueError("Values greater than 1!")
68        super().__init__(energies, values, d_energy=d_energy)

Spectral absorbance.

Note:

energies: Photon energies [$\mathrm{eV}$]. values: Spectral absorbance values.

SpectralAbsorbance( energies: collections.abc.Sequence[numbers.Real, ...], values: collections.abc.Sequence[numbers.Real, ...], *, d_energy: numbers.Real | None = None)
39    def __init__(
40        self,
41        energies: Sequence[Real, ...],
42        values: Sequence[Real, ...],
43        *,
44        d_energy: Real | None = None,
45    ) -> None:
46        r"""Initialize SpectralAbsorbance object.
47
48        Args:
49            energies: Photon energies [$\mathrm{eV}$].
50            values: Spectral absorbance values.
51            d_energy: Target photon energy increment [$\mathrm{eV}$].
52
53        Raises:
54            ValueError: If there are negative photon energies.
55            ValueError: If there are negative values.
56            ValueError: If there are values greater than 1.
57        """
58        if np.less(energies, 0.0).any():
59            raise ValueError("Negative photon energies!")
60        if np.less(values, 0.0).any():
61            value_min = np.amin(values)
62            if not np.isclose(value_min, 0.0):
63                raise ValueError("Negative values!")
64        if np.greater(values, 1.0).any():
65            value_max = np.amax(values)
66            if not np.isclose(value_max, 1.0):
67                raise ValueError("Values greater than 1!")
68        super().__init__(energies, values, d_energy=d_energy)

Initialize SpectralAbsorbance object.

Arguments:
  • energies: Photon energies [$\mathrm{eV}$].
  • values: Spectral absorbance values.
  • d_energy: Target photon energy increment [$\mathrm{eV}$].
Raises:
  • ValueError: If there are negative photon energies.
  • ValueError: If there are negative values.
  • ValueError: If there are values greater than 1.
class ResolvedSpectralAbsorbance(madman.analysis.spectrum.PairResolvedEnergySpectrum):
71class ResolvedSpectralAbsorbance(PairResolvedEnergySpectrum):
72    r"""Resolved spectral absorbance.
73
74    Note:
75        `energies`: Photon energies [$\mathrm{eV}$].
76        `rsv_values`: Resolved spectral absorbance values.
77    """

Resolved spectral absorbance.

Note:

energies: Photon energies [$\mathrm{eV}$]. rsv_values: Resolved spectral absorbance values.

class BandResolvedSpectralAbsorbance(madman.analysis.spectrum.BandPairResolvedEnergySpectrum):
80class BandResolvedSpectralAbsorbance(BandPairResolvedEnergySpectrum):
81    r"""Band resolved spectral absorbance.
82
83    Note:
84        `energies`: Photon energies [$\mathrm{eV}$].
85        `rsv_values`: Band resolved spectral absorbance values.
86
87    Note:
88        See `madman.analysis.spectrum.BandResolvedEnergySpectrum` for details.
89    """

Band resolved spectral absorbance.

Note:

energies: Photon energies [$\mathrm{eV}$]. rsv_values: Band resolved spectral absorbance values.

Note:

See madman.analysis.spectrum.BandResolvedEnergySpectrum for details.

class CellResolvedSpectralAbsorbance(madman.analysis.spectrum.CellPairResolvedEnergySpectrum):
 92class CellResolvedSpectralAbsorbance(CellPairResolvedEnergySpectrum):
 93    r"""Cell resolved spectral absorbance.
 94
 95    Note:
 96        `energies`: Photon energies [$\mathrm{eV}$].
 97        `rsv_values`: Cell resolved spectral absorbance values.
 98
 99    Note:
100        See `madman.analysis.spectrum.CellResolvedEnergySpectrum` for details.
101    """

Cell resolved spectral absorbance.

Note:

energies: Photon energies [$\mathrm{eV}$]. rsv_values: Cell resolved spectral absorbance values.

Note:

See madman.analysis.spectrum.CellResolvedEnergySpectrum for details.