MigrateIndividuals¶
The MigrateIndividuals intervention class is an individuallevel intervention used to force migration and is separate from the normal migration system. However, it does require that human migration is enabled by setting the configuration parameters Migration_Model to FIXED_RATE_MIGRATION and Migration_Pattern to SINGLE_ROUND_TRIP.
As individuals migrate, there are three ways to categorize nodes:
Home: the node where the individuals reside; each individual has a single home node.
Origin: the “starting point” node for each leg of the migration. The origin updates as individuals move between nodes.
Destination: the node the individual is traveling to. The destination updates as individuals move between nodes.
For example, Individual 1 has a home node of Node A. They migrate from Node A to Node B. Node A is both the home node and the origin node, and Node B is the destination node. If Individual 1 migrates from Node B to Node C, Node A remains the home node, but now Node B is the origin node, and Node C is the destination node. If Individual 1 migrates from Node C back to Node A, Node C is the origin node, and Node A becomes the destination node and still remains the home node.
Note
Parameters are casesensitive. 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 
Data type 
Minimum 
Maximum 
Default 
Description 
Example 

Disqualifying_Properties 
array of strings 
NA 
NA 
[] 
A list of IndividualProperty key:value pairs that cause an intervention to be aborted (persistent interventions will stop being distributed to individuals with these values). See NodeProperties and IndividualProperties parameters for more information. Generally used to control the flow of health care access. For example, to prevent the same individual from accessing health care via two different routes at the same time. 
{
"Disqualifying_Properties": [
"InterventionStatus:LostForever"
]
}

Dont_Allow_Duplicates 
boolean 
NA 
NA 
0 
If an individual’s container has an intervention, set to true (1) to prevent them from receiving another copy of the intervention. Supported by all intervention classes. 
{
"Dont_Allow_Duplicates": 0
}

Duration_At_Node_Constant 
float 
0 
3.40282E+38 
1 
The duration at the destination node to use for all individuals, in days, when Duration_At_Node_Distribution is set to CONSTANT_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "CONSTANT_DISTRIBUTION",
"Duration_At_Node_Constant": 8
}

Duration_At_Node_Distribution 
enum 
NA 
NA 
NOT_INITIALIZED 
The distribution type to use for assigning the duration of time an individual or family spends at a destination node after interventionbased migration. Each assigned value is a random draw from the distribution. Possible values are:

{
"Duration_At_Node_Distribution": "WEIBULL_DISTRIBUTION",
"Duration_At_Node_Kappa": 0.9,
"Duration_At_Node_Lambda": 1.5
}

Duration_At_Node_Exponential 
float 
0 
3.40282E+38 
1 
The mean of the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to EXPONENTIAL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "EXPONENTIAL_DISTRIBUTION",
"Duration_At_Node_Exponential": 4.25
}

Duration_At_Node_Gaussian_Mean 
float 
0 
3.40282E+38 
1 
The mean of the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to GAUSSIAN_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "GAUSSIAN_DISTRIBUTION",
"Duration_At_Node_Gaussian_Mean": 8,
"Duration_At_Node_Gaussian_Std_Dev": 1.5
}

Duration_At_Node_Gaussian_Std_Dev 
float 
1.17549E38 
3.40282E+38 
1 
The standard deviation of the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to GAUSSIAN_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "GAUSSIAN_DISTRIBUTION",
"Duration_At_Node_Gaussian_Mean": 8,
"Duration_At_Node_Gaussian_Std_Dev": 1.5
}

Duration_At_Node_Kappa 
float 
1.17549E38 
3.40282E+38 
1 
The shape value for the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to WEIBULL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "WEIBULL_DISTRIBUTION",
"Duration_At_Node_Kappa": 0.9,
"Duration_At_Node_Lambda": 1.5
}

