laser.measles.abm.model
laser.measles.abm.model
A class to represent the agent-based model.
laser.measles.abm.model.ABMModel(scenario, params, name='abm')
Bases: BaseLaserModel
Agent-based model for measles transmission with daily timesteps.
Tracks individual agents through SEIR states, supporting
heterogeneous vaccination, age structure, and stochastic transmission.
Use this model when you need individual-level resolution — for example,
tracking vaccination histories or age-dependent susceptibility. For
faster population-level dynamics, see
BiweeklyModel or
CompartmentalModel.
This is the first object created in the build model stage of the
researcher workflow. After construction, attach components with
add_component or
by setting the components property, then call model.run().
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
scenario
|
DataFrame | BaseABMScenario
|
Metapopulation patch data.
Required columns: |
required |
params
|
ABMParams
|
Simulation parameters including |
required |
name
|
str
|
Display name for log messages. Defaults to |
'abm'
|
Example:
1 2 3 4 5 6 7 8 9 | |
laser.measles.abm.model.ABMModel.from_snapshot(path, params, components=None, verbose=True)
classmethod
Restore an ABMModel from an HDF5 snapshot file.
Convenience wrapper around
load_snapshot. Use
this to resume a simulation from a checkpoint saved with
save_snapshot.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
Path to the HDF5 file written by
|
required | |
params
|
ABMParams
|
|
required |
components
|
list | None
|
Ordered list of component classes — same as the original model. |
None
|
verbose
|
bool
|
Print a loading summary. |
True
|
Returns:
| Type | Description |
|---|---|
ABMModel
|
A configured |
Example:
1 2 3 4 5 6 7 8 9 10 11 | |
laser.measles.abm.model.ABMModel.infect(indices, num_infected)
Infect agents by moving them from Susceptible to Exposed state.
This method finds the transmission component and delegates to its infect method, which handles both individual agent state updates and patch counter updates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
indices
|
int | ndarray
|
The indices of the agents to infect. |
required |
num_infected
|
int | ndarray
|
The number of agents to infect (for API consistency). Note: In ABM, this should match the length of indices. |
required |
laser.measles.abm.model.ABMModel.initialize_people_capacity(capacity, initial_count=-1)
Initialize the people LaserFrame with a new capacity while preserving all properties.
This method uses the factory method from BasePeopleLaserFrame to create a new instance of the same type with the specified capacity, copying all properties from the existing instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
capacity
|
int
|
The new capacity for the people LaserFrame |
required |
laser.measles.abm.model.ABMModel.plot(fig=None)
Plots various visualizations related to the scenario and population data.
Parameters:
1 | |
Yields:
1 | |
The function generates three plots:
1 2 3 | |
laser.measles.abm.model.ABMModel.setup_patches()
Setup the patches for the model.
laser.measles.abm.model.ABMModel.setup_people()
Placeholder for people - sets the data types for patch_id and susceptibility.