summaryrefslogtreecommitdiff
path: root/trace_courbe.py
diff options
context:
space:
mode:
authorDenise sur ardoise <denise@ardoise>2022-05-28 19:22:58 +0200
committerDenise sur ardoise <denise@ardoise>2022-05-28 19:22:58 +0200
commit32b3d06150018ed96d071cc0c6281469a880f9e0 (patch)
tree3efb0ab0550878489a00c278bc1440cb6e513546 /trace_courbe.py
parentd4daf461c8317e3f9e89df00d5f65bb59e40911d (diff)
downloadoms-32b3d06150018ed96d071cc0c6281469a880f9e0.tar.gz
oms-32b3d06150018ed96d071cc0c6281469a880f9e0.tar.zst
oms-32b3d06150018ed96d071cc0c6281469a880f9e0.zip
V2.6 : bugs d'extrapolation corrigé, prise en compte des dates dans les données, repères, et extra.
Diffstat (limited to 'trace_courbe.py')
-rw-r--r--trace_courbe.py31
1 files changed, 24 insertions, 7 deletions
diff --git a/trace_courbe.py b/trace_courbe.py
index c39f265..e29359f 100644
--- a/trace_courbe.py
+++ b/trace_courbe.py
@@ -6,6 +6,7 @@ import gestion_unites as u
6from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python 6from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python
7from gestion_erreurs import debug, erreur, warning 7from gestion_erreurs import debug, erreur, warning
8from calculs_extrapole import calcule_donnee_extrapolee, calcule_age_extrapole, interpole_lineaire, interpole_lineaire_ordonnee, formate_resultat_donnee, formate_resultat_age, formate_interpole, formate_extrapole 8from calculs_extrapole import calcule_donnee_extrapolee, calcule_age_extrapole, interpole_lineaire, interpole_lineaire_ordonnee, formate_resultat_donnee, formate_resultat_age, formate_interpole, formate_extrapole
9import datetime
9 10
10from numpy import arange 11from numpy import arange
11 12
@@ -227,7 +228,11 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e
227 # On va prendre les extrapolations de la dernière donnée jusqu'à l fin du graphe 228 # On va prendre les extrapolations de la dernière donnée jusqu'à l fin du graphe
228 debut_extr = int(l_jours[-conf["non_sauve"]["nbextradata"]]) 229 debut_extr = int(l_jours[-conf["non_sauve"]["nbextradata"]])
229 i_debut_extr = dates_extrapole.index(debut_extr) 230 i_debut_extr = dates_extrapole.index(debut_extr)
230 i_fin_extr = dates_extrapole.index(jour_maxi) 231 if jour_maxi >= dates_extrapole[-1]:
232 i_fin_extr = len(dates_extrapole) -1
233 else:
234 i_fin_extr = dates_extrapole.index(jour_maxi)
235 print("bla", i_debut_extr, i_fin_extr)
231 # Voilà ce qu'on veut tracer 236 # Voilà ce qu'on veut tracer
232 dates_extrapole_trace = dates_extrapole[i_debut_extr:i_fin_extr+1] 237 dates_extrapole_trace = dates_extrapole[i_debut_extr:i_fin_extr+1]
233 donnees_extrapole_trace = donnees_extrapole[i_debut_extr:i_fin_extr+1] 238 donnees_extrapole_trace = donnees_extrapole[i_debut_extr:i_fin_extr+1]
@@ -248,11 +253,11 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e
248 else: 253 else:
249 message=formate_interpole() 254 message=formate_interpole()
250 255
251 texte = formate_resultat_donnee(conf["non_sauve"]["calculextradata_age"], r, typedonnee, message, liste_err) 256 texte = formate_resultat_donnee(conf["non_sauve"]["calculextradata_age"], conf["non_sauve"]["calculextradata_date"], r, typedonnee, message, liste_err)
252 debug("calcul de la donnée extrapolée : "+texte, liste_err) 257 debug("calcul de la donnée extrapolée : "+texte, liste_err)
253 if texte!="": 258 if texte!="":
254 liste_extracalculs.append(texte) 259 liste_extracalculs.append(texte)
255 print(liste_extracalculs) 260 #print(liste_extracalculs)
256 # Ajouter le trait ? 261 # Ajouter le trait ?
257 if conf["non_sauve"]["calculextradata_trace"] == "oui": 262 if conf["non_sauve"]["calculextradata_trace"] == "oui":
258 dessine_guides(conf["non_sauve"]["calculextradata_age"], r, conf["couleurs"]["cadretxt"], unite, ax, liste_err) 263 dessine_guides(conf["non_sauve"]["calculextradata_age"], r, conf["couleurs"]["cadretxt"], unite, ax, liste_err)
@@ -261,14 +266,23 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e
261 if conf["non_sauve"]["calculextratemps_type"] == typedonnee: 266 if conf["non_sauve"]["calculextratemps_type"] == typedonnee:
262 # interpolation 267 # interpolation
263 r = interpole_lineaire_ordonnee(l_jours,l_poids,conf["non_sauve"]["calculextratemps_val"], liste_err) 268 r = interpole_lineaire_ordonnee(l_jours,l_poids,conf["non_sauve"]["calculextratemps_val"], liste_err)
269 if type(conf["naissance"]) == datetime.date:
270 rdate = conf["naissance"] + datetime.timedelta(days=r)
271 else:
272 rdate = None
273
264 if r==-1: 274 if r==-1:
265 # ça sera donc une extrapolation 275 # ça sera donc une extrapolation
266 r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], liste_err) 276 r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], liste_err)
277 if type(conf["naissance"]) == datetime.date:
278 rdate = conf["naissance"] + datetime.timedelta(days=round(r))
279 else:
280 rdate = None
267 message=formate_extrapole(conf["non_sauve"]["nbextradata"]) 281 message=formate_extrapole(conf["non_sauve"]["nbextradata"])
268 else: 282 else:
269 message=formate_interpole() 283 message=formate_interpole()
270 284 print(r, rdate)
271 texte = formate_resultat_age(r, conf["non_sauve"]["calculextratemps_val"], typedonnee, message, liste_err) 285 texte = formate_resultat_age(r, rdate, conf["non_sauve"]["calculextratemps_val"], typedonnee, message, liste_err)
272 286
273 #r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], typedonnee, liste_err) 287 #r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], typedonnee, liste_err)
274 if texte!="": 288 if texte!="":
@@ -318,7 +332,10 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e
318 agec = u.convertitunite(rep["donnee"], unite, liste_err) 332 agec = u.convertitunite(rep["donnee"], unite, liste_err)
319 # Tracé de la ligne verticale 333 # Tracé de la ligne verticale
320 ax.vlines(agec, poids_min, poids_max, linestyles="dashed", color=conf["couleurs"]["cadretxt"]) 334 ax.vlines(agec, poids_min, poids_max, linestyles="dashed", color=conf["couleurs"]["cadretxt"])
321 # Tracé éventuel du texte 335 # date à afficher ?
336 if rep["affichedate"] == "oui" and rep["date"] != "":
337 ax.text(agec, poids_min,rep["date"]+" ", rotation=90, verticalalignment='top', horizontalalignment='center', color=conf["couleurs"]["cadretxt"], fontstyle="italic")
338 # Si y'a un texte à afficher
322 if rep["texte"] != "": 339 if rep["texte"] != "":
323 ax.text(agec, poids_min, " "+rep["texte"], rotation=90, verticalalignment='bottom', horizontalalignment='right', color=conf["couleurs"]["cadretxt"]) 340 ax.text(agec, poids_min, " "+rep["texte"], rotation=90, verticalalignment='bottom', horizontalalignment='right', color=conf["couleurs"]["cadretxt"])
324 341