Spectrum estimation and modeling (gammapy.spectrum
)¶
Introduction¶
gammapy.spectrum
holds functions and classes related to 1D region based
spectral analysis. This includes also simulation tools.
The basic of 1D spectral analysis are explained in this talk. A good reference for the forward-folding on-off likelihood fitting methods is Section 7.5 “Spectra and Light Curves” in [Naurois2012], in publications usually the reference [Piron2001] is used. A standard reference for the unfolding method is [Albert2007].
Getting Started¶
The following code snippet demonstrates how to load an observation stored in OGIP format and fit a spectral model.
import astropy.units as u
from gammapy.datasets import gammapy_extra
from gammapy.spectrum import SpectrumObservation, SpectrumFit, models
filename = '$GAMMAPY_EXTRA/datasets/hess-crab4_pha/pha_obs23592.fits'
obs = SpectrumObservation.read(filename)
model = models.PowerLaw(
index=2 * u.Unit(''),
amplitude=1e-12*u.Unit('cm-2 s-1 TeV-1'),
reference=1*u.TeV,
)
fit = SpectrumFit(obs_list=obs, model=model)
fit.fit()
fit.est_errors()
print(fit.result[0])
It will print the following output to the console:
Fit result info
---------------
Model: PowerLaw
ParameterList
Parameter(name='index', value=2.1473880540790522, unit=Unit(dimensionless), min=0, max=None, frozen=False)
Parameter(name='amplitude', value=2.7914083679020973e-11, unit=Unit("1 / (cm2 s TeV)"), min=0, max=None, frozen=False)
Parameter(name='reference', value=1.0, unit=Unit("TeV"), min=None, max=None, frozen=True)
Covariance: [[ 6.89132245e-03 1.12566759e-13 0.00000000e+00]
[ 1.12566759e-13 7.26865610e-24 0.00000000e+00]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
Statistic: 46.051 (wstat)
Fit Range: [ 5.99484250e+08 1.00000000e+11] keV
Using gammapy.spectrum
¶
For more advanced use cases please go to the tutorial notebooks:
- spectrum_simulation.html - simulate and fit 1D spectra using pre-defined or a user-defined model.
- spectrum_analysis.html - spectral analysis starting from event lists and field-of-view IRFs.
The following pages describe gammapy.spectrum
in more detail:
Reference/API¶
gammapy.spectrum Package¶
Spectrum estimation and modeling methods (1-dimensional, with an energy axis).
Functions¶
cosmic_ray_flux (energy[, particle]) |
Cosmic ray flux at Earth. |
diffuse_gamma_ray_flux (energy[, component]) |
Diffuse gamma ray flux. |
integrate_spectrum (func, xmin, xmax[, …]) |
Integrate 1d function using the log-log trapezoidal rule. |
Classes¶
CountsPredictor (model[, aeff, edisp, …]) |
Calculate number of predicted counts (npred ). |
CountsSpectrum (energy_lo, energy_hi[, data, …]) |
Generic counts spectrum. |
CrabSpectrum ([reference]) |
Crab nebula spectral model. |
FluxPointEstimator (obs, groups, model) |
Flux point estimator. |
FluxPointFitter ([stat, optimizer, …]) |
Fit a set of flux points with a parametric model. |
FluxPoints (table) |
Flux points container. |
LogEnergyAxis (energy[, mode]) |
Log energy axis. |
PHACountsSpectrum (energy_lo, energy_hi[, …]) |
Counts spectrum corresponding to OGIP PHA format. |
PHACountsSpectrumList |
List of PHACountsSpectrum objects. |
SpectrumEnergyGroup (energy_group_idx, …) |
Spectrum energy group. |
SpectrumEnergyGroupMaker (obs) |
Energy bin groups for spectral analysis. |
SpectrumEnergyGroups ([initlist]) |
List of SpectrumEnergyGroup objects. |
SpectrumExtraction (obs_list, bkg_estimate[, …]) |
Creating input data to 1D spectrum fitting. |
SpectrumFit (obs_list, model[, stat, …]) |
Orchestrate a 1D counts spectrum fit. |
SpectrumFitResult (model[, fit_range, …]) |
Class representing the result of a spectral fit |
SpectrumObservation (on_vector[, aeff, …]) |
1D spectral analysis storage class. |
SpectrumObservationList ([initlist]) |
List of SpectrumObservation objects. |
SpectrumObservationStacker (obs_list) |
Stack observations in a SpectrumObservationList . |
SpectrumResult (model, points) |
Class holding all results of a spectral analysis |
SpectrumSimulation (livetime, source_model, aeff) |
Simulate SpectrumObservation . |
SpectrumStats (**kwargs) |
Spectrum stats. |
gammapy.spectrum.models Module¶
Spectral models for Gammapy.
Classes¶
SpectralModel |
Spectral model base class. |
PowerLaw ([index, amplitude, reference]) |
Spectral power-law model. |
PowerLaw2 ([amplitude, index, emin, emax]) |
Spectral power-law model with integral as amplitude parameter. |
ExponentialCutoffPowerLaw ([index, …]) |
Spectral exponential cutoff power-law model. |
ExponentialCutoffPowerLaw3FGL ([index, …]) |
Spectral exponential cutoff power-law model used for 3FGL. |
PLSuperExpCutoff3FGL ([index_1, index_2, …]) |
Spectral super exponential cutoff power-law model used for 3FGL. |
LogParabola ([amplitude, reference, alpha, beta]) |
Spectral log parabola model. |
TableModel (energy, values[, scale, scale_logy]) |
A model generated from a table of energy and value arrays. |
AbsorbedSpectralModel (spectral_model, …[, …]) |
Spectral model with EBL absorption. |
Absorption (energy_lo, energy_hi, param_lo, …) |
Gamma-ray absorption models. |