Note
Go to the end to download the full example code or to run this example in your browser via Binder
Compound spectral model#
This model is formed by the arithmetic combination of any two other spectral models.
Example plot#
Here is an example plot of the model:
import operator
from astropy import units as u
import matplotlib.pyplot as plt
from gammapy.modeling.models import (
CompoundSpectralModel,
LogParabolaSpectralModel,
Models,
PowerLawSpectralModel,
SkyModel,
)
energy_bounds = [0.1, 100] * u.TeV
pwl = PowerLawSpectralModel(
index=2.0, amplitude="1e-12 cm-2 s-1 TeV-1", reference="1 TeV"
)
lp = LogParabolaSpectralModel(
amplitude="1e-12 cm-2 s-1 TeV-1", reference="10 TeV", alpha=2.0, beta=1.0
)
model_add = CompoundSpectralModel(pwl, lp, operator.add)
model_add.plot(energy_bounds)
plt.grid(which="both")
![plot compound](../../../_images/sphx_glr_plot_compound_001.png)
YAML representation#
Here is an example YAML file using the model:
components:
- name: add-compound-model
type: SkyModel
spectral:
type: CompoundSpectralModel
model1:
type: PowerLawSpectralModel
parameters:
- name: index
value: 2.0
- name: amplitude
value: 1.0e-12
unit: cm-2 s-1 TeV-1
- name: reference
value: 1.0
unit: TeV
model2:
type: LogParabolaSpectralModel
parameters:
- name: amplitude
value: 1.0e-12
unit: cm-2 s-1 TeV-1
- name: reference
value: 10.0
unit: TeV
- name: alpha
value: 2.0
- name: beta
value: 1.0
operator: add