- 1 UNDER CONSTRUCTION: Rhino Model Review
- 2 Top-Level
- 3 Rhino_trans
- 4 PVA
UNDER CONSTRUCTION: Rhino 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.
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.
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.
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. 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).
- 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.
- Stocking_Rate: The rate of stocking varies for each population. Stocking is the opposite of Harvesting - adding individuals back to the population at a rate determined by the value within this Tableau.
- cscalers: 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 (male Rhinos) terms.
- 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.
- DDs: Each population, expressed as columns, has three Density Dependent (DD) values, expressed as rows. The first row in the DDs Tableau represents the DD value for male and female Rhinos in the first age class (young). The second row represents the DD value for male and female Rhinos in the last age class (old). Finally, the third row represents the DD value for mature males (MatureMale term at the PVA sublayer).
- mscalers: There are three parameters affecting the transition of individuals between populations: 1. Connectance between the populations (nodes), 2. each age class's probability of moving (pclass), and 3. the relative fitness, represented by DD, of each population. These three variables accumulate to provide an overall probability of moving for each age class within each population. Each variable is scaled by their respective elements of mscalers. The first element scales, or weights, the importance of Connectance. The second scales the importance of class probability (pclass). Lastly, the third scales the importance of relative fitness (DD).
- stock: This model has a stocking parameter. There is a rate of stocking individuals to each population based on a Tableau at the top-level. The numbers of individuals that will be stocked, or added to the population, is determined by the stock Tableau here. This Tableau shows the individuals that are added to the each age class in the population.
- pclass: The probability of each age class to move is determined by this Tableau.
Tableaus: At the PVA level Tableaus pass the same values to each node.
- 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 array 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 mating males in the population.
- MatureFem: Number of mating females in the population.
- DD_1 This term calculates the Density Dependence for young Rhinos in the population.
- DD_2 This term calculates the Density Dependence for old Rhinos in the population.
- DD_3 This term calculates the Density Dependence for male Rhinos in the population.
- OK This term determines if the population is viable (i.e. OK).
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).
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.
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.
This model uses three different biomass terms. They correspond to the first age class for males and females (Young Rhinos), the last age class for males and females (Old Rhinos), and all male age classes, except the youngest (MatureMales). All of the biomass terms are calculated within the Rhino_PVA sublayer.
- Young Rhinos: The first biomass term corresponds to the youngest age classes of the male and female Rhinos. This term corresponds to DD_1, the density-dependence function for the youngest age-sex classes.
- Old Rhinos: The second biomass term corresponds to the oldest age classes of the male and female Rhinos. This term corresponds to DD_2, the density-dependence function for the oldest age-sex classes.
- MatureMales: The third biomass term corresponds to the mature males. This is all of the male age classes except the first one (youngest). This term corresponds to DD_3, the density-dependence function for the mature male age classes.
The controls at the top-level can change the model to use various forms of movement, sex ratio, and stochasticity.
- FSexRatio: This parameter determines the ratio of females in the population. The remaining ratio (1 - FSexRatio value) will be the males in the model.
- is_DD: We can choose to have density-dependence on or off. There are three possible types of density-dependence that can be used in the model.
- is_DD_1, is_DD_2, is_DD_3: These parameters determine if each of the three density-dependence values are on or off. DD_1 corresponds to the youngest age class of males and females. DD_2 corresponds to the oldest age class of males and females. DD_3 corresponds to the mature males in the population (male age classes except the youngest). Each density-dependence value can be turned on or off independent of the others.
- is_trans: This parameters determines if the model will have transitions between the subpopulations. If there is only one population, Counts = 1 in the Populations properties window, then this value will be ignored.
- movement: There are three types of movements possible. If movement is set to 0 then transitions will be constant. This means always the same number of Rhinos from each age-sex class will move to connected subpopulations. If movement is set to 1 then transitions will be proportional to the number of Rhinos within each age-sex class and connectivity. The rate slider is only used for this movement setting. If movement is set to 2 then transitions will be based on a multinomial distribution. This setting uses a Markov transition matrix approach in which each individual of each age-sex class has a current integer state value and a next integer state value.
- rate: This parameter is only used when movement is set to 1 (proportional). The rate slider determines what proportion of Rhinos within each age-sex class will move.
- demographic: Demographic stochasticity is used within the PVA values (at the Rhino_PVA sublayer). If this parameter is turned on (set to 1) then stochastic values are applied to multiple calculations within the PVA layer of the model, representing small population size effects.
- environmental: Environmental stochasticity is incorporated in the calculations of the survival probabilities of each age-sex class. If this parameter is turned on (set to 1) then a stochastic variable is applied to those probabilities, rather than being used as constant values. Environmental stochasticity reflects driving variable fluctuations drawn from climatic variable distributions.
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.
As of now: if the movement slider at the top level is set to 0 then constant transitions will be used in the model. For each age-sex class, one Rhino will be moved to each subpopulation that is connected to the current one (as long as the current age-sex class in the current subpopulation has Rhinos in it).
As of now: if the movement slider at the top level is set to 1 then proportional transitions will be used in the model. For each age-sex class, a ratio of the total number of Rhinos will be moved to each subpopulation that is connected to the current one. The ratio of movement is determined by the rate slider at the top level.
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). 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.
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.
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 pclass 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.
bucketsAs 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
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.
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).
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.
Female and Male Cascades
A notable feature of this 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 then four mature females or one mature male. This condition is checked for in the OK term at the PVA level. The number of mature males and females are calculated within the MatureMale and MatureFem terms from the Male_Pop and Female_Pop Cascades. OK will be set to 1 (TRUE) if the pseudo-extinction is not met. Once this condition is met, and there are less than one mature male and / or four mature females, OK is set to 0.