from emodpy_malaria.reporters.builtin import *
= 5
sim_years =365, end_day=sim_years*365,
add_report_event_counter(task, manifest, start_day=['Received_SMC', 'Received_Treatment'],
event_trigger_list="drug_interventions") filename_suffix
Rapports d’événements
⚠️ Mode d’emploi : rapport sur les événements de diffusion qui se produisent pendant les simulations
EMOD est capable de suivre une variété d’événements intégrés ainsi que des événements de campagne personnalisés. Les événements personnalisés peuvent être particulièrement utiles pour suivre et compter explicitement le nombre d’interventions distribuées. Par exemple, dans l’intervention SMC simple (voir ajouter des campagnes de lutte contre la drogue comment faire), nous avons défini un événement appelé “Received_SMC” pour décrire les enfants qui ont effectivement reçu des médicaments SMC dans la simulation. La fonction add_treatment_seeking
génère automatiquement un événement 'Received_Treatment'
pour chaque individu recevant un traitement pour un paludisme symptomatique. L’ajout d’événements personnalisés au paramètre de configuration 'Custom_Individual_Events'
est automatiquement géré par emodpy
lors de la création de la campagne.
Agréger les événements - ReportEventCounter
Pour connaître le nombre d’événements qui se produisent chaque jour, demandez ReportEventCounter
avec add_report_event_counter()
et spécifiez la liste des événements que vous souhaitez suivre, dans ce cas la réception de l’une des deux interventions médicamenteuses mentionnées ci-dessus :
Ceci génère un fichier ReportEventCounter.json qui rapporte le nombre total d’événements spécifiés pour chaque jour de la simulation. Le rapport d’un sous-ensemble d’ID de nœuds (node_ids
), la restriction sur l’âge (min_age_years
, max_age_years
), et la restriction sur la propriété individuelle (must_have_ip_key_value
) sont tous configurables. Le format du .json est identique à InsetChart.json, donc les analyseurs écrits pour InsetChart.json peuvent être facilement adaptés à ReportEventCounter
.
Événements individuels - ReportEventRecorder
Il peut arriver que vous souhaitiez suivre des événements au niveau individuel. Pour ce faire, nous utilisons add_event_recorder()
pour appeler le ReportEventRecorder
, qui est similaire à ReportEventCounter
mais qui liste chaque événement au fur et à mesure qu’il se produit et fournit des informations sur la personne qui a vécu l’événement. Les appels de ces deux rapports sont très similaires, mais l’enregistreur utilise event_list
plutôt que event_trigger_list
et n’a pas de filename_suffix
:
from emodpy_malaria.reporters.builtin import *
= 5
sim_years =365, end_day=sim_years*365,
add_event_recorder(task, start_day=['Received_SMC', 'Received_Treatment'],
event_list=[1], min_age_years=0,
node_ids=100) max_age_years
Note : Si vous voulez retourner tous les événements de la simulation, laissez le tableau “events” vide et mettez only_include_events_in_list
à False
.
Après l’exécution, un fichier appelé ReportEventRecorder.csv sera généré dans le dossier output/ pour la simulation. Chaque ligne du rapport représente un événement distinct, avec les informations suivantes dans ses colonnes :
Détails de l’événement : - Time (quand l’événement s’est-il produit) - Node_ID (où l’événement s’est produit) - Event_Name (ce qui s’est passé)
Détails sur l’individu (à qui l’événement est-il arrivé ?): - Individual_ID - Age - Gender - Infected (1 = Vrai) (infecté) - Infectiousness (1 = Vrai) (infectieux) - RelativeBitingRate (taux de morsure relatif) - TrueParasiteDensity (densité de parasites) - TrueGametocyteDensity (densité de gamétocytes vraie) - HasClinicalSymptoms (symptômes cliniques)
Plus une colonne supplémentaire pour la valeur de toute IP demandée par ips_to_record
.
Vous pouvez inclure des personnalisations supplémentaires en suivant les instructions de la documentation