Source code for gammapy.time.events

# Licensed under a 3-clause BSD style license - see LICENSE.rst
import numpy as np

__all__ = ["exptest"]


[docs]def exptest(time_delta): """Compute the level of variability for a certain period of time. The level of variability is quantified by ``mr``, as defined in Prahl (1999). For constant rate events, it follows a standard normal distribution, i.e. it can be used directly as the significance of variability. For example usage, see :ref:`time-variability`. Parameters ---------- time_delta : array-like Time differences between consecutive events Returns ------- mr : float Level of variability References ---------- .. [1] Prahl (1999), "A fast unbinned test on event clustering in Poisson processes", `Link <https://ui.adsabs.harvard.edu/abs/1999astro.ph..9399P>`_ """ mean_time = np.mean(time_delta) normalized_time_delta = time_delta / mean_time mask = normalized_time_delta < 1 sum_time = 1 - normalized_time_delta[mask] / 1 sum_time_all = np.sum([sum_time]) m_value = sum_time_all / len(time_delta) # the numbers are from Prahl(1999), derived from simulations term1 = m_value - (1 / 2.71828 - 0.189 / len(time_delta)) term2 = 0.2427 / np.sqrt(len(time_delta)) mr = term1 / term2 return mr