CoverageByNodeEventCoordinator
The CoverageByNodeEventCoordinator distributes individual-level interventions with node-specific demographic coverage. It is similar to the StandardInterventionDistributionEventCoordinator but adds the ability to specify different coverage fractions for each node via the Coverage_By_Node parameter. Each entry in Coverage_By_Node is a pair of node ID and coverage value. If no coverage has been specified for a particular node ID, the coverage defaults to zero for that node.
This coordinator supports the same demographic targeting, property restrictions, repetition, and targeting config options as the standard event coordinator.
Note
This can only be used with individual-level interventions, but EMOD will not produce an error if you attempt to use it with a node-level intervention.
At a glance:
- Distributed to: Nodes
- Serialized: No, it needs to be redistributed when starting from a serialized file.
Note
Parameters are case-sensitive. For Boolean parameters, set to 1 for true or 0 for false. Minimum, maximum, or default values of "NA" indicate that those values are not applicable for that parameter.
EMOD does not use true defaults; that is, if the dependency relationships indicate that a parameter is required, you must supply a value for it. However, many of the tools used to work with EMOD will use the default values provided below.
JSON format does not permit comments, but you can add "dummy" parameters to add contextual information to your files. Any keys that are not EMOD parameter names will be ignored by the model.
The table below describes all possible parameters with which this class can be configured. The JSON example that follows shows one potential configuration.
| Parameter | Type | Min | Max | Default | Description |
|---|---|---|---|---|---|
| Coverage_By_Node | array of JSON objects | NA | NA | [] | An array of JSON objects each containing a Node_Id (integer) and Coverage (float) pair that configures the demographic coverage of interventions by node for the targeted populations. The coverage value must be a float between 0 and 1. See idmType:NodeIdAndCoverage for individual element details. See example. |
| Coverage_By_Node.Coverage | float | 0 | 1 | 0 | Located within Coverage_By_Node. The percentage of people in the node that should be randomly selected to receive the intervention. The value must be a float between 0 and 1. |
| Coverage_By_Node.Node_Id | integer | 0 | 999999 | 0 | Located within Coverage_By_Node. The ID of the node specified in the demographics to which this coverage applies. |
| Intervention_Config | JSON object | NA | NA | NA | The nested JSON of the intervention to be distributed by this event coordinator. See example. |
| Node_Property_Restrictions | array of JSON objects | NA | NA | [] | A list of the NodeProperty key:value pairs that the node in which the individual is currently located must have in order to be targeted for the intervention. See IndividualProperties and NodeProperties parameters for more information. You can specify AND and OR combinations of key:value pairs with this parameter. See example. |
| Number_Repetitions | integer | -1 | 10000 | 1 | The number of times an intervention is given, used with Timesteps_Between_Repetitions. A value of -1 implies an infinite number of repetitions. |
| Property_Restrictions | array of strings | NA | NA | [] | A list of the IndividualProperty key:value pairs that individuals must have to be targeted by this intervention. See IndividualProperties and NodeProperties parameters for more information. To specify AND and OR combinations of key:value pairs use Property_Restrictions_Within_Node. You cannot use both of these parameters in the same event coordinator. See example. |
| Property_Restrictions_Within_Node | array of JSON objects | NA | NA | [] | A list of JSON objects where each object has Individual Property (IP) Keys as JSON keys and IP Values as JSON values. The values in the object are AND'd together while the objects are OR'd together. An individual's IP values must meet the logic in order to receive the intervention. You may specify individual property restrictions using either this parameter or Property_Restrictions but not both. See example. |
| Target_Age_Max | float | 0 | 9.3228e+35 | 9.3228e+35 | The age in years of an individual being considered must be less than or equal to this value in order to be selected. Used when Target_Demographic is set to ExplicitAgeRanges or ExplicitAgeRangesAndGender. |
| Target_Age_Min | float | 0 | 9.3228e+35 | 0 | The age in years of an individual being considered must be greater than or equal to this value in order to be selected. Used when Target_Demographic is set to ExplicitAgeRanges or ExplicitAgeRangesAndGender. |
| Target_Demographic | enum | NA | NA | Everyone | The target demographic group. Possible values are: Everyone ExplicitAgeRanges ExplicitAgeRangesAndGender ExplicitGender * ExplicitDiseaseState |
| Target_Gender | enum | NA | NA | All | Specifies the gender restriction for the intervention. Possible values are: Male Female * All |
| Target_Residents_Only | boolean | 0 | 1 | 0 | When set to true (1), only individuals that currently reside in their 'home' node will be selected. The 'home' node is either the one they began the simulation in or the one set by the MigrateIndividuals or MigrateFamily interventions. |
| Targeting_Config | JSON object | NA | NA | NA | Be more selective of individuals by using the Targeting_Config classes. See example. |
| Timesteps_Between_Repetitions | integer | -1 | 10000 | -1 | The number of time steps — not days — between repetitions. If the Simulation_Timestep is set to 30 days and Timesteps_Between_Repetitions is set to 4 then there will be 120 days between repetitions. |
{
"Use_Defaults": 1,
"Events": [
{
"class": "CampaignEvent",
"Start_Day": 0,
"Nodeset_Config": {
"class": "NodeSetNodeList",
"Node_List": [1, 2, 3]
},
"Event_Coordinator_Config": {
"class": "CoverageByNodeEventCoordinator",
"Target_Demographic": "Everyone",
"Number_Repetitions": 1,
"Coverage_By_Node": [
{
"Node_Id": 1,
"Coverage": 0.6
},
{
"Node_Id": 2,
"Coverage": 0.9
},
{
"Node_Id": 3,
"Coverage": 0.1
}
],
"Intervention_Config": {
"class": "SimpleVaccine",
"Vaccine_Type": "AcquisitionBlocking",
"Vaccine_Take": 1,
"Waning_Config": {
"class": "WaningEffectBox",
"Initial_Effect": 1,
"Box_Duration": 3650
}
}
}
}
]
}