# time - Time analysis¶

## Introduction¶

gammapy.time contains methods for time-based analysis, e.g. from AGN, binaries or pulsars. There is also gammapy.utils.time, which contains low-level helper functions for time conversions e.g. following the

## Getting Started¶

### Lightcurve¶

This section introduces the LightCurve class.

Read a table that contains a lightcurve:

>>> from astropy.table import Table
>>> url = 'https://github.com/gammapy/gamma-cat/raw/master/input/data/2006/2006A%2526A...460..743A/tev-000119-lc.ecsv'


Create a LightCurve object:

>>> from gammapy.time import LightCurve
>>> lc = LightCurve(table)


LightCurve is a simple container that stores the LC table, and provices a few conveniences, like creating time objects and a quick-look plot:

>>> lc.time[:2].iso
['2004-05-23 01:47:08.160' '2004-05-23 02:17:31.200']
>>> lc.plot()


### Variability test¶

The exptest function can be used to compute the significance of variability (compared to the null hypothesis of constant rate) for a list of event time differences.

Here’s an example how to use the random_times helper function to simulate a TimeDelta array for a given constant rate and use exptest to assess the level of variability (0.11 sigma in this case, not variable):

>>> from astropy.units import Quantity
>>> from gammapy.time import random_times, exptest
>>> rate = Quantity(10, 'Hz')
>>> time_delta = random_times(size=100, rate=rate, return_diff=True, random_state=0)
>>> mr = exptest(time_delta)
>>> print(mr)
0.11395763079


See examples/example_exptest.py for a longer example.

TODO: apply this to the 3FHL events and check which sources are variable as a nice example.

from gammapy.data import EventList
from gammapy.time import exptest
# TODO: cone select events for 3FHL catalog sources, compute mr for each and print 10 most variable sources


## Other codes¶

Where possible we shouldn’t duplicate timing analysis functionality that’s already available elsewhere. In some cases it’s enough to refer gamma-ray astronomers to other packages, sometimes a convenience wrapper for our data formats or units might make sense.

## Reference/API¶

### gammapy.time Package¶

Time analysis.

#### Functions¶

 exptest(time_delta) Compute the level of variability for a certain period of time. plot_periodogram(time, flux, periods, power) Plot a light curve and its periodogram. random_times(size, rate[, dead_time, …]) Make random times assuming a Poisson process. robust_periodogram(time, flux[, flux_err, …]) Compute a light curve’s period.

#### Classes¶

 LightCurve(table) Lightcurve container. LightCurveEstimator(spec_extract) Light curve estimator.

### gammapy.time.models Module¶

#### Classes¶

 PhaseCurveTableModel(table, time_0, phase_0, …) Temporal phase curve model. LightCurveTableModel(table) Temporal light curve model.