Duration_At_Node_Lambda 
float 
1.17549E38 
3.40282E+38 
1 
The scale value for the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to WEIBULL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "WEIBULL_DISTRIBUTION",
"Duration_At_Node_Kappa": 0.9,
"Duration_At_Node_Lambda": 1.5
}

Duration_At_Node_Log_Normal_Mu 
float 
3.40282e+38 
1.70141e+38 
3.40282E+38 
The mean of the natural log of the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to LOG_NORMAL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "LOG_NORMAL_DISTRIBUTION",
"Duration_At_Node_Log_Normal_Mu": 9,
"Duration_At_Node_Log_Normal_Sigma": 2
}

Duration_At_Node_Log_Normal_Sigma 
float 
3.40282e+38 
1.70141e+38 
3.40282E+38 
The standard deviation of the natural log of the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to LOG_NORMAL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "LOG_NORMAL_DISTRIBUTION",
"Duration_At_Node_Log_Normal_Mu": 9,
"Duration_At_Node_Log_Normal_Sigma": 2
}

Duration_At_Node_Max 
float 
0 
3.40282E+38 
1 
The maximum duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to UNIFORM_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "UNIFORM_DISTRIBUTION",
"Duration_At_Node_Min": 2,
"Duration_At_Node_Max": 7
}

Duration_At_Node_Mean_1 
float 
1.17549E38 
3.40282E+38 
1 
The mean of the first exponential distribution, in days, when Duration_At_Node_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Duration_At_Node_Mean_1": 4,
"Duration_At_Node_Mean_2": 12,
"Duration_At_Node_Proportion_1": 0.2
}

Duration_At_Node_Mean_2 
float 
1.17549E38 
3.40282E+38 
1 
The mean of the second exponential distribution, in days, when Duration_At_Node_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Duration_At_Node_Mean_1": 4,
"Duration_At_Node_Mean_2": 12,
"Duration_At_Node_Proportion_1": 0.2
}

Duration_At_Node_Min 
float 
0 
3.40282E+38 
1 
The minimum duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to UNIFORM_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "UNIFORM_DISTRIBUTION",
"Duration_At_Node_Min": 2,
"Duration_At_Node_Max": 7
}

Duration_At_Node_Peak_2_Value 
float 
0 
3.40282E+38 
1 
The duration at the destination node value, in days, to assign to the remaining individuals when Duration_At_Node_Distribution is set to DUAL_CONSTANT_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
"Duration_At_Node_Proportion_0": 0.25,
"Duration_At_Node_Peak_2_Value": 5
}

Duration_At_Node_Poisson_Mean 
float 
0 
3.40282E+38 
1 
The mean of the duration at the destination node after migration, in days, when Duration_At_Node_Distribution is set to POISSON_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "POISSON_DISTRIBUTION",
"Duration_At_Node_Poisson_Mean": 5
}

Duration_At_Node_Proportion_0 
float 
0 
1 
1 
The proportion of individuals to assign a value of zero days at the destination node when Duration_At_Node_Distribution is set to DUAL_CONSTANT_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
"Duration_At_Node_Proportion_0": 0.25,
"Duration_At_Node_Peak_2_Value": 5
}

Duration_At_Node_Proportion_1 
float 
0 
1 
1 
The proportion of individuals in the first exponential distribution when Duration_At_Node_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Duration_At_Node_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Duration_At_Node_Mean_1": 4,
"Duration_At_Node_Mean_2": 12,
"Duration_At_Node_Proportion_1": 0.2
}

Duration_Before_Leaving_Constant 
float 
0 
3.40282E+38 
1 
The duration before leaving the origin node to use for every individual, in days, when Duration_Before_Leaving_Distribution is set to CONSTANT_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "CONSTANT_DISTRIBUTION",
"Duration_Before_Leaving_Constant": 8
}

Duration_Before_Leaving_Distribution 
enum 
NA 
NA 
NOT_INITIALIZED 
The distribution type to use for assigning the duration of time an individual or family waits before migrating to the destination node after interventionbased migration. Each assigned value is a random draw from the distribution. Possible values are:

