Skip to content

laser.measles.abm.components.process_sia_calendar

laser.measles.abm.components.process_sia_calendar

laser.measles.abm.components.process_sia_calendar.SIACalendarParams

Bases: BaseModel

Parameters specific to the SIA calendar component.

Example:

1
2
3
4
5
```python
from laser.measles.abm.components.process_sia_calendar import SIACalendarParams

params = SIACalendarParams()
```

laser.measles.abm.components.process_sia_calendar.SIACalendarProcess(model, verbose=False, params=None)

Bases: BasePhase

Phase for implementing Supplementary Immunization Activities (SIAs) based on a calendar schedule.

This component: 1. Groups nodes by geographic level using the same aggregation schema as CaseSurveillanceTracker 2. Implements SIAs at scheduled times by vaccinating individual agents 3. Uses the model's current_date to determine when to implement SIAs 4. Applies vaccination with configurable efficacy rate to individual agents

Parameters

model : ABMModel The ABM simulation model containing agents, patches, and parameters verbose : bool, default=False Whether to print verbose output during simulation params : Optional[SIACalendarParams], default=None Component-specific parameters. If None, will use default parameters

Notes
  • SIA efficacy determines the fraction of susceptibles that get vaccinated
  • Individual agents are randomly selected for vaccination based on efficacy
  • SIAs are implemented when the model's current_date has passed the scheduled date
  • Vaccination moves agents from susceptible (S=0) to recovered (R=3) state
  • Both individual agent states and patch-level state aggregations are updated
  • Each SIA is implemented exactly once

Example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
```python
from laser.measles.scenarios.synthetic import single_patch_scenario
from laser.measles.abm import ABMModel, ABMParams
from laser.measles.abm import components
from laser.measles import create_component

scenario = single_patch_scenario(population=50_000, mcv1_coverage=0.85)
params = ABMParams(num_ticks=365, seed=42, start_time="2000-01")
model = ABMModel(scenario, params)
model.add_component(create_component(components.SIACalendarProcess, components.SIACalendarParams()))
```

laser.measles.abm.components.process_sia_calendar.SIACalendarProcess.get_sia_schedule()

Get the SIA schedule.

Returns

pl.DataFrame DataFrame with columns: - {group_column}: Group identifier - {date_column}: Scheduled date for SIA

laser.measles.abm.components.process_sia_calendar.SIACalendarProcess.initialize(model)

No-op; SIA calendar state is set up during construction.