示例#1
0
def speed(R0):
    strdates = 'Days (Hub +Jan1)'

    csse = CSSECovid()
    deH, coH, reH, daH = csse.hubei()

    pop = 6e7
    nSteps = 500
    gamma = 0.16
    beta = gamma * R0

    epsilon2 = 1
    cfr2 = 0.03
    delay_model2 = 0

    system2 = sircd.SIRCD(susceptibles=pop,
                          infectious=1,
                          contact_rate=beta,
                          average_infection_period=1 / gamma,
                          epsilon=epsilon2,
                          delta=cfr2,
                          nSteps=nSteps,
                          t0=delay_model2)
    system2.evolveSystem()
    system2.plot()
    t = 'R0=%g\nSymptomatic/asymptomatic = %g\n' % (system2.R0[0], epsilon2)
    plt.title(t)
    plt.ylim(10, )
    plt.xlim(0, )

    #    plt.plot(daH, deH, '.-', color='C4', label='deaths Hubei')
    #    plt.plot(daH, coH, '.-', color='C3', label='confirmed Hubei')
    plt.legend()

    return system2
示例#2
0
def plotEuropeDeath():

    csse = CSSECovid()
    deH, coH, daH = csse.hubei()
    deI, coI, daI = csse.italy()
    deF, coF, daF = csse.france()
    deN, coN, daN = csse.netherlands()
    deE, coE, daE = csse.spain()
    deU, coU, daU = csse.uk()
    deG, coG, daG = csse.germany()
    deK, c*K, daK = csse.south_korea()
    deS, coS, daS = csse.sweden()
    deUs, coUs, daUs = csse.usa()

    pop = 6e7
    nSteps = 100
    cfr = 0.03
    delayModel = -1
    beta0 = 0.481
    gamma0 = 0.16

    system3 = sircd.SIRCD(susceptibles=pop,
                          infectious=1,
                          contact_rate=beta0,
                          average_infection_period=1 / gamma0,
                          epsilon=0.5,
                          delta=cfr,
                          nSteps=nSteps,
                          t0=delayModel)
    system3.evolveSystem()
    system3.plot(susceptibles=False,
                 infectious=False,
                 recovered=False,
                 confirmed=False,
                 deaths=False)

    plt.plot(daH, deH, '.-', color='C8', label='deaths Hubei')
    plt.plot(daI,
             deI,
             '.-',
             linewidth=2,
             markersize=12,
             color='C4',
             label='deaths Italy')
    plt.plot(daF, deF, '.-', color='C0', label='deaths France')
    plt.plot(daE, deE, '.-', color='C3', label='deaths Spain')
    plt.plot(daN, deN, '.-', color='C1', label='deaths Netherlands')
    plt.plot(daU, deU, '.-', color='C2', label='deaths UK')
    plt.plot(daG, deG, '.-', color='C7', label='deaths Germany')
    plt.plot(daK, deK, '.-', color='C6', label='deaths South Korea')
    plt.plot(daS, deS, '.-', color='C9', label='deaths Sweden')
    plt.plot(daUs, deUs, '.-', color='C5', label='deaths USA')
    plt.ylim(10, 1e6)
    plt.xlim(10, 80)
    plt.xlabel(csse.string_dates())
    plt.title('')
    plt.plot([], [], ' ', label=dataAtToday())
    plt.legend()
