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 """
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
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.
Inherited Members
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.
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.BandResolvedEnergySpectrumfor details.
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.CellResolvedEnergySpectrumfor details.