Source code for emodpy_malaria.interventions.spacespraying

from emod_api import schema_to_class as s2c
from emod_api.interventions import utils
from emodpy_malaria.interventions.common import add_campaign_event

iv_name = "SpaceSpraying"


[docs] def add_scheduled_space_spraying( campaign, start_day: int = 1, node_ids: list = None, repetitions: int = 1, timesteps_between_repetitions: int = 365, spray_coverage: float = 1.0, insecticide: str = "", killing_initial_effect: float = 1, killing_box_duration: float = -1, killing_decay_time_constant: float = 0, intervention_name: str = iv_name, cost_to_consumer: float = 0 ): """ Args: campaign: campaign object to which the intervention will be added, and schema_path container start_day: The day the intervention is given out. node_ids: List of nodes to which to distribute the intervention. [] or None, indicates all nodes will get the intervention repetitions: The number of times an intervention is given, used with timesteps_between_repetitions. -1 means the intervention repeats forever. Sets **Number_Repetitions** timesteps_between_repetitions: The interval, in timesteps, between repetitions. Ignored if repetitions = 1. Sets **Timesteps_Between_Repetitions** spray_coverage: The portion of the node that has been sprayed. This value is multiplied by the current efficacy of the WaningEffect insecticide: The name of the insecticide defined in <config.Insecticides> for this intervention. If insecticides are being used, then this must be defined as one of those values. If they are not being used, then this does not needed to be specified or can be empty string. It cannot have a value if <config.Insecticides> does not define anything. intervention_name: The optional name used to refer to this intervention as a means to differentiate it from others that use the same class. It’s possible to have multiple UsageDependentBednets interventions attached to a person if they have different Intervention_Name values. killing_initial_effect: Initial strength of the Killing effect. The effect may decay over time. killing_box_duration: Box duration of effect in days before the decay of Killing Initial_Effect. -1 indicates effect is indefinite (WaningEffectConstant) killing_decay_time_constant: The exponential decay length, in days of the Killing Initial_Effect. cost_to_consumer: Per unit cost when distributed Returns: """ node_intervention = _space_spraying(campaign=campaign, spray_coverage=spray_coverage, insecticide=insecticide, intervention_name=intervention_name, killing_initial_effect=killing_initial_effect, killing_box_duration=killing_box_duration, killing_decay_time_constant=killing_decay_time_constant, cost_to_consumer=cost_to_consumer) add_campaign_event(campaign=campaign, start_day=start_day, node_ids=node_ids, repetitions=repetitions, timesteps_between_repetitions=timesteps_between_repetitions, node_intervention=node_intervention)
def _space_spraying(campaign, spray_coverage: float = 1.0, insecticide: str = "", killing_initial_effect: float = 1, killing_box_duration: float = -1, killing_decay_time_constant: float = 0, intervention_name: str = iv_name, cost_to_consumer: float = 0): """ Configures the node-targeted SpaceSpraying intervention Args: campaign: campaign object to which the intervention will be added, and schema_path container spray_coverage: The portion of the node that has been sprayed. This value is multiplied by the current efficacy of the WaningEffect insecticide: The name of the insecticide defined in <config.Insecticides> for this intervention. If insecticides are being used, then this must be defined as one of those values. If they are not being used, then this does not needed to be specified or can be empty string. It cannot have a value if <config.Insecticides> does not define anything. intervention_name: The optional name used to refer to this intervention as a means to differentiate it from others that use the same class. It’s possible to have multiple UsageDependentBednets interventions attached to a person if they have different Intervention_Name values. killing_initial_effect: Initial strength of the Killing effect. The effect may decay over time. killing_box_duration: Box duration of effect in days before the decay of Killing Initial_Effect. -1 indicates effect is indefinite (WaningEffectConstant) killing_decay_time_constant: The exponential decay length, in days of the Killing Initial_Effect. cost_to_consumer: Per unit cost when distributed Returns: Configured SpaceSpraying intervention """ schema_path = campaign.schema_path intervention = s2c.get_class_with_defaults("SpaceSpraying", campaign.schema_path) intervention.Intervention_Name = intervention_name intervention.Insecticide_Name = insecticide intervention.Spray_Coverage = spray_coverage intervention.Cost_To_Consumer = cost_to_consumer intervention.Killing_Config = utils.get_waning_from_params(schema_path=schema_path, initial=killing_initial_effect, box_duration=killing_box_duration, decay_time_constant=killing_decay_time_constant) return intervention
[docs] def new_intervention_as_file(campaign, start_day: int = 0, filename: str = "SpaceSpraying.json"): """ Creates a file with SpaceSpray intervention Args: campaign: campaign object to which the intervention will be added, and schema_path container start_day: the day to distribute the SpaceSpraying intervention filename: name of the filename created Returns: filename of the file created """ add_scheduled_space_spraying(campaign=campaign, start_day=start_day) campaign.save(filename) return filename