示例#3
0
def plotForecast():
    csse = CSSECovid()
    deH, coH, daH = csse.hubei()
    deI, coI, daI = csse.italy()

    pop = 6e7
    nSteps = 100
    epsilon = 0.75
    cfr = 0.03
    delayModel = -1
    beta0 = 0.48
    gamma0 = 0.16

    beta2 = np.zeros(nSteps)
    tInt2 = 31 - delayModel
    beta2[:tInt2] = beta0
    beta2[tInt2:] = 0.8 * gamma0
    system3 = sircd.SIRCD(susceptibles=pop,
                          infectious=1,
                          contact_rate=beta2,
                          average_infection_period=1 / gamma0,
                          epsilon=epsilon,
                          delta=cfr,
                          nSteps=nSteps,
                          t0=delayModel)
    system3.evolveSystem()
    system3.plot(susceptibles=False,
                 infectious=False,
                 recovered=False,
                 confirmed=False,
                 deaths=False)
    plt.plot(system3.timeSeries.timeVector,
             system3.timeSeries.confirmed,
             color='C7',
             linestyle='dotted',
             label='Confirmed eps=%g' % system3._epsilon[0])
    plt.plot(system3.timeSeries.timeVector,
             system3.timeSeries.deaths,
             color='C7',
             linestyle='dashed',
             label='Deaths delta=%g' % system3._delta[0])

    plt.plot(daH, deH, '.-', color='C8', label='deaths Hubei')
    plt.plot(daI,
             deI,
             '.-',
             linewidth=2,
             markersize=12,
             color='C4',
             label='deaths Italy')
    plt.plot(daH, coH, '.-', color='C8', label='confirmed Hubei')
    plt.plot(daI, coI, '.-', color='C4', label='confirmed Italy')
    plt.ylim(1, 1e5)
    plt.xlim(0, 70)
    plt.xlabel(csse.string_dates())
    plt.legend()
示例#4
0
def plotFB():
    strdates = 'Days (Hub +Jan1, I +Feb6)'

    csse = CSSECovid()
    deH, coH, daH = csse.hubei()
    deI, coI, daI = csse.italy()

    pop = 6e7
    nSteps = 100
    epsilon = 0.75
    cfr = 0.03
    delayModel = -1
    beta0 = 0.48
    gamma0 = 0.16

    beta = np.zeros(nSteps)
    tInt2 = 31 - delayModel
    beta[:tInt2] = beta0
    beta[tInt2:] = 0.8 * gamma0
    system3 = sircd.SIRCD(susceptibles=pop,
                          infectious=1,
                          contact_rate=beta,
                          average_infection_period=1 / gamma0,
                          epsilon=epsilon,
                          delta=cfr,
                          nSteps=nSteps,
                          t0=delayModel)
    system3.evolveSystem()
    system3.plot(susceptibles=False,
                 infectious=False,
                 recovered=False,
                 confirmed=False,
                 deaths=False)
    plt.plot(system3.timeSeries.timeVector,
             system3.timeSeries.deaths,
             color='C2',
             label='SIR model, R0=3')

    plt.plot(daH, deH, '.-', color='C3', label='deaths Hubei')
    plt.plot(daI,
             deI,
             '.-',
             linewidth=2,
             markersize=12,
             color='C4',
             label='deaths Italy')
    plt.plot([], [], ' ', label="data at 17 Mar 2020")
    plt.ylim(10, 1e5)
    plt.xlim(20, 150)
    plt.xlabel(strdates)
    plt.title('')
    plt.legend()
示例#5
0
def plotModelloLombardia():
    strdates = 'Days from Jan1'

    csse = CSSECovid()
    deH, coH, daH = csse.hubei()
    dL = DpcCovid(DpcCovid.LOMBARDIA)
    deL = dL.deceduti
    coL = dL.totale_casi
    daL = dL.days

    nSteps = 100
    delayModel = 0
    periods = np.array([65])

    E0 = 0
    I0 = .00025
    R0 = 0
    A0 = I0 * 10
    H0 = 0
    S0 = 10000000 - E0 - I0 - R0 - A0 - H0
    beta = piecewise(periods, (1.75, 0.65), nSteps)
    r = 1
    De = 5.2
    Di = 2.3
    Dq = piecewise(periods, (10, 10), nSteps)
    Dh = 30
    travellers = 0

    system3 = seirah.SEIRAH(susceptibles=S0,
                            exposed=E0,
                            infectious=I0,
                            recovered=R0,
                            unascertained=A0,
                            hospitalized=H0,
                            transmission_rate=beta,
                            unscertained_transmission_rate_ratio=1,
                            ascertainment_fraction=r,
                            latent_period=De,
                            infectious_period=Di,
                            illness_to_hospitalization_period=Dq,
                            hospitalization_period=Dh,
                            inbound_outbound_travelers=travellers,
                            nSteps=nSteps,
                            t0=delayModel)
    system3.evolveSystem()
    system3.plot()
    plt.plot(system3.timeSeries.timeVector,
             system3.timeSeries.susceptibles[0] -
             system3.timeSeries.susceptibles,
             color='C7', label='total cases')
    plt.plot(system3.timeSeries.timeVector,
             system3.timeSeries.recovered_with_immunity * 0.005,
             '--', color='C4', label='deaths')

    plt.plot(dL.days, dL.deceduti, '+-', color='C4', label='deceduti')
