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

The Rhino Metapopulation model uses a Leslie matrix to account for management (harvesting and stocking) and population viability analysis (PVA) as well as movement between subpopulations. Demographic rates (births, survival, aging) are calculated at the PVA level, before harvesting, stocking, and movement. Movement can occur in three ways, constant, proportional, and through a multinomial distribution. Proportional movement is based on a rate of the number of Rhinos within each age-sex class while the multinomial distribution takes the relative fitness of each location into account.

## How it works

Population vital rates are calculated at the Rhino_PVA sublayer while harvesting (extracting individuals), stocking (adding individuals), and transitions between populations occur at the Rhino_trans sublayer. Movement, occurring after demographic, harvesting, and stocking rates, is handled using one of three methods. The methods are determined by the value in the movement slider and are constant, proportional, or a Markov transition matrix. Initial values and rates can be manipulated through the various Tableau plug-ins in the Dashboard at the top-level. 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 Rhino_trans 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).
Movement from row to column
• Random Harvest: The values within Random Harvest determine how many Rhinos 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 Rhinos) terms. The second row is used for the DD_2 (old Rhinos) terms. Finally, the third row is the values for the DD_3 (mature male Rhinos) terms.
Each column is passed to a single node
• Carrying Capacities: The carrying capacities for young, old, and mature male Rhinos 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.

# Top-Level

## 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 Rhino_trans sublayer (which also contains the 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.
Visual of 6 nodes within a 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 Rhino_trans and Rhino_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 Rhino_trans Capsule, thus each node is an instance of the Rhino_trans, and thus Rhino_PVA (since Rhino_PVA is a Capsule within Rhino_trans), 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.

Dashboard view of Connectance matrix

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

Canvas view of pop_viewer

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.

Dashboard view of pop_viewer

# Rhino_trans

## Overview

Transitions are determined by multiple CodeChips at the Rhino_trans 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.

There are three possible types of movement that can be used in this model. These types are determined by the movement slider at the top level. If movement is set to 0, constant transitions apply. If set to 1, proportional (based on a ratio of the rate slider) transitions apply. If set to 2, a multinomial approach to transitions apply.

The key components of the multinomial approach to movement in this model are the moveClass array, destination term, and the trans_in and trans_out CodeChips. The moveClass array contains all of the individuals that may move in the current node. Likewise, the destination term is the index of the node that moveClass 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 male and female Rhinos in the first age class (young). The second row represents the carrying capacity for male and female Rhinos in the last age class (old). Finally, the third row represents the carrying capacity for mature males (MatureMale term at the 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 Rhinos (first age class of females and males), old Rhinos (last age class of females and males), and mature male Rhinos (all males except young Rhinos). In this model we measure the Attractivity (alpha) value of a subpopulation based on its young Rhino 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 Rhinos is greater than 0.

### 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 Rhinos returns to its originating subpopulation.

### pool

This CodeChip determines the distribution of Rhinos 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 Rhinos within each age-sex 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 Rhinos within each age-sex class will go, based on the probabilities from the fit array.

### buckets

As can be seen in the pool CodeChip, the distribution of Rhinos from the current age-sex 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 Rhinos within the current population are displaced over the six subpopulations in this model. Each moveX term holds the number of Rhinos for each age-sex 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, Rhinos could physically move into. Then these CodeChips move the Rhinos from each of the move terms.

Note: Rhinos 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 Rhinos within each age-sex 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 individual Rhinos removed from the population every time increment, determined by the Harvest Tableau at the top-level. On the other hand, stocking is the number of individual Rhinos 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 rate 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-sex class structure of the subpopulation. These changes in values are captured with the Y array (which is passed to the trans term in the PVA sublayer).

# PVA

## Biomass per Population

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

## Sublayer Components

• 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 Rhinos (male and female age class 0) in the population.
• oldDD This term calculates the Density Dependence for old Rhinos (male and female age class 8) in the population.
• mmDD This term calculates the Density Dependence for mature male Rhinos (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 Rhino_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 Rhinos within each age-sex class for the next time increment.

There are three density dependence values that affect the number of Rhinos within each age-sex class. DD_1 is the density dependence value for young Rhinos (the first male and first female age-sex class) and is calculated based on the first row of both the cscalers (top-level) and the DDs (Rhino_trans sublayer) Tableau plugins. Likewise, the second row of each represents the values for DD_2 - density dependence value for old Rhinos (the last male and last female age-sex class). Lastly, the third row has the values for DD_3 - density dependence of male Rhinos. 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. Stochastticity 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.