EoN.get_time_shift

EoN.get_time_shift(times, L, threshold)[source]

Identifies the first time at which list/array L crosses a threshold. Useful for shifting times.

Arguments:
times list or numpy array (ordered)
the times we have observations
L a list or numpy array
order of L corresponds to times
threshold number
the threshold value
Returns:
t number
the first time at which L reaches or exceeds threshold.
SAMPLE USE:
import networkx as nx
import EoN
import numpy as np
import matplotlib.pyplot as plt

""" in this example we will run 20 stochastic simulations.
    We plot the unshifted curves (grey) and the curves shifted
    so that t=0 when 1% have been infected (I+R = 0.01N) (red)
"""
plt.clf() # just clearing any previous plotting.

N=100000
kave = 10.
G = nx.fast_gnp_random_graph(N,kave/(N-1.))
tau = 0.2
gamma = 1.
report_times = np.linspace(0,5,101)
Ssum = np.zeros(len(report_times))
Isum = np.zeros(len(report_times))
Rsum = np.zeros(len(report_times))
iterations = 20
for counter in range(iterations):
    R=[0]
    while R[-1]<1000: #if an epidemic doesn't happen, repeat
        t, S, I, R = EoN.fast_SIR(G, tau, gamma)
        print R[-1]
    plt.plot(t, I, linewidth = 1, color = 'gray', alpha=0.4)
    tshift = EoN.get_time_shift(t, I+R, 0.01*N)
    plt.plot(t-tshift, I, color = 'red', linewidth = 1, alpha = 0.4)
plt.savefig("timeshift_demonstration.pdf")