PhaseCurveTemplateTemporalModel¶
-
class
gammapy.modeling.models.
PhaseCurveTemplateTemporalModel
(table, time_0=<Quantity 0.>, phase_0=<Quantity 0.>, f0=<Quantity 0.>, f1=<Quantity 0.>, f2=<Quantity 0.>, filename=None)[source]¶ Bases:
gammapy.modeling.models.temporal.TemplateTemporalModel
Temporal phase curve model.
Phase for a given time is computed as:
\[\phi(t) = \phi_0 + f_0(t-t_0) + (1/2)f_1(t-t_0)^2 + (1/6)f_2(t-t_0)^3\]Strictly periodic sources such as gamma-ray binaries have
f1=0
andf2=0
. Sources like some pulsars where the period spins up or down havef1!=0
and / orf2 !=0
. For a binary,f0
should be calculated as 1/T, where T is the period of the binary in unit ofseconds
.The “phase curve”, i.e. multiplicative flux factor for a given phase is given by a
Table
of nodes(phase, norm)
, using linear interpolation and circular behaviour, wherenorm(phase=0) == norm(phase=1)
.- Parameters
- table
Table
A table of ‘PHASE’ vs ‘NORM’ should be given
- time_0float
The MJD value where phase is considered as 0.
- phase_0float
Phase at the reference MJD
- f0, f1, f2float
Derivatives of the function phi with time of order 1, 2, 3 in units of
s^-1, s^-2 & s^-3
, respectively.
- table
Examples
Create an example phase curve object:
from astropy.table import Table from gammapy.utils.scripts import make_path from gammapy.modeling.models import PhaseCurveTemplateTemporalModel filename = make_path('$GAMMAPY_DATA/tests/phasecurve_LSI_DC.fits') table = Table.read(filename) phase_curve = PhaseCurveTemplateTemporalModel(table, time_0=43366.275, phase_0=0.0, f0=4.367575e-7, f1=0.0, f2=0.0)
Note: In order to reproduce the example you need the tests datasets folder. You may download it with the command
gammapy download datasets --tests --out $GAMMAPY_DATA
Use it to compute a phase and evaluate the phase curve model for a given time:
>>> phase_curve.phase(time=46300.0) 0.7066006737999402 >>> phase_curve.evaluate_norm_at_time(46300) 0.49059393580053845
Attributes Summary
A model parameter.
A model parameter.
A model parameter.
Parameters (
Parameters
)A model parameter.
A model parameter.
Methods Summary
copy
(self)A deep copy.
create
(tag, \*args, \*\*kwargs)Create a model instance.
evaluate_norm_at_phase
(self, phase)evaluate_norm_at_time
(self, time)Evaluate for a given time.
from_dict
(data)phase
(self, time)Evaluate phase for a given time.
read
(path)Read lightcurve model table from FITS file.
sample_time
(self, n_events, t_min, t_max[, …])Sample arrival times of events.
to_dict
(self[, overwrite])Create dict for YAML serilisation
write
(self[, path, overwrite])Attributes Documentation
-
default_parameters
= <gammapy.modeling.parameter.Parameters object>¶
-
f0
¶ A model parameter.
Note that the parameter value has been split into a factor and scale like this:
value = factor x scale
Users should interact with the
value
,quantity
ormin
andmax
properties and consider the fact that there is afactor`
andscale
an implementation detail.That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the
factor
,factor_min
andfactor_max
properties, i.e. the optimiser “sees” the well-scaled problem.
-
f1
¶ A model parameter.
Note that the parameter value has been split into a factor and scale like this:
value = factor x scale
Users should interact with the
value
,quantity
ormin
andmax
properties and consider the fact that there is afactor`
andscale
an implementation detail.That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the
factor
,factor_min
andfactor_max
properties, i.e. the optimiser “sees” the well-scaled problem.
-
f2
¶ A model parameter.
Note that the parameter value has been split into a factor and scale like this:
value = factor x scale
Users should interact with the
value
,quantity
ormin
andmax
properties and consider the fact that there is afactor`
andscale
an implementation detail.That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the
factor
,factor_min
andfactor_max
properties, i.e. the optimiser “sees” the well-scaled problem.
-
parameters
¶ Parameters (
Parameters
)
-
phase_0
¶ A model parameter.
Note that the parameter value has been split into a factor and scale like this:
value = factor x scale
Users should interact with the
value
,quantity
ormin
andmax
properties and consider the fact that there is afactor`
andscale
an implementation detail.That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the
factor
,factor_min
andfactor_max
properties, i.e. the optimiser “sees” the well-scaled problem.
-
tag
= 'PhaseCurveTemplateTemporalModel'¶
-
time_0
¶ A model parameter.
Note that the parameter value has been split into a factor and scale like this:
value = factor x scale
Users should interact with the
value
,quantity
ormin
andmax
properties and consider the fact that there is afactor`
andscale
an implementation detail.That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the
factor
,factor_min
andfactor_max
properties, i.e. the optimiser “sees” the well-scaled problem.
Methods Documentation
-
copy
(self)¶ A deep copy.
-
static
create
(tag, *args, **kwargs)¶ Create a model instance.
Examples
>>> from gammapy.modeling 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_norm_at_time
(self, time)[source]¶ Evaluate for a given time.
- Parameters
- timearray_like
Time since the
reference
time.
- Returns
- normarray_like
-
phase
(self, time)[source]¶ Evaluate phase for a given time.
- Parameters
- timearray_like
- Returns
- phasearray_like
-
classmethod
read
(path)¶ 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_min
Time
Start time of the sampling.
- t_max
Time
Stop time of the sampling.
- t_delta
Quantity
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
- time
Quantity
Array with times of the sampled events.
- time
-
write
(self, path=None, overwrite=False)¶