Note

You are not reading the most up to date version of Gammapy documentation.
Access the latest stable version v1.3 or the list of Gammapy releases.

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_range = [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 = CompoundSpectralModel(pwl, lp, operator.add)
model.plot(energy_range)
plt.grid(which="both")
../../../_images/sphx_glr_plot_compound_001.png

YAML representation

Here is an example YAML file using the model:

model = SkyModel(spectral_model=model, name="compound-model")
models = Models([model])

print(models.to_yaml())

Out:

components:
-   name: compound-model
    type: SkyModel
    spectral:
        model1:
            type: PowerLawSpectralModel
            parameters:
            - {name: index, value: 2.0, unit: '', min: .nan, max: .nan, frozen: false,
                error: 0}
            - {name: amplitude, value: 1.0e-12, unit: cm-2 s-1 TeV-1, min: .nan, max: .nan,
                frozen: false, error: 0}
            - {name: reference, value: 1.0, unit: TeV, min: .nan, max: .nan, frozen: true,
                error: 0}
        model2:
            type: LogParabolaSpectralModel
            parameters:
            - {name: amplitude, value: 1.0e-12, unit: cm-2 s-1 TeV-1, min: .nan, max: .nan,
                frozen: false, error: 0}
            - {name: reference, value: 10.0, unit: TeV, min: .nan, max: .nan, frozen: true,
                error: 0}
            - {name: alpha, value: 2.0, unit: '', min: .nan, max: .nan, frozen: false,
                error: 0}
            - {name: beta, value: 1.0, unit: '', min: .nan, max: .nan, frozen: false,
                error: 0}
        operator: !!python/name:_operator.add ''

Gallery generated by Sphinx-Gallery