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)
LightCurveTemplateTemporalModel 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(60000)
array(0.01551196)

Compute mean norm in a given time interval:

>>> from astropy.time import Time
>>> times = Time([60000, 61000], format='mjd')
>>> light_curve.integral(times[0], times[1])
<Quantity 0.01721725>

Attributes Summary

covariance

default_parameters

frozen

Frozen status of a model, True if all parameters are frozen

parameters

Parameters (Parameters)

tag

type

Methods Summary

__call__(time)

Evaluate model

copy()

A deep copy.

evaluate(time[, ext])

Evaluate for a given time.

freeze()

Freeze all parameters

from_dict(data)

from_parameters(parameters, **kwargs)

Create model from parameter list

integral(t_min, t_max)

Evaluate the integrated flux within the given time intervals

plot(time_range[, ax])

Plot Temporal Model.

read(path)

Read lightcurve model table from FITS file.

reassign(datasets_names, new_datasets_names)

Reassign a model from one dataset to another

sample_time(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([full_output])

Create dict for YAML serialisation

unfreeze()

Restore parameters frozen status to default

write([path, overwrite])

Attributes Documentation

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

Frozen status of a model, True if all parameters are frozen

parameters

Parameters (Parameters)

tag = ['LightCurveTemplateTemporalModel', 'template']
type

Methods Documentation

__call__(time)

Evaluate model

Parameters
timeTime

Time object

copy()

A deep copy.

evaluate(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.

freeze()

Freeze all parameters

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(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
plot(time_range, ax=None, **kwargs)

Plot Temporal Model.

Parameters
time_rangeTime

times to plot the model

axAxes, optional

Axis to plot on

**kwargsdict

Keywords forwarded to errorbar

Returns
axAxes, optional

axis

classmethod read(path)[source]

Read lightcurve model table from FITS file.

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

reassign(datasets_names, new_datasets_names)

Reassign a model from one dataset to another

Parameters
datasets_namesstr or list

Name of the datasets where the model is currently defined

new_datasets_namesstr or list

Name of the datasets where the model should be defined instead. If multiple names are given the two list must have the save length, as the reassignment is element-wise.

Returns
modelModel

Reassigned model.

sample_time(n_events, t_min, t_max, t_delta='1 s', random_state=0)

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(full_output=False)[source]

Create dict for YAML serialisation

unfreeze()

Restore parameters frozen status to default

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