Skip to content

laser.measles.abm.base

laser.measles.abm.base

Basic classes

laser.measles.abm.base.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

Example:

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

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

laser.measles.abm.base.BaseABMScenarioSchema

Bases: Model

Schema for the scenario data.

Example:

1
2
3
4
5
6
```python
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)
```

laser.measles.abm.base.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.

Example:

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

laser.measles.abm.base.PeopleLaserFrame(capacity, initial_count=-1, **kwargs)

Bases: BasePeopleLaserFrame

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

Example:

1
2
3
4
5
6
```python
# 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
```