Changing serialized demographics parameters

Not every parameter can be changed after the creation of serialized files. The following overview is intended as high-level guidance for what changes can and cannot be made.

Population-level parameters

Cannot be changed

  • Age_Initialization_Distribution_Type

  • Birth_Rate_Boxcar_Forcing

  • Birth_Rate_Dependence

  • Birth_Rate_Time_Dependence

  • Birth_Rate_Sinusoidal

  • Death_Rate_Dependence

  • Enable_Birth

  • Enable_Demographics_Birth

  • Enable_Demographics_Risk

  • Enable_Initial_Prevalence

  • Enable_Natural_Mortality

  • Enable_Vital_Dynamics

  • Population_Scale_Type

  • x_Base_Population

  • x_Birth

  • x_Other_Mortality

Can be changed

  • Enable_Disease_Mortality

NodeAttributes

Cannot be changed

  • InitialPopulation

  • InitialVectorsPerSpecies

Can be changed

  • Altitude

  • BirthRate

  • Latitude

  • Longitude

  • NodePropertyValues

  • Airport

  • Region

  • Seaport

  • LarvalHabitatMultiplier This is read but not used unless you are getting the habitat from the configuration file.

IndividualAttributes

Cannot be changed

  • AgeDistributionFlag, AgeDistribution1, AgeDistribution2

  • SusceptibilityDistributionFlag, SusceptibilityDistribution1, SusceptibilityDistribution2

  • PrevalenceDistributionFlag, PrevalenceDistribution1, PrevalenceDistribution2

Can be changed (with dependencies)

  • FertilityDistribution: If Birth_Rate_Dependence was serialized with the value INDIVIDUAL_PREGNANCIES_BY_AGE_AND_YEAR, then you can change this distribution.

  • MigrationHeterogeneityDistributionFlag, MigrationHeterogeneityDistribution1, MigrationHeterogeneityDistribution2: These values can be can be changed if Enable_Migration_Heterogeneity is set to 1 in config.json and Enable_Demographics_Birth was serialized true/on. Existing individuals will get new migration modifiers. For newborns to get it Enable_Demographics_Birth needed to be serialized with a value of 1.

  • MortalityDistributionFlag, MortalityDistribution1, MortalityDistribution2: These can be changed if Enable_Natural_Mortality was serialized as true/on. Which distribution is used depends on the serialized value of Death_Rate_Dependence.

  • RiskDistributionFlag, RiskDistribution1, RiskDistribution2: These can be changed if Enable_Demographics_Risk & Enable_Demographics_Birth were serialized as true/on. However, it will only impact newborns. If you had serialized Enable_Demographics_Risk and not Enable_Demographics_Birth, these parameters will do nothing.

IndividualProperties

Cannot be changed

  • Remove value from existing key You cannot remove an existing value from a key if the population that has been serialized has this value.

Can be changed

  • Add new value to existing key

  • Change Initial_Distribution You can change the Initial_Distribution if you just want to change the likelihood that a newborn will have a specific IndividualProperties value. It will not impact the how the IndividualProperties values are distributed in the population that is serialized.

Special cases

  • Add/Remove IP/Key Some may be changed, but it is not recommended. It is best practices to not add or remove IndividualProperties values unless you also update the serialized file. However, if you remove a value and do not ever reference it in the simulation that is running from the serialized file, the simulation may run without errors. If you add values and don’t add them to the people in the serialized file, then you should not reference it until all the people that came from the serialized file have died.