{
"Duration_Before_Leaving_Distribution": "UNIFORM_DISTRIBUTION",
"Duration_Before_Leaving_Min": 2,
"Duration_Before_Leaving_Max": 7
}

Duration_Before_Leaving_Exponential 
float 
0 
3.40282E+38 
1 
The mean of the duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to EXPONENTIAL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "EXPONENTIAL_DISTRIBUTION",
"Duration_Before_Leaving_Exponential": 4.25
}

Duration_Before_Leaving_Gaussian_Mean 
float 
0 
3.40282E+38 
1 
The mean of the duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to GAUSSIAN_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "GAUSSIAN_DISTRIBUTION",
"Duration_Before_Leaving_Gaussian_Mean": 8,
"Duration_Before_Leaving_Gaussian_Std_Dev": 1.5
}

Duration_Before_Leaving_Gaussian_Std_Dev 
float 
1.17549E38 
3.40282E+38 
1 
The standard deviation of the duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to GAUSSIAN_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "GAUSSIAN_DISTRIBUTION",
"Duration_Before_Leaving_Gaussian_Mean": 8,
"Duration_Before_Leaving_Gaussian_Std_Dev": 1.5
}

Duration_Before_Leaving_Kappa 
float 
1.17549E38 
3.40282E+38 
1 
The shape value for the duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to WEIBULL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "WEIBULL_DISTRIBUTION",
"Duration_Before_Leaving_Kappa": 0.9,
"Duration_Before_Leaving_Lambda": 1.5
}

Duration_Before_Leaving_Lambda 
float 
1.17549E38 
3.40282E+38 
1 
The scale value for the duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to WEIBULL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "WEIBULL_DISTRIBUTION",
"Duration_Before_Leaving_Kappa": 0.9,
"Duration_Before_Leaving_Lambda": 1.5
}

Duration_Before_Leaving_Log_Normal_Mu 
float 
3.40282e+38 
1.70141e+38 
3.40282E+38 
The mean of the natural log of the duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to LOG_NORMAL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "LOG_NORMAL_DISTRIBUTION",
"Duration_Before_Leaving_Log_Normal_Mu": 9,
"Duration_Before_Leaving_Log_Normal_Sigma": 2
}

Duration_Before_Leaving_Log_Normal_Sigma 
float 
3.40282e+38 
1.70141e+38 
3.40282E+38 
The standard deviation of the natural log of the duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to LOG_NORMAL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "LOG_NORMAL_DISTRIBUTION",
"Duration_Before_Leaving_Log_Normal_Mu": 9,
"Duration_Before_Leaving_Log_Normal_Sigma": 2
}

Duration_Before_Leaving_Max 
float 
0 
3.40282E+38 
1 
The maximum duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to UNIFORM_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "UNIFORM_DISTRIBUTION",
"Duration_Before_Leaving_Min": 2,
"Duration_Before_Leaving_Max": 7
}

Duration_Before_Leaving_Mean_1 
float 
1.17549E38 
3.40282E+38 
1 
The mean of the first exponential distribution, in days, when Duration_Before_Leaving_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Duration_Before_Leaving_Mean_1": 4,
"Duration_Before_Leaving_Mean_2": 12,
"Duration_Before_Leaving_Proportion_1": 0.2
}

Duration_Before_Leaving_Mean_2 
float 
1.17549E38 
3.40282E+38 
1 
The mean of the second exponential distribution, in days, when Duration_Before_Leaving_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Duration_Before_Leaving_Mean_1": 4,
"Duration_Before_Leaving_Mean_2": 12,
"Duration_Before_Leaving_Proportion_1": 0.2
}

