Source code for laser.measles.biweekly.params
"""Parameters for the biweekly model."""
import json
from collections import OrderedDict
from laser.measles.base import BaseModelParams
TIME_STEP_DAYS = 14
STATES = ["S", "I", "R"] # Compartments/states for discrete-time model
[docs]
class BiweeklyParams(BaseModelParams):
"""
Parameters for the biweekly compartmental measles model (14-day timesteps).
All fields are inherited from :class:`BaseModelParams`. Key fields:
Attributes:
num_ticks (int): Number of biweekly (14-day) simulation steps
(e.g., 26 = 1 year, 130 = 5 years).
seed (int): Random seed for reproducibility. Default: 20250314.
start_time (str): Simulation start in ``"YYYY-MM"`` format. Default: ``"2000-01"``.
verbose (bool): Print detailed logging. Default: False.
Example::
params = BiweeklyParams(num_ticks=26, seed=42) # 1 year
params = BiweeklyParams(num_ticks=130, seed=0) # 5 years
params = BiweeklyParams(num_ticks=260, start_time="2005-01") # 10 years
"""
@property
def time_step_days(self) -> int:
return TIME_STEP_DAYS
@property
def states(self) -> list[str]:
return STATES
def __str__(self) -> str:
return json.dumps(OrderedDict(sorted(self.model_dump().items())), indent=2)
Params = BiweeklyParams