#    plt.plot(dL.days, dL.dimessi_guariti, 'x-', color='C4', label='dimessi')
#    plt.plot(dL.days, dL.dimessi_guariti + dL.deceduti, '.-', color='C4', label='dimessi o deceduti')
    plt.plot(dL.days, dL.totale_attualmente_positivi, '.-', color='C6',
             label='att. positivi')
    plt.plot(dL.days, dL.totale_casi, '.-', color='C7', label='totale casi')
    plt.plot([], [], ' ', label=dataAtToday())
    plt.ylim(10, 10e6)
    plt.xlim(40, 100)
    plt.xlabel(strdates)
    plt.title('')
    plt.legend()
示例#6
0
def plotTalkXiongLin():
    '''
    https://harvard.zoom.us/rec/play/v8Ytceqqqzs3GNzB4gSDB_59W9TsK6Ks13RI_6cLxB62BSUAOlumZeRAZLC7e1vif7xIyy6HL_uXyNHw?startTime=1584118874000
    '''

    strdates = 'Days (Hub +Jan1, I +Feb6)'

    csse = CSSECovid()
    deH, coH, daH = csse.hubei()
    deI, coI, daI = csse.italy()

    nSteps = 100
    delayModel = 0
    periods = np.array([10, 22, 32])

    S0 = 9999467
    E0 = 346
    I0 = 80
    R0 = 0
    A0 = 80
    H0 = 27
    beta = piecewise(periods, (1.75, 1.75, 0.58, 0.15), nSteps)
    r = piecewise(periods, (0.19, 0.19, 0.22, 0.17), nSteps)
    De = 5.2
    Di = 2.3
    Dh = 30
    Dq = piecewise(periods, (10, 7, 5, 2), nSteps)
    travellers = piecewise(periods, (500e3, 800e3, 0, 0), nSteps)

    system3 = seirah.SEIRAH(susceptibles=S0,
                            exposed=E0,
                            infectious=I0,
                            recovered=R0,
                            unascertained=A0,
                            hospitalized=H0,
                            transmission_rate=beta,
                            unscertained_transmission_rate_ratio=1,
                            ascertainment_fraction=r,
                            latent_period=De,
                            infectious_period=Di,
                            illness_to_hospitalization_period=Dq,
                            hospitalization_period=Dh,
                            inbound_outbound_travelers=travellers,
                            nSteps=nSteps,
                            t0=delayModel)
    system3.evolveSystem()
    system3.plot()
    #    plt.plot(system3.timeSeries.timeVector,
    #             system3.timeSeries.deaths, color='C2', label='SIRCD model')

    plt.plot(daH, deH, '.-', color='C3', label='deaths Hubei')
    plt.plot(daH, coH, '+-', color='C3', label='confirmed Hubei')
    #     plt.plot(daI, deI, '.-',
    #              linewidth=2,
    #              markersize=12,
    #              color='C4',
    #              label='deaths Italy')
    plt.plot([], [], ' ', label="data at 20 Mar 2020")
    # plt.ylim(10, 1e4)
    # plt.xlim(20, 60)
    plt.xlabel(strdates)
    plt.title('')
    plt.legend()
    return system3
示例#7
0
def plotReport2():
    strdates = 'Days (Hubei from Jan1, Italy from Feb6)'

    csse = CSSECovid()
    deH, coH, daH = csse.hubei()

    pop = 6e7
    nSteps = 200
    beta0 = 0.48
    gamma0 = 0.16
    epsilon2 = 0.75
    cfr2 = 0.03
    delay_model2 = 0

    beta2 = np.zeros(nSteps)
    tInt2 = 32 - delay_model2
    beta2[:tInt2] = beta0
    beta2[tInt2:] = 0.8 * gamma0
    system2 = sircd.SIRCD(susceptibles=pop,
                          infectious=1,
                          contact_rate=beta2,
                          average_infection_period=1 / gamma0,
                          epsilon=epsilon2,
                          delta=cfr2,
                          nSteps=nSteps,
                          t0=delay_model2)
    system2.evolveSystem()
    # system2.plot(susceptibles=False, infectious=False, recovered=False)
    system2.plot()
    t = 'Social rarefaction R0=0.8 from day %d\n $\epsilon$ = %g\n' % (
        tInt2 + delay_model2, epsilon2)
    plt.title(t)
    plt.xlabel(strdates)
    plt.ylim(10, )
    plt.xlim(0, 100)

    plt.plot(daH, deH, '.-', color='C4', label='deaths Hubei')
    plt.plot(daH, coH, '.-', color='C3', label='confirmed Hubei')
    plt.legend()

    epsilon1 = 0.001
    cfr1 = 0.00005
    delay_model1 = -20
    system1 = sircd.SIRCD(susceptibles=pop,
                          infectious=1,
                          contact_rate=beta0,
                          average_infection_period=1 / gamma0,
                          epsilon=epsilon1,
                          delta=cfr1,
                          nSteps=nSteps,
                          t0=delay_model1)
    system1.evolveSystem()
    system1.plot()
    t = 'Constant contact_rate\n $\epsilon$ = %g\n' % (epsilon1)
    plt.title(t)
    plt.xlabel(strdates)
    plt.ylim(10, )
    plt.xlim(0, 100)
    plt.plot(daH, deH, '.-', color='C4', label='deaths Hubei')
    plt.plot(daH, coH, '.-', color='C3', label='confirmed Hubei')
    plt.legend()
示例#8
0
def plotFB():
    delayI = 36
    delayR = 34
    delayH = 0
    delayF = 45
    delayS = 45
    delayK = 35
    strdates = 'Days (Hub +Jan1, I +Feb6)'

    csse = CSSECovid()
    deH, coH, reH, daH = csse.hubei()
    deI, coI, reI, daI = csse.italy()
    # deF, coF, reF, daF = csse.restoreFrance()
    # deR, coR, reR, daR = _restoreCountry('Iran', delayR)
    # deS, coS, reS, daS = csse.restoreSpain()
    # deK, c*K, reK, daK = _restoreCountry('Korea, South', delayK)

    pop = 6e7
    nSteps = 100
    cfr = 0.03
    delayModel = -1
    beta0 = 0.481
    gamma0 = 0.16

    system3 = sircd.SIRCD(susceptibles=pop,
                          infectious=1,
                          contact_rate=beta0,
                          average_infection_period=1 / gamma0,
                          epsilon=1,
                          delta=cfr,
                          nSteps=nSteps,
                          t0=delayModel)
    system3.evolveSystem()
    deaths3 = cfr * system3.timeSeries.recovered_with_immunity
    system3.plot(susceptibles=False,
                 infectious=False,
                 recovered=False,
                 confirmed=False,
                 deaths=False)
    plt.plot(system3.timeSeries.timeVector,
             deaths3,
             color='C2',
             label='SIR model, R0=3')

    plt.plot(daH, deH, '.-', color='C3', label='deaths Hubei')
    plt.plot(daI,
             deI,
             '.-',
             linewidth=2,
             markersize=12,
             color='C4',
             label='deaths Italy')
    # plt.plot(daF, deF, '.-', label='deaths France')
    # plt.plot(daS, deS, '.-', label='deaths Spain')
    # plt.plot(coHd + delayModel, coH, '.-', label='confirmed Hubei')
    # plt.plot(coId + delayModel, coI, '.-', label='confirmed Italy')
    # Create empty plot with blank marker containing the extra label
    plt.plot([], [], ' ', label="data at 14 Mar 2020")
    plt.ylim(10, 1e4)
    plt.xlim(20, 60)
    plt.xlabel(strdates)
    plt.title('')
    plt.legend()