analyzers
analyzers
Define analyzers, which are used to track variables when the sim is run.
Analyzers typically include things like additional tracking states by age or another conditional.
Classes
Name | Description |
---|---|
Analyzer | Base class for Analyzers. Analyzers are used to provide more detailed information |
dynamics_by_age | Example analyzer: track dynamics of a state by age. |
infection_log | Log infections – see ss.InfectionLog for detail |
Analyzer
self, name=None, label=None, **kwargs) analyzers.Analyzer(
Base class for Analyzers. Analyzers are used to provide more detailed information about a simulation than is available by default – for example, pulling states out of sim.people on a particular timestep before they get updated on the next step.
The key method of the analyzer is step()
, which is called with the sim on each timestep.
dynamics_by_age
self, state, age_bins=(0, 20, 40, 100)) analyzers.dynamics_by_age(
Example analyzer: track dynamics of a state by age.
Parameters
Name | Type | Description | Default |
---|---|---|---|
state | str | the name of the state to analyze | required |
age_bins | list | the list of age bins to analyze by | (0, 20, 40, 100) |
Example:
by_age = ss.dynamics_by_age('sis.infected')
sim = ss.Sim(diseases='sis', networks='random', analyzers=by_age)
sim.run()
sim.analyzers[0].plot() # Note: if Sim(copy_inputs=False), we can also use by_age.plot()
Methods
Name | Description |
---|---|
finalize_results | Convert to an array |
finalize_results
analyzers.dynamics_by_age.finalize_results()
Convert to an array
infection_log
self) analyzers.infection_log(
Log infections – see ss.InfectionLog
for detail
This analyzer activates an infection log running in each disease. This is different than other analyzers, but is required since the information required to create an infection log isn’t kept outside of the disease’s infect()
step.
Example:
import starsim as ss
sim = ss.Sim(n_agents=1000, dt=0.2, dur=15, diseases='sir', networks='random', analyzers='infection_log')
sim.run()
sim.analyzers[0].plot()
Methods
Name | Description |
---|---|
animate | Animate the infection log – mostly for amusement! |
finalize_results | Collect the infection logs from each of the diseases |
plot | Plot all of the infection logs |
step | Handled by ss.InfectionLog() |
animate
analyzers.infection_log.animate(=0,
key=10,
framerate=False,
clear='parula',
cmap**kwargs,
)
Animate the infection log – mostly for amusement!
Parameters
Name | Type | Description | Default |
---|---|---|---|
key | int / str | which disease to animate the infection log of | 0 |
framerate | float | how many frames per second to display | 10 |
clear | bool | whether to clear the frame on each step | False |
cmap | str | the colormap to use | 'parula' |
finalize_results
analyzers.infection_log.finalize_results()
Collect the infection logs from each of the diseases
plot
**kwargs) analyzers.infection_log.plot(
Plot all of the infection logs
step
analyzers.infection_log.step()
Handled by ss.InfectionLog()