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")