# Population Viability Analysis Desktop

## Contents

# Population Viability Analysis Desktop Model Review

## Overview

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).

## Sliders

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.

## Tableaus

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.

# Metapopulation Top-layer

## Sublayer Components

**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.

## 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**.

## 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.

# Demographic Sublayer

## Overview

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.

## Sublayer Components

**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.

## Multinomial Movement

### fitness

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[0]**). 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.

### sumFit

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.

### pool

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.

### buckets

As 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 terms (from their respective variables within the pool CodeChip)

**move0**to

**move5**. In other words, the individuals within the current population are displaced over the six subpopulations in this model. Each

**moveX**term holds the number of individuals for each age class that will move into that respective subpopulation.

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.

### trans_net

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).

# Basic_PVA

## Sublayer Components

**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).

## Population Properties

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.

## Pseudo-extinction

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.