Note
Go to the end to download the full example code or to run this example in your browser via Binder
Exponential cutoff power law norm spectral model#
This model parametrises a cutoff power law spectral correction with a norm parameter.
Example plot#
Here is an example plot of the model:
from astropy import units as u
import matplotlib.pyplot as plt
from gammapy.modeling.models import (
ExpCutoffPowerLawNormSpectralModel,
ExpCutoffPowerLawSpectralModel,
Models,
SkyModel,
TemplateSpectralModel,
)
energy_bounds = [0.1, 100] * u.TeV
energy = [0.3, 1, 3, 10, 30] * u.TeV
values = [40, 30, 20, 10, 1] * u.Unit("TeV-1 s-1 cm-2")
template = TemplateSpectralModel(energy, values)
norm = ExpCutoffPowerLawNormSpectralModel(
norm=2,
reference=1 * u.TeV,
)
template.plot(energy_bounds=energy_bounds, label="Template model")
ecpl_norm = template * norm
ecpl_norm.plot(
energy_bounds, label="Template model with ExpCutoffPowerLaw norm correction"
)
plt.legend(loc="best")
plt.grid(which="both")
/home/runner/work/gammapy-docs/gammapy-docs/gammapy/.tox/build_docs/lib/python3.9/site-packages/gammapy/modeling/models/spectral.py:1367: GammapyDeprecationWarning: The default index value changed from 1.5 to 0 since v1.2
warnings.warn(
YAML representation#
Here is an example YAML file using the model:
components:
- name: exp-cutoff-power-law-norm-model
type: SkyModel
spectral:
type: CompoundSpectralModel
model1:
type: TemplateSpectralModel
parameters: []
energy:
data:
- 0.3
- 1.0
- 3.0
- 10.0
- 30.0
unit: TeV
values:
data:
- 40.0
- 30.0
- 20.0
- 10.0
- 1.0
unit: 1 / (cm2 s TeV)
model2:
type: ExpCutoffPowerLawNormSpectralModel
parameters:
- name: index
value: 1.5
- name: norm
value: 2.0
- name: reference
value: 1.0
unit: TeV
- name: lambda_
value: 0.1
unit: TeV-1
- name: alpha
value: 1.0
operator: mul
metadata:
creator: Gammapy 1.2
date: '2024-02-29T10:21:53.609077'
origin: null