1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
r"""
.. _generalized-gaussian-temporal-model:
Generalized Gaussian temporal model
===================================
This model parametrises a generalized Gaussian time model.
.. math::
F(t) = \exp \left( - 0.5 \cdot \left( \frac{|t - t_{\rm{ref}}|}{t_{\rm{rise}}} \right) ^ {1 / \eta} \right) \text{ for } t < t_{\rm{ref}}
F(t) = \exp \left( - 0.5 \cdot \left( \frac{|t - t_{\rm{ref}}|}{t_{\rm{decay}}} \right) ^ {1 / \eta} \right) \text{ for } t > t_{\rm{ref}}
"""
# %%
# Example plot
# ------------
# Here is an example plot of the model:
from astropy import units as u
from astropy.time import Time
from astropy.units import Quantity
import matplotlib.pyplot as plt
from gammapy.modeling.models import (
GeneralizedGaussianTemporalModel,
Models,
PowerLawSpectralModel,
SkyModel,
)
t_rise = Quantity(0.1, "d")
t_decay = Quantity(1, "d")
eta = Quantity(2 / 3, "")
t_ref = Time("2020-10-01")
time_range = [t_ref - 1 * u.d, t_ref + 1 * u.d]
gen_gaussian_model = GeneralizedGaussianTemporalModel(
t_ref=t_ref.mjd * u.d, t_rise=t_rise, t_decay=t_decay, eta=eta
)
gen_gaussian_model.plot(time_range)
plt.grid(which="both")
# %%
# YAML representation
# -------------------
# Here is an example YAML file using the model:
model = SkyModel(
spectral_model=PowerLawSpectralModel(),
temporal_model=gen_gaussian_model,
name="generalized_gaussian_model",
)
models = Models([model])
print(models.to_yaml())
|