Skip to content

laser.measles.abm.base

base

Basic classes

BaseABMScenario(df)

Bases: BaseScenario

Scenario wrapper for agent-based models.

Validates that the input DataFrame conforms to the BaseABMScenarioSchema (columns id, pop, lat, lon, mcv1) and makes the data available to model components during the prepare scenario stage.

Parameters:

Name Type Description Default
df DataFrame

Polars DataFrame with patch-level data.

required

Examples:

1
2
3
from laser.measles.scenarios.synthetic import single_patch_scenario

scenario = single_patch_scenario(population=50_000, mcv1_coverage=0.85)

BaseABMScenarioSchema

Bases: Model

Schema for the scenario data.

Examples:

1
2
3
4
from laser.measles.scenarios.synthetic import single_patch_scenario

scenario = single_patch_scenario(population=50_000, mcv1_coverage=0.85)
# Validated automatically when passed to ABMModel(scenario, params)

PatchLaserFrame(capacity, initial_count=-1, **kwargs)

Bases: BasePatchLaserFrame

LaserFrame for patch-level properties in ABM models.

This class extends BasePatchLaserFrame to provide patch-level data storage and access patterns specific to agent-based models.

Examples:

1
2
model.patches.S  # susceptible counts, shape (nticks+1, num_patches)
model.patches.I  # infectious counts

PeopleLaserFrame(capacity, initial_count=-1, **kwargs)

Bases: BasePeopleLaserFrame

Laserframe for people (e.g., agent) properties

Examples:

1
2
3
4
# ABM people LaserFrame tracks individual agents
model.people.state     # health state per agent
model.people.age       # age in days per agent
model.people.patch_id  # patch assignment per agent