Duration_Before_Leaving_Min 
float 
0 
3.40282E+38 
1 
The minimum duration before leaving the origin node, in days, when Duration_Before_Leaving_Distribution is set to UNIFORM_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "UNIFORM_DISTRIBUTION",
"Duration_Before_Leaving_Min": 2,
"Duration_Before_Leaving_Max": 7
}

Duration_Before_Leaving_Peak_2_Value 
float 
0 
3.40282E+38 
1 
The duration before leaving the origin node, in days, to assign to the remaining individuals when Duration_Before_Leaving_Distribution is set to DUAL_CONSTANT_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
"Duration_Before_Leaving_Proportion_0": 0.25,
"Duration_Before_Leaving_Peak_2_Value": 5
}

Duration_Before_Leaving_Poisson_Mean 
float 
0 
3.40282E+38 
1 
The mean of the duration before leaving the origin node, in days, when Duration_Before_Leaving is set to POISSON_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "POISSON_DISTRIBUTION",
"Duration_Before_Leaving_Poisson_Mean": 5
}

Duration_Before_Leaving_Proportion_0 
float 
0 
1 
1 
The proportion of individuals to assign a value of zero days before leaving the origin node when Duration_Before_Leaving_Distribution is set to DUAL_CONSTANT_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "DUAL_CONSTANT_DISTRIBUTION",
"Duration_Before_Leaving_Proportion_0": 0.25,
"Duration_Before_Leaving_Peak_2_Value": 5
}

Duration_Before_Leaving_Proportion_1 
float 
0 
1 
1 
The proportion of individuals in the first exponential distribution when Duration_Before_Leaving_Distribution is set to DUAL_EXPONENTIAL_DISTRIBUTION. 
{
"Duration_Before_Leaving_Distribution": "DUAL_EXPONENTIAL_DISTRIBUTION",
"Duration_Before_Leaving_Mean_1": 4,
"Duration_Before_Leaving_Mean_2": 12,
"Duration_Before_Leaving_Proportion_1": 0.2
}

Intervention_Name 
string 
NA 
NA 
NA 
The optional name used to refer to this intervention as a means to differentiate it from others that use the same class. 
{
"Intervention_Config": {
"class": "MigrateIndividuals",
"Intervention_Name": "Seasonal migration for agriculture"
}
}

Is_Moving 
boolean 
NA 
NA 
0 
Set to true (1) to indicate the individual is permanently moving to a new home node for interventionbased migration. Once at the new home node, the person will be available for new round trips. 
{
"Is_Moving": 1
}

New_Property_Value 
string 
NA 
NA 
NA 
An optional IndividualProperty key:value pair that will be assigned when the intervention is distributed. See NodeProperties and IndividualProperties parameters for more information. Generally used to indicate the broad category of health care cascade to which an intervention belongs to prevent individuals from accessing care through multiple pathways. For example, if an individual must already be taking a particular medication to be prescribed a new one. 
{
"New_Property_Value": "InterventionStatus:None"
}

NodeID_To_Migrate_To 
integer 
0 
4.29E+09 
0 
The destination node ID for interventionbased migration. 
{
"NodeID_To_Migrate_To": 26
}

{
"Use_Defaults": 1,
"Events": [
{
"class": "CampaignEvent",
"Start_Day": 5,
"Nodeset_Config": {
"class": "NodeSetNodeList",
"Node_List": [
1
]
},
"Event_Coordinator_Config": {
"class": "StandardInterventionDistributionEventCoordinator",
"Target_Residents_Only": 1,
"Target_Demographic": "Everyone",
"Demographic_Coverage": 1.0,
"Intervention_Config": {
"class": "MigrateIndividuals",
"NodeID_To_Migrate_To": 2,
"Duration_Before_Leaving_Distribution": "CONSTANT_DISTRIBUTION",
"Duration_At_Node_Distribution": "CONSTANT_DISTRIBUTION",
"Is_Moving": 0,
"Duration_Before_Leaving_Constant": 0,
"Duration_At_Node_Constant": 999
}
}
}
]
}