def fig_creator_md_inter(name, coeff_list):
    """
    Création de figure pour models_interractive.py : Représentation des différents modèles et de la courbe réelle du
    nombre cumulé de cas de la COVID-19.
    :param name: str -> Nom du pays
    :param coeff_list: list -> Liste des paramètres des différents modèles dans cet ordre : [r_log, r_rich, alpha,
    beta_SIR, gamma_SIR, beta_SEIR, sigma_SEIR, gamma_SEIR]
    :return: plotly.graph_objs._figure.Figure
    """
    fig = make_subplots(rows=1, cols=1)
    title = "Nombre cumulé d'infectés - COVID-19"
    fig.update_layout(title={
        'text': title,
        'y': 0.9,
        'x': 0.5,
        'xanchor': 'center',
        'yanchor': 'top'
    },
                      title_font_size=30,
                      xaxis={'title': 'Date (jour/mois)'},
                      yaxis={'title': 'Nombre d\'individu'})
    matrix = give_CC_matrix(name)
    sp = CC_starting_point(name)

    ### Défintion des paramètres ###

    # Nombre initial d'infectés.
    C0 = matrix[0]
    # Nombre cumulatif final d'infectés.
    K = matrix[len(matrix) - 1]
    # Intervalles de temps.
    t = np.arange(sp, len(dt.Time_ext), 1)
    # Population totale.
    N = dt.Totpop[name]
    # Nombre initial d'individus infectés, infectieux et guéris.
    E0, I0, R0 = 0, C0, 0
    # Nombre d'individu susceptibles d'attrapper la maladie.
    S0 = N - E0 - I0 - R0

    # Modèles calculant le nombre cumulé d'infectés.
    C1 = md.logistique(C0, K, coeff_list[0], t)  # modèle logistique
    C2 = md.richards(C0, K, coeff_list[1], t,
                     coeff_list[2])  # modèle de Richards
    C3 = md.SIR(S0, I0, R0, t, N, coeff_list[3], coeff_list[4])  # modèle SIR
    C4 = md.SEIR(S0, E0, I0, R0, t, N, coeff_list[5], coeff_list[6],
                 coeff_list[7])  # modèle SEIR

    ### Ajout des courbes ###

    fig.add_scatter(x=dt.Time_ext[sp:], y=matrix, name=name)

    fig.add_scatter(x=dt.Time_ext[sp:], y=C1, name="Modèle logistique")

    fig.add_scatter(x=dt.Time_ext[sp:], y=C2, name="Modèle de Richards")

    fig.add_scatter(x=dt.Time_ext[sp:], y=C3, name="Modèle SIR")

    fig.add_scatter(x=dt.Time_ext[sp:], y=C4, name="Modèle SEIR")

    return fig
def f_richards_minimization(coeff, name):
    """
    Obtention d'une valeur représentative de l'erreur entre les observations réelles du nombre cumulé de cas de COVID-19
    et le modèle de Richards défini à partir des paramètres de la fonction.
    :param coeff: numpy.ndarray
    :param name: str -> Nom du pays
    :return: float
    """
    sp = int(GRCC_matrix_startCC([name])[0][0])
    C0 = GRCC_matrix_startCC([name])[0][1]
    observations = give_CC_matrix(name)
    K = np.max(observations)
    t = np.arange(sp, len(observations) + sp)
    C = md.richards(C0, K, coeff[0], t, coeff[1])
    return error(observations, C)
Пример #3
0
def update_graph(EGR_log, EGR_rich, Rcoeff, b_SIR, g_SIR, b_SEIR, s_SEIR,
                 g_SEIR):
    # Nombre cumulé d'infectés.
    C1 = logistique(C0, K, EGR_log, t1)  # modèle logistique
    C2 = richards(C0, K, EGR_rich, t1, Rcoeff)  # modèle de Richards
    C3 = SIR(S0, I0, R0, t1, N, b_SIR, g_SIR)  # modèle SIR
    C4 = SEIR(S0, E0, I0, R0, t1, N, b_SEIR, s_SEIR, g_SEIR)  # modèle SEIR

    new_fig = make_subplots(rows=1, cols=1)
    new_fig.update_layout(title={
        'text': "Nombre cumulatif d'infectés de la COVID 19",
        'y': 0.9,
        'x': 0.5,
        'xanchor': 'center',
        'yanchor': 'top'
    },
                          title_font_size=30,
                          xaxis={'title': 'Date (jour/mois)'},
                          yaxis={'title': 'Nombre d\'individu'})

    new_fig.add_scatter(x=dt.Time, y=dt.France_C, name="Données France CSSE")

    new_fig.add_scatter(x=dt.Time, y=matrix_2, name="Données France OxCGRT")

    # new_fig.add_scatter(
    #     x=dt.Time,
    #     y=dt.Germany_C, name="Données Allemagne")
    #
    # # new_fig.add_scatter(
    #     x=dt.Time[2:],
    #     y=C1, name="Modèle logistique")
    #
    # new_fig.add_scatter(
    #     x=dt.Time[2:],
    #     y=C2, name="Modèle de Richards")
    #
    # new_fig.add_scatter(
    #     x=dt.Time[2:],
    #     y=C3, name="Modèle SIR")
    #
    # new_fig.add_scatter(
    #     x=dt.Time[2:],
    #     y=C4, name="Modèle SEIR")

    return new_fig
Пример #4
0
t1 = np.arange(2, len(dt.Time), 1)
# Coefficient du modèle de Richards.
alpha1 = 1.0685873
# Population totale.
N = 64081000
# Nombre initial d'individus infectés, infectieux et guéris.
E0, I0, R0 = 0, 2, 0
# Nombre d'individu susceptibles d'attrapper la maladie.
S0 = N - E0 - I0 - R0
# Taux de transmission et taux de guérison par jours.
beta_SIR, gamma_SIR = 9.24884336, 9.12660313  # modèle SIR
beta_SEIR, sigma_SEIR, gamma_SEIR = 44.3754473, 2.75653902, 41.72852292  # modèle SEIR

# Nombre cumulé d'infectés.
C1 = logistique(C0, K, r_log, t1)  # modèle logistique
C2 = richards(C0, K, r_rich, t1, alpha1)  # modèle de Richards
C3 = SIR(S0, I0, R0, t1, N, beta_SIR, gamma_SIR)  # modèle SIR
C4 = SEIR(S0, E0, I0, R0, t1, N, beta_SEIR, sigma_SEIR,
          gamma_SEIR)  # modèle SEIR

data = converter("data_text/{}".format("France"))
matrix = []
for t in range(len(data)):
    matrix += [data[t][27]]
matrix_2 = matrix[21:-8]

df = pd.read_csv(
    'https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv'
)

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']