Skip to content

laser.measles.components.base_case_surveillance

laser.measles.components.base_case_surveillance

Component for tracking case surveillance

laser.measles.components.base_case_surveillance.BaseCaseSurveillanceParams

Bases: BaseModel

Parameters specific to the case surveillance component.

Attributes:

Name Type Description
detection_rate float

Probability of detecting an infected case.

filter_fn Callable[[str], bool]

Function to filter which nodes to include in aggregation.

aggregate_cases Callable[[str], bool]

Whether to aggregate cases by geographic level.

aggregation_level int

Number of levels to use for aggregation (e.g., 2 for country:state:lga).

laser.measles.components.base_case_surveillance.BaseCaseSurveillanceTracker(model, verbose=False, params=None)

Bases: BasePhase

Component for tracking detected cases in the model.

This component: 1. Simulates case detection based on a detection rate 2. Optionally tracks detected cases aggregated by geographic level 3. Uses a filter function to determine which nodes to include

Case detection is simulated using a binomial distribution. Cases can be tracked at individual node level or aggregated by geographic level. Uses a filter function to determine which nodes to include. Note that a single infection can be detected multiple times.

Parameters:

Name Type Description Default
model

The simulation model containing nodes, states, and parameters.

required
verbose bool

Whether to print verbose output during simulation. Defaults to False.

False
params BaseCaseSurveillanceParams | None

Component-specific parameters. If None, will use default parameters.

None

laser.measles.components.base_case_surveillance.BaseCaseSurveillanceTracker.__call__(model, tick)

Process case surveillance for the current tick.

Parameters:

Name Type Description Default
model

The simulation model.

required
tick int

Current time step.

required

laser.measles.components.base_case_surveillance.BaseCaseSurveillanceTracker.get_dataframe()

Get a DataFrame of reported cases over time.

Returns:

Type Description
DataFrame

DataFrame with columns: - tick: Time step - patch_id: Patch/group identifier. Matches the id column of the scenario DataFrame at the requested aggregation_level. - cases: Number of reported cases

laser.measles.components.base_case_surveillance.BaseCaseSurveillanceTracker.plot(fig=None)

Create a heatmap visualization of log(cases+1) over time.

Parameters:

Name Type Description Default
fig Figure | None

Existing figure to plot on. If None, a new figure will be created.

None

Yields:

Type Description

The figure containing the heatmap visualization.