SpectralModel¶
-
class
gammapy.spectrum.models.SpectralModel[source]¶ Bases:
objectSpectral model base class.
Derived classes should store their parameters as
ParameterList, see for example return pardictPowerLaw.Methods Summary
__call__(energy)Call evaluate method of derived classes copy()energy_flux(emin, emax, **kwargs)Compute energy flux in given energy range. energy_flux_error(emin, emax, **kwargs)Compute energy flux in given energy range with error propagation. evaluate_error(energy)Evaluate spectral model with error propagation. from_dict(val)Serialize from dict integral(emin, emax, **kwargs)Integrate spectral model numerically. integral_error(emin, emax, **kwargs)Integrate spectral model numerically with error propagation. inverse(value[, emin, emax])Return energy for a given function value of the spectral model. plot(energy_range[, ax, energy_unit, ...])Plot SpectralModelplot_error(energy_range[, ax, energy_unit, ...])Plot error SpectralModelspectral_index(energy[, epsilon])Compute spectral index at given energy using a local powerlaw approximation. to_dict()Serialize to dict to_sherpa([name])Convert to Sherpa model Methods Documentation
-
energy_flux(emin, emax, **kwargs)[source]¶ Compute energy flux in given energy range.
\[G(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}}E \phi(E)dE\]Parameters: emin, emax :
QuantityLower and upper bound of integration range.
**kwargs : dict
Keyword arguments passed to
integrate_spectrum
-
energy_flux_error(emin, emax, **kwargs)[source]¶ Compute energy flux in given energy range with error propagation.
\[G(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}}E \phi(E)dE\]Parameters: emin, emax :
QuantityLower bound of integration range.
**kwargs : dict
Keyword arguments passed to
integrate_spectrumReturns: energy_flux, energy_flux_error : tuple of
QuantityTuple of energy flux and energy flux error.
-
evaluate_error(energy)[source]¶ Evaluate spectral model with error propagation.
Parameters: energy :
quantityEnergy at which to evaluate.
Returns: flux, flux_error : tuple of
QuantityTuple of flux and flux error.
-
integral(emin, emax, **kwargs)[source]¶ Integrate spectral model numerically.
\[F(E_{min}, E_{max}) = \int_{E_{min}}^{E_{max}}\phi(E)dE\]kwargs are forwared to
integrate_spectrum().If array input for
eminandemaxis given you have to setintervals=Trueif you want the integral in each energy bin.Parameters: emin, emax :
QuantityLower and upper bound of integration range.
**kwargs : dict
Keyword arguments passed to
integrate_spectrum
-
integral_error(emin, emax, **kwargs)[source]¶ Integrate spectral model numerically with error propagation.
Parameters: emin, emax :
QuantityLower adn upper bound of integration range.
**kwargs : dict
Keyword arguments passed to
integrate_spectrumReturns: integral, integral_error : tuple of
QuantityTuple of integral flux and integral flux error.
-
inverse(value, emin=<Quantity 0.1 TeV>, emax=<Quantity 100.0 TeV>)[source]¶ Return energy for a given function value of the spectral model.
Uses numerical root finding algorithm.
Parameters: value :
QuantityFunction value of the spectral model.
emin :
QuantityLower bracket value in case solution is not unique.
emax :
QuantityUpper bracket value in case solution is not unique.
-
plot(energy_range, ax=None, energy_unit='TeV', flux_unit='cm-2 s-1 TeV-1', energy_power=0, n_points=100, **kwargs)[source]¶ Plot
SpectralModelkwargs are forwarded to
errorbar()Parameters: ax :
Axes, optionalAxis
energy_range :
QuantityPlot range
energy_unit : str,
Unit, optionalUnit of the energy axis
flux_unit : str,
Unit, optionalUnit of the flux axis
energy_power : int, optional
Power of energy to multiply flux axis with
n_points : int, optional
Number of evaluation nodes
Returns: ax :
Axes, optionalAxis
-
plot_error(energy_range, ax=None, energy_unit='TeV', flux_unit='cm-2 s-1 TeV-1', energy_power=0, n_points=100, **kwargs)[source]¶ Plot error
SpectralModelkwargs are forwarded to
fill_between()Parameters: ax :
Axes, optionalAxis
energy_range :
QuantityPlot range
energy_unit : str,
Unit, optionalUnit of the energy axis
flux_unit : str,
Unit, optionalUnit of the flux axis
energy_power : int, optional
Power of energy to multiply flux axis with
n_points : int, optional
Number of evaluation nodes
Returns: ax :
Axes, optionalAxis
-
spectral_index(energy, epsilon=1e-05)[source]¶ Compute spectral index at given energy using a local powerlaw approximation.
Parameters: energy :
QuantityEnergy at which to estimate the index
epsilon : float
Fractional energy increment to use for determining the spectral index.
Returns: index : float
Estimated spectral index.
-