LightCurveTemplateTemporalModel

class gammapy.modeling.models.LightCurveTemplateTemporalModel(table, filename=None)[source]

Bases: gammapy.modeling.models.TemporalModel

Temporal light curve model.

The lightcurve is given as a table with columns time and norm.

The norm is supposed to be a unit-less multiplicative factor in the model, to be multiplied with a spectral model.

The model does linear interpolation for times between the given (time, norm) values.

The implementation currently uses scipy.interpolate.InterpolatedUnivariateSpline, using degree k=1 to get linear interpolation. This class also contains an integral method, making the computation of mean fluxes for a given time interval a one-liner.

Parameters
tableTable

A table with ‘TIME’ vs ‘NORM’

Examples

Read an example light curve object:

>>> from gammapy.modeling.models import LightCurveTemplateTemporalModel
>>> path = '$GAMMAPY_DATA/tests/models/light_curve/lightcrv_PKSB1222+216.fits'
>>> light_curve = LightCurveTemplateTemporalModel.read(path)

Show basic information about the lightcurve:

>>> print(light_curve)
LightCurve model summary:
Start time: 59000.5 MJD
End time: 61862.5 MJD
Norm min: 0.01551196351647377
Norm max: 1.0

Compute norm at a given time:

>>> light_curve.evaluate(46300)
0.49059393580053845

Compute mean norm in a given time interval:

>>> light_curve.mean_norm_in_time_interval(46300, 46301)

Attributes Summary

covariance

default_parameters

parameters

Parameters (Parameters)

tag

Methods Summary

__call__(self, time)

Evaluate model

copy(self)

A deep copy.

create(tag, \*args, \*\*kwargs)

Create a model instance.

evaluate(self, time[, ext])

Evaluate for a given time.

from_dict(data)

from_parameters(parameters, \*\*kwargs)

Create model from parameter list

integral(self, t_min, t_max)

Evaluate the integrated flux within the given time intervals

read(path)

Read lightcurve model table from FITS file.

sample_time(self, n_events, t_min, t_max[, …])

Sample arrival times of events.

time_sum(t_min, t_max)

Total time between t_min and t_max

to_dict(self[, overwrite])

Create dict for YAML serilisation

write(self[, path, overwrite])

Attributes Documentation

covariance
default_parameters = <gammapy.modeling.parameter.Parameters object>
parameters

Parameters (Parameters)

tag = 'LightCurveTemplateTemporalModel'

Methods Documentation

__call__(self, time)

Evaluate model

Parameters
timeTime

Time object

copy(self)

A deep copy.

static create(tag, *args, **kwargs)

Create a model instance.

Examples

>>> from gammapy.modeling.models import Model
>>> spectral_model = Model.create("PowerLaw2SpectralModel", amplitude="1e-10 cm-2 s-1", index=3)
>>> type(spectral_model)
gammapy.modeling.models.spectral.PowerLaw2SpectralModel
evaluate(self, time, ext=0)[source]

Evaluate for a given time.

Parameters
timearray_like

Time since the reference time.

extint or str, optional, default: 0

Parameter passed to ~scipy.interpolate.InterpolatedUnivariateSpline Controls the extrapolation mode for GTIs outside the range 0 or “extrapolate”, return the extrapolated value. 1 or “zeros”, return 0 2 or “raise”, raise a ValueError 3 or “const”, return the boundary value.

Returns
normarray_like

Norm at the given times.

classmethod from_dict(data)[source]
classmethod from_parameters(parameters, **kwargs)

Create model from parameter list

Parameters
parametersParameters

Parameters for init

Returns
modelModel

Model instance

integral(self, t_min, t_max)[source]

Evaluate the integrated flux within the given time intervals

Parameters
t_min: `~astropy.time.Time`

Start times of observation

t_max: `~astropy.time.Time`

Stop times of observation

Returns
——-
norm: The model integrated flux
classmethod read(path)[source]

Read lightcurve model table from FITS file.

TODO: This doesn’t read the XML part of the model yet.

sample_time(self, n_events, t_min, t_max, t_delta='1 s', random_state=0)[source]

Sample arrival times of events.

Parameters
n_eventsint

Number of events to sample.

t_minTime

Start time of the sampling.

t_maxTime

Stop time of the sampling.

t_deltaQuantity

Time step used for sampling of the temporal model.

random_state{int, ‘random-seed’, ‘global-rng’, RandomState}

Defines random number generator initialisation. Passed to get_random_state.

Returns
timeQuantity

Array with times of the sampled events.

static time_sum(t_min, t_max)

Total time between t_min and t_max

Parameters
t_min, t_max: `~astropy.time.Time`

Lower and upper bound of integration range

Returns
time_sumTimeDelta

Summed time in the intervals.

to_dict(self, overwrite=False)[source]

Create dict for YAML serilisation

write(self, path=None, overwrite=False)[source]