TemplatePhaseCurveTemporalModel#

class gammapy.modeling.models.TemplatePhaseCurveTemporalModel(table, filename=None, **kwargs)[source]#

Bases: gammapy.modeling.models.temporal.TemporalModel

Temporal phase curve model.

A timing solution is used to compute the phase corresponding to time and a template phase curve is used to determine the associated norm.

The phasecurve is given as a table with columns phase 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 (phase, 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 ‘PHASE’ vs ‘NORM’

filenamestr

The name of the file containing the phase curve

t_refQuantity

The reference time in mjd

phi_refQuantity

The phase at reference time. Default is 0.

f0Quantity

The frequency at t_ref in s-1

f1Quantity

The frequency derivative at t_ref in s-2. Default is 0 s-2.

f2Quantity

The frequency second derivative at t_ref in s-3. Default is 0 s-3.

Attributes Summary

covariance

default_parameters

f0

A model parameter.

f1

A model parameter.

f2

A model parameter.

frozen

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

is_energy_dependent

parameters

Parameters (Parameters)

phi_ref

A model parameter.

reference_time

Reference time in mjd

t_ref

A model parameter.

tag

type

Methods Summary

__call__(time[, energy])

Evaluate model

copy(**kwargs)

A deep copy.

evaluate(time, t_ref, phi_ref, f0, f1, f2)

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, n_points])

Plot Temporal Model.

plot_phasogram([ax, n_points])

Plot phasogram of the phase model.

read(path[, t_ref, phi_ref, f0, f1, f2])

Read phasecurve 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>#
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 or min and max properties and consider the fact that there is a factor` and scale 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 and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

valuefloat or Quantity

Value

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

errorfloat

Parameter error

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all of the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

is_normbool

Whether the parameter represents the flux norm of the model.

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 or min and max properties and consider the fact that there is a factor` and scale 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 and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

valuefloat or Quantity

Value

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

errorfloat

Parameter error

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all of the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

is_normbool

Whether the parameter represents the flux norm of the model.

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 or min and max properties and consider the fact that there is a factor` and scale 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 and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

valuefloat or Quantity

Value

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

errorfloat

Parameter error

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all of the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

is_normbool

Whether the parameter represents the flux norm of the model.

frozen#

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

is_energy_dependent#
parameters#

Parameters (Parameters)

phi_ref#

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 or min and max properties and consider the fact that there is a factor` and scale 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 and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

valuefloat or Quantity

Value

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

errorfloat

Parameter error

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all of the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

is_normbool

Whether the parameter represents the flux norm of the model.

reference_time#

Reference time in mjd

t_ref#

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 or min and max properties and consider the fact that there is a factor` and scale 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 and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters
namestr

Name

valuefloat or Quantity

Value

scalefloat, optional

Scale (sometimes used in fitting)

unitUnit or str, optional

Unit

minfloat, optional

Minimum (sometimes used in fitting)

maxfloat, optional

Maximum (sometimes used in fitting)

frozenbool, optional

Frozen? (used in fitting)

errorfloat

Parameter error

scan_minfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_maxfloat

Minimum value for the parameter scan. Overwrites scan_n_sigma.

scan_n_values: int

Number of values to be used for the parameter scan.

scan_n_sigmaint

Number of sigmas to scan.

scan_values: `numpy.array`

Scan values. Overwrites all of the scan keywords before.

scale_method{‘scale10’, ‘factor1’, None}

Method used to set factor and scale

interp{“lin”, “sqrt”, “log”}

Parameter scaling to use for the scan.

is_normbool

Whether the parameter represents the flux norm of the model.

tag = ['TemplatePhaseCurveTemporalModel', 'template-phase']#
type#

Methods Documentation

__call__(time, energy=None)#

Evaluate model

Parameters
timeTime

Time object

energyQuantity

Energy (optional)

Returns
valuesQuantity

Model values

copy(**kwargs)#

A deep copy.

evaluate(time, t_ref, phi_ref, f0, f1, f2)[source]#
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, n_points=100, **kwargs)#

Plot Temporal Model.

Parameters
time_rangeTime

times to plot the model

axAxes, optional

Axis to plot on

n_pointsint

Number of bins to plot model

**kwargsdict

Keywords forwarded to errorbar

Returns
axAxes, optional

axis

plot_phasogram(ax=None, n_points=100, **kwargs)[source]#

Plot phasogram of the phase model.

Parameters
axAxes, optional

Axis to plot on

n_pointsint

Number of bins to plot model

**kwargsdict

Keywords forwarded to errorbar

Returns
axAxes, optional

axis

classmethod read(path, t_ref=<Quantity 48442.5 d>, phi_ref=0, f0=<Quantity 29.946923 1 / s>, f1=<Quantity 0. 1 / s2>, f2=<Quantity 0. 1 / s3>)[source]#

Read phasecurve model table from FITS file.

Beware : this does not read parameters. They will be set to defaults.

Parameters
pathstr or Path

filename with path

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)[source]#

Sample arrival times of events.

To fully cover the phase range, t_delta is the minimum between the input and product of the period at 0.5*(t_min + t_max) and the table bin size.

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_maxTime

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]#