Population Viability Analysis Desktop
- 1 Population Viability Analysis Desktop Model Review
- 2 Metapopulation Top-layer
- 3 Demographic Sublayer
- 4 Basic_PVA
Population Viability Analysis Desktop Model Review
Mathematical models play a central role in population management programs by enhancing conservation efforts through creating protected areas, improving security in those areas, and / or translocating individuals to bolster or reestablish populations in selected areas. At the core of the most comprehensive and successful of these models lies the Leslie matrix formulation, which incorporates population vital rates with sustainable management and population viability analysis (PVA).
The PVA Desktop model extends a traditional Leslie matrix to account for management (harvesting and stocking), population viability analysis, and movement between subpopulations. Thus, we are providing an extended PVA-based metapopulation model. Before harvesting, stocking, or transitions occur demographic rates (births, survival, aging) are calculated at the PVA sublayer within the model. Movement can occur with or without relative fitness.
This model is the desktop compliment of the NOVA Population Viability Analysis Online version.
How it works
Population vital rates are calculated at the Basic_PVA sublayer while harvesting (extracting individuals), stocking (adding individuals), and transitions between populations occur at the Demographic sublayer. Movement, occurring after demographic, harvesting, and stocking rates, is handled through a Markov transition matrix. This matrix determines movement of all individuals within each age class in each subpopulation with or without relative fitness. Each subpopulation is represented as a node within a network topology (NodeNetwork).
These provide the user an easy way to change values of variables within the model.
- Demographic Stochasticity: determines if the model uses demographic stochasticity or not. If this and Environmental Stochasticity are set to 0 (FALSE) the model will run in deterministic mode.
- Environmental Stochasticity in Recruitment: determines if the model uses environmental stochasticity or not. Environmental stochasticity occurs as randomness applied to the survival rates of male and female offspring. The range of stochastic rates are determined by the Min and Max sliders below. If this and Demographic Stochasticity are set to 0 (FALSE) the model will run in deterministic mode.
- Min/Max Environmental Stochasticity: if the Environmental Stochasticity switch is set to yes the range of stochastic values for offspring survival rates is chosen between the min and max values set by these sliders.
- Adult Male Pseudo-Extinction: this model contains a pseudo-extinction rule. Extinction will occur if / when the number of males per population gets as low (or lower) as the value set by this slider.
- Adult Female Pseudo-Extinction: this model contains a pseudo-extinction rule. Extinction will occur if / when the number of females per population gets as low (or lower) as the value set by this slider.
- Transitions?: determines if there will be transitions between populations or not.
- Is DD1 / DD2 / DD3: this model can include density dependence of the first age class of males and females (DD1), last age class of males and females (DD2), and / or mature males (DD3).
- Select Harvest of X: this model can incorporate selective harvesting at different age groups, including Young, Males, Females, and Mature Males. Young is the first age class of males and females.
- Female/Male Sex Ratio: this slider determines what percentage of individuals will be female. If set to 1.0, the model will be a single (female) sex model.
- Include Relative Fitness: if transitions (movements) occurs it can be based on the relative fitness of each population or not.
Each node, subpopulation, may have different population and movement values. Placing the various Tableau plug-ins at the top-level allows specific rows or columns to pass into the Demographic sublayer based on the index of each node.
- Connectance: Each population is connected to the other populations based on the values within the Connectance Tableau. The probability of moving between one population and another is the value of row i, column j. For example, the connection between population 3 to population 1 is the value at row 3 (4th row) and column 1 (2nd column).
- Random Harvest: The values within Random Harvest determine how many individuals will be removed from the population with each time increment. Values within this Tableau correspond to each population by row. These type of harvesting does not take into account age class. Individuals, regardless of age class, are removed randomly.
- Selective Harvesting Interval:
- Select Harvest by Class:
- Density Scaling: Scales, or weights, for the 3 DD variables [DD young, DD old, DD males]. These values are calculated within the DD_1, DD_2, and DD_3 terms in the PVA sublayer. Each column holds the values for a single population. The first row represents the weights for the DD_1 (young) terms. The second row is used for the DD_2 (old) terms. Finally, the third row is the values for the DD_3 (mature males) terms.
- Carrying Capacities: The carrying capacities for young, old, and mature males per subpopulation. Note: these values are only used if their respective is DDX sliders are turned on (1). Otherwise, these values are ignored in the model.
- Stocking Interval: The rate of stocking varies for each population. Stocking is the opposite of Harvesting - adding individuals back to the population at a time interval determined by the value within this Tableau.
- Stocking by Class: Depending on stocking interval, individuals will be stocked (add to) each age class based on these values.
- Propensity to Move by Class: These values correspond to the propensity for individuals within each age class to move.
- Relative Bio Weights by Class: Age classes have various weights when used to calculate a population's overall biomass.
- Initial Values: Passed into the Populations NodeNetwork to provide the PVA sublayer the initial values for each subpopulation. These values are passed into the Female_Pop and Male_Pop Cascade plug-ins.
- Survival Rates: This Tableau has the survival rates for each age class (including offspring) per subpopulation.
- Birth Rates: This Tableau has the birth rates from each adult female age class per subpopulation.
NodeNetwork: This model uses a NodeNetwork as the core structure of the top-level. NodeNetworks are an aggregating component that create a network (mathematical graph) topology in which its members are nodes. In this case, each node is a subpopulation.
- Populations: Calls between 1 and 6 populations, or nodes. Each population has the behavior determined by the Demographic sublayer (which also contains the Basic_PVA sublayer). Connections between the populations are the values within the Connectance Tableau plug-in.
NetViewer: This plug-in is used to visualize a network - like the NodeNetwork.
- pop_viewer: Visualizes the population size of each node within the Populations NodeNetwork.
The Populations NodeNetwork establishes the connectivity and structure of the subpopulations within the model. NodeNetworks provide a network topology where its members, called nodes, live. In this case, each node is a subpopulation with behavior defined by the Demographic and Basic_PVA sublayers (defined below).
Each node has the same set of properties determined by the Capsule set in the Initializer property of Populations. In this model we use the Demographic Capsule, thus each node is an instance of the Demographic, and thus Basic_PVA (since Basic_PVA is a Capsule within Demographic), sublayers. Additionally, the Connector property is set to nconnect, a variable defined in the Programming Pane at the top left corner of Nova. This variable returns the value of the i row and j columns of Connectance with respect to the current node in the Populations NodeNetwork. The Connectance Tableau is a matrix that contains the probability of connection between the nodes.
This model also allows for any number of subpopulations from 1 to 6. The number of subpopulations are determined in the Counts property of Populations. If set to 1 then there are no transitions by default. The number of subpopulations will appear in the pop_viewer.
A NetViewer plugin can be used to examine properties of the nodes within a NodeNetwork. In this case our nodes are the subpopulations. The sizes of each node, as is clear in the Nova Canvas, are proportional to output of Populations.
We can see a visual representation of each subpopulation size within the Dashboard view of the pop_viewer NetViewer plugin. As stated above, the number of subpopulations that appear in the NetViewer is determined by the value of Counts set in the properties of Populations.
Transitions are determined by multiple CodeChips at the Demographic sublayer. The trans_in and trans_out CodeChips are responsible for bringing the moving individuals into and / or out of the current population. Those that are moving are determined by multiple algorithms and CodeChips.
Movement can occur with or without relative fitness. Movement occurs through a multinomial transitional matrix (stored in the moveX terms) that handles age class and region based propensity for transitions between subpopulations.
The key components of the multinomial approach to movement in this model are the transClass array, destination term, and the trans_in and trans_out CodeChips. The transClass array contains all of the individuals that may move in the current node. Likewise, the destination term is the index of the node that transClass will go to. Finally, the trans_in and trans_out CodeChips perform the movement calculations on the current and neighboring nodes.
- Carrying Capacities: Each population, expressed as columns, has three carrying capacity values, expressed as rows. The first row represents the carrying capacity for males and females in the first age class (young). The second row represents the carrying capacity for males and females in the last age class (old). Finally, the third row represents the carrying capacity for mature males (MatureMale term at the Basic_PVA sublayer).
- Stocking by Class: Depending on the values in Stocking Interval, individuals will be stocked (added to) each age class based on the values in this Tableau.
- Select Harvest by Class: Depending on the values in Select Harvest Interval, individuals will be harvested (removed) from each age class based on the values in this Tableau.
- Propensity to Move by Class: The propensity of each age class to move is determined by this Tableau.
Each subpopulation (or node) contains DD and Tot terms. DD contains three measures of density dependence through carrying capacities of young (first age class of females and males), old (last age class of females and males), and mature males (all males except young, old, and the first two adult male age classes). In this model we measure the Attractivity (alpha) value of a subpopulation based on its young carrying capacity value (DD). Each subpopulation also has a Connectivity (C) value. The fitness CodeChip finds a fitness level for each subpopulation from the current one by multiplying the alpha and C values as long as the total (Tot) number of individuals is greater than 0.
However, if Include Relative Fitness is set off then all fitness values are set to 1. Thus, no relative fitness.
Next we sum the values of fitness to each subpopulation from the current one, after calculating them in the fitness CodeChip (described above). The only value of fitness excluded is the fitness level to the current subpopulation. This excluded value is when a transitioning individual returns to its originating subpopulation.
This CodeChip determines the distribution of individuals from the current node into each of the six subpopulations for the next time increment. The three values of importance in determining probabilities of transitioning to each location are age-sex class propensity (q), Connectivity to each subpopulation (C), and Attractivity of each subpopulation (alpha). Age-sex class propensity is represented as the variable pro from the Propensity to Move by Class Tableau. The C and alpha values for moving into each subpopulation are passed into this CodeChip as the fitness variable from the fitness CodeChip. Additionally, we calculate a total fitness level of moving into all of the subpopulations, except the current one, recorded in the sumFit variable from the sumFit CodeChip.
These three variables (pro, fitness, and sumFit) are used to calculate an overall fit value for each age-sex class within each subpopulation. In other words, this means that the fit values are the probabilities of individuals within each age class to move into each of the six subpopulations, including their originating one. Lastly, the move variable contains a multinomial distribution of where each of the individuals within each age class will go, based on the probabilities from the fit array.
bucketsAs can be seen in the pool CodeChip, the distribution of individuals from the current age class is held within six different buckets, one for each subpopulation. The buckets are the
The actual movement of these individuals to and from each subpopulation is done through the trans_in and trans_out CodeChips. Each of these CodeChips takes in the neighboring nodes (based on their Connectivity) of the current subpopulation and determines which subpopulation, if any, individuals could physically move into. Then these CodeChips move the individuals from each of the move terms.
Note: Individuals may end in their originating subpopulation. This could represent those individuals who either did not leave their originating subpopulation in the first place or went on a walk-about and returned after sampling the attractivity of the other populations.
This CodeChip calculates the net change in individuals within each age class. This is calculated after each of the buckets are moved into and out of the current node through the trans_in and trans_out CodeChips, respectively. The net change in movement is passed to the transitions CodeChip, which processes the change and sends the results to the trans term within the PVA sublayer. Note: this occurs after demographic, harvesting, and stocking rates have been accounted for in each subpopulation.
Movements, Harvesting, & Stocking
This sublayer also handles the influence of harvesting and stocking on each subpopulation. Harvesting is the number of individuals removed from the population every time increment, determined by the random and selective Harvest Tableaus at the top-level. On the other hand, stocking is the number of individuals added to the population every time increment. The individuals added to each age class within a population array are determined by the Stocking Tableau at a rate determined by the Stocking Interval Tableau. With each time increment, transitions are calculated after harvesting and stocking values have been added or subtracted. The three CodeChips harvesting_cc_1, stocking_cc_1, and transitions_cc_1 add or subtract their respective values from the age class structure of the subpopulation. These changes in values are captured with the Y array (which is passed to the trans term in the Basic_PVA sublayer).
- Biomass: The biomass of each subpopulation is calculated as the sum of the number of individuals per age class multiplied by respective weights from the Relative Bio Weights by Class Tableau.
- Survival: The survival rates for each age class.
- Birth: The birth rates for each age class.
Cascades: These plug-ins act like a series of Flows and Stocks, except the Cascades take CodeChip and array inputs. The algorithms in the CodeChip inputs act like the Flows and the elements within the input arrays act like the Stocks.
- Female_Pop: This Cascade calculates the values of the female age classes within the population.
- Male_Pop: This Cascade calculates the values of the male age classes within the population.
CodeChips: These CodeChips are used as inputs to the Cascades - these are the algorithms that are Flow-like.
- fconv_1: This CodeChip is the algorithm that acts like the Flows for the female age classes.
- mconv_1: This CodeChip is the algorithm that acts like the Flows for the male age classes.
Terms: Terms at the PVA sublayer are used to calculate the number of individuals within each age class.
- Male0: Number of first age class males.
- Female0: Number of first age class females.
- MatureMale: Number of mature males in the population. These are male age classes 3 to 7 (out of 0 to 8).
- MatureFem: Number of mature females in the population. These are female age classes 3 to 7 (out of 0 to 8).
- AdultMale: Number of adult males in the population. All males except age class 0.
- AdultFem: Number of adult females in the population. All females except age class 0.
- totMale: Number of all males in the population (age classes 0 to 8).
- totFem: Nummber of all females in the population (age classes 0 to 8).
- youngDD This term calculates the Density Dependence for young (male and female age class 0) in the population.
- oldDD This term calculates the Density Dependence for old (male and female age class 8) in the population.
- mmDD This term calculates the Density Dependence for mature males (male age classes 3 to 7) in the population.
- OK This term determines if the population is viable (i.e. OK).
The three core components of the population viability analysis (PVA) within this model are the initial values, birth rates, and survival rates for each age-sex class. These values and rates are set at the top-level from the initial_values, birth, and survival Tableau plugins and calculated within the Basic_PVA sublayer. The The init_values_cc, birth_cc, and survive_cc CodeChips distribute the values and rates to various terms in order to calculate the number of individuals within each age class for the next time increment.
There are three density dependence values that affect the number of individuals within each age class. DD_1 is the density dependence value for young (the first male and first female age-sex class) and is calculated based on the first row of both the Density Scaling (top-level) and the DDs (Demographic sublayer) Tableau plugins. Likewise, the second row of each represents the values for DD_2 - density dependence value for old (the last male and last female age-sex class). Lastly, the third row has the values for DD_3 - density dependence of mature males. The columns of these Tableau plugins correspond to the different subpopulations. For example, the first column of each Tableau plugin has the values for the first subpopulation.
Many of the parameters calculated within the PVA level include a test of stochasticity. Stochasticity can be calculated either as demographic (small population size effects) or environmental (driving variable fluctuations drawn from climatic variable distributions). If the demographic and environmental sliders (from the top-level) are set to 1 (or TRUE) then demographic and environmental stochasticity parameters will be included in the calculations. The model will run in deterministic mode if neither are set to 1.
Female and Male Cascades
A notable feature of this Basic_PVA sublayer is the use of the Female_Pop and Male_Pop Cascade plugins. Similar to the rest of the parameters in the PVA level, these Cascades can run with either stochastic or deterministic parameters. In this model we use the mconv and fconv CodeChips as the converter functions for Male_Pop and Female_Pop, respectively.
An example of using the Cascade plug-in can be found here.
This model uses a pseudo-extinction protocol that sets the population to zero whenever there are fewer than some specified number of adult males and / or females. The Adult Male Pseudo-Extinction and Adult Fem Pseudo-Extinction sliders set these thresholds. This condition is checked for in the OK term at the PVA level. OK will be set to 1 (TRUE) if the pseudo-extinction is not met. Once this condition is met (i.e. there are fewer adult males than the value of Adult Male Pseudo-Extinction or there are fewer adult females than the value of Adult Fem Pseudo-Extinction) OK is set to 0.