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.

Smooth Broken Power Law Spectral Model

This model parametrises a smooth broken power law spectrum.

It is defined by the following equation:

\[\phi(E) = \phi_0 \cdot \left( \frac{E}{E_0} \right)^{-\Gamma1}\left(1 + \frac{E}{E_{break}}^{\frac{\Gamma2-\Gamma1}{\beta}} \right)^{-\beta}\]

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 Models, SkyModel, SmoothBrokenPowerLawSpectralModel

energy_range = [0.1, 100] * u.TeV
model = SmoothBrokenPowerLawSpectralModel(
    index1=1.5,
    index2=2.5,
    amplitude="1e-12 TeV-1 cm-2 s-1",
    ebreak="1 TeV",
    reference="1 TeV",
    beta=1,
)
model.plot(energy_range)
plt.grid(which="both")
../../../_images/sphx_glr_plot_smooth_broken_powerlaw_001.png

YAML representation

Here is an example YAML file using the model:

model = SkyModel(spectral_model=model, name="smooth-broken-power-law-model")
models = Models([model])

print(models.to_yaml())

Out:

components:
-   name: smooth-broken-power-law-model
    type: SkyModel
    spectral:
        type: SmoothBrokenPowerLawSpectralModel
        parameters:
        - {name: index1, value: 1.5, unit: '', min: .nan, max: .nan, frozen: false,
            error: 0}
        - {name: index2, value: 2.5, 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: ebreak, value: 1.0, unit: TeV, min: .nan, max: .nan, frozen: false,
            error: 0}
        - {name: reference, value: 1.0, unit: TeV, min: .nan, max: .nan, frozen: true,
            error: 0}
        - {name: beta, value: 1.0, unit: '', min: .nan, max: .nan, frozen: true, error: 0}

Gallery generated by Sphinx-Gallery