laser.measles.abm
laser.measles.abm
laser.measles.abm.ABMModel(scenario, params, name='abm')
Bases: BaseLaserModel
Agent-based model for measles transmission with daily timesteps (SEIR).
Both scenario and params are required positional arguments.
There is no default constructor — omitting params raises TypeError.
Args:
1 2 3 4 5 6 | |
Notes:
1 2 3 4 5 6 7 8 9 10 | |
Initialize the disease model with the given scenario and parameters.
Args:
1 2 3 | |
Returns:
1 | |
laser.measles.abm.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.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.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.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.ABMModel.setup_patches()
Setup the patches for the model.
laser.measles.abm.ABMModel.setup_people()
Placeholder for people - sets the data types for patch_id and susceptibility.
laser.measles.abm.ABMParams
Bases: BaseModelParams
Parameters for the agent-based measles model (daily timesteps).
All fields are inherited from :class:BaseModelParams. Key fields:
Attributes:
| Name | Type | Description |
|---|---|---|
num_ticks |
int
|
Number of daily simulation steps (e.g., 365 = 1 year). |
seed |
int
|
Random seed for reproducibility. Default: 20250314. |
start_time |
str
|
Simulation start in |
verbose |
bool
|
Print detailed logging. Default: False. |
Example::
1 2 | |
laser.measles.abm.create_component(component_class, params=None)
Helper function to create a component instance with parameters.
This function creates a callable object that will instantiate the component with the given parameters when called by the model.
Parameters
component_class : Type[BaseComponent] The component class to instantiate **kwargs Parameters to pass to the component constructor
Returns
Callable[[Any, Any], BaseComponent] A function that creates the component instance when called by the model
Examples
model.components = [ ... create_component(MyComponent, params=MyComponentParams), ... AnotherComponent, ... ]
laser.measles.abm.load_snapshot(path, params, components=None, verbose=True)
Load an ABM from an HDF5 snapshot file and return it ready to run.
Restores the population, patch state, scenario, and metadata saved by
save_snapshot. Components
that modify the people frame (e.g.
VitalDynamicsProcess)
detect the snapshot context via model._from_snapshot and skip frame
setup. Set params.start_time to the snapshot date printed by
save_snapshot.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str | Path
|
Path to the HDF5 snapshot file written by
|
required |
params
|
ABMParams
|
|
required |
components
|
list | None
|
Ordered list of component classes to attach — same list as used when building 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.save_snapshot(model, path, squash_recovered=True, verbose=True)
Save ABM state to an HDF5 snapshot file.
Call this after ABMModel.run()
to persist the full population and patch state. The resulting HDF5 file
can be resumed with
load_snapshot to continue
the simulation from exactly where it left off — useful for warm-start
parameter sweeps, segmented cluster jobs, or reproducible checkpoints.
Warning
This function mutates model: recovered agents are squashed
(if squash_recovered=True) and future vaccination dates are
normalized. Do not continue running the model after calling this
function.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
ABMModel
|
A fully-run (or mid-run)
|
required |
path
|
str | Path
|
Destination HDF5 file path (created or overwritten). |
required |
squash_recovered
|
bool
|
If |
True
|
verbose
|
bool
|
Print a progress summary. |
True
|
Example:
1 2 3 4 5 6 7 8 9 10 11 | |