How the DSS Works. August 14. Version 1

Similar documents
Recruitment Cluster Success Layer Dispersal Tracking Layer Save these settings as default Step 6: Finished!...

Unit 1, Lesson 1: Moving in the Plane

2016 AMC10B Problems

17 - VARIABLES... 1 DOCUMENT AND CODE VARIABLES IN MAXQDA Document Variables Code Variables... 1

City of Richmond Interactive Map (RIM) User Guide for the Public

Alaska Mathematics Standards Vocabulary Word List Grade 7

Lesson 5 overview. Concepts. Interpolators. Assessing accuracy Exercise 5

Lecture 6: GIS Spatial Analysis. GE 118: INTRODUCTION TO GIS Engr. Meriam M. Santillan Caraga State University

Math 7 Glossary Terms

Estimate A number that is close to an exact answer. An approximate answer.

Geometry AP Book 8, Part 2: Unit 7

Alternate Animal Movement Routes v. 2.1

A simple problem that has a solution that is far deeper than expected!

ICS 161 Algorithms Winter 1998 Final Exam. 1: out of 15. 2: out of 15. 3: out of 20. 4: out of 15. 5: out of 20. 6: out of 15.

Tracking Database. COL live (COL only)

Prime Time (Factors and Multiples)

1. Basic Steps for Data Analysis Data Editor. 2.4.To create a new SPSS file

Layer Variables for RSF-type Modelling Applications

Combine Yield Data From Combine to Contour Map Ag Leader

Mapping Common Core State Standard Clusters and. Ohio Grade Level Indicator. Grade 5 Mathematics

Spatial Density Distribution

6-7. Connectivity variables.

MAPLOGIC CORPORATION. GIS Software Solutions. Getting Started. With MapLogic Layout Manager

UNIT 2 GRAPHIC PRIMITIVES

Chapter 3. Sukhwinder Singh

UNIT 0 - MEASUREMENT AND GEOMETRY CONCEPTS AND RELATIONSHIPS

Math Geometry FAIM 2015 Form 1-A [ ]

Lab 11: Terrain Analyses

Welcome to NR402 GIS Applications in Natural Resources. This course consists of 9 lessons, including Power point presentations, demonstrations,

GRADE 5. Operations & Algebraic Thinking - Domain

Spatial Calculation of Locus Allele Frequencies Using ArcView 3.2

ArcGIS Pro Editing. Jennifer Cadkin & Phil Sanchez

Chapter 10 Working with Graphs and Charts

Paired Home Range Size, Overlap, Joint-Space Use, and Similarity Indexes Justin Clapp ZOO 5890 Objective - quantify changes in home range

Lab 11: Terrain Analyses

Introduction to Spatial Database Systems

Part II: Creating Visio Drawings

The Reference Library Generating Low Confidence Polygons

Section 12.1 Translations and Rotations

Appendix E Calculating Normal Vectors

E-Companion: On Styles in Product Design: An Analysis of US. Design Patents

Module 2 Test Study Guide. Type of Transformation (translation, reflection, rotation, or none-of-theabove). Be as specific as possible.

TerraScan New Features

ArmCAD 6. reinforced concrete detailing program [updated for Build 2028]

PSU Object Reports: Introduction. Object Reports: Introduction. Understanding Object Reports. Creating Your Object Report. A Time-Saving Process

Code Matrix Browser: Visualizing Codes per Document

Mn/DOT MnCMAT Crash Analysis Application Help

Buds Public School, Dubai

NRP 2195: WorkWise: Math at Work correlated to CCR Math Standards Level C

Could you make the XNA functions yourself?

Multidimensional Data and Modelling - DBMS

Middle School Math Course 2

Name. Geometry Honors. Unit 1 Coordinate Geometry. Practice Packet

Dice in Google SketchUp

Geometry Definitions and Theorems. Chapter 9. Definitions and Important Terms & Facts

A triangle that has three acute angles Example:

C in. 2. D in Find the volume of a 7-inch tall drinking glass with a 4-inch diameter. C lateral faces. A in. 3 B in.

(Refer Slide Time: 00:03:51)

2. Give an example of a non-constant function f(x, y) such that the average value of f over is 0.

Background. Parallel Coordinates. Basics. Good Example

Class Book. Anita Straker, Tony Fisher, Rosalyn Hyde, Sue Jennings and Jonathan Longstaffe

TRS-ACTIVECARE ENROLLMENT

Border Patrol. Shingo Murata Swarthmore College Swarthmore, PA

CONSTRUCTION OF THE VORONOI DIAGRAM BY A TEAM OF COOPERATIVE ROBOTS

absolute value- the absolute value of a number is the distance between that number and 0 on a number line. Absolute value is shown 7 = 7-16 = 16

Suitability Analysis in Raster GIS. Combining Multiple Maps

NV CCS USER S GUIDE V1.1 ADDENDUM

Geol 588. GIS for Geoscientists II. Zonal functions. Feb 22, Zonal statistics. Interpolation. Zonal statistics Sp. Analyst Tools - Zonal.

How to create shapes. Drawing basic shapes. Adobe Photoshop Elements 8 guide

Common Core State Standards - Standards for Mathematical Practice

GIS Data Models. 4/9/ GIS Data Models

NETLOGO 6.0 QUICK GUIDE

Graphical Cell Compiler

Lecture 7 Digitizing. Dr. Zhang Spring, 2017

Feature Analyst Quick Start Guide

Lab 12: Sampling and Interpolation

CSCI 204 Introduction to Computer Science II

CSAP Achievement Levels Mathematics Grade 7 March, 2006

STAARTM State of Texas Assessments of Academic Readiness

Geometry Regents Lomac Date 3/17 due 3/18 3D: Area and Dissection 9.1R. A point has no measure because a point represents a

CSE 158 Lecture 2. Web Mining and Recommender Systems. Supervised learning Regression

How to Make Graphs in EXCEL

Spatial Data Management

Module 3: Stand Up Conics

13 Vectorizing. Overview

UNC Charlotte 2004 Comprehensive

Regular polygons and tessellations Criterion D: Reflection

Landscape Metrics. Prof. Dr. Adrienne Grêt-Regamey Sibyl Brunner Ana Stritih

Package MigClim. February 19, 2015

Spatial Data Management

UNIT 5 GEOMETRY TEMPLATE CREATED BY REGION 1 ESA UNIT 5

2009 Fall Startup Event Thursday, September 24th, 2009

Data file descriptions

CLASSROOM INVESTIGATION:

6th Grade Math. Parent Handbook

Mid-term exam. GIS and Forest Engineering Applications. Week 5. FE 257. GIS and Forest Engineering Applications. Week 5

Multidimensional Indexing The R Tree

Number Sense Workbook 7, Part 1: Unit 3

ArcGIS Pro Editing: An Introduction. Jennifer Cadkin & Phil Sanchez

DESIGNING, BUILDING, AND USING DATABASES (BEGINNING MICROSOFT ACCESS, X405.4)

Transcription:

How the DSS Works August 14 2009 Note: This document is incomplete and may be incorrect. It is constantly being revised and updated. It is for general information purposes only, and should not be regarded as anything else. The version number may not match the toolbar version depending on how update the document is to the actual toolbar. Version 1

HOW THE DSS WORKS* 1. Start running 70 simulations (RunSimulations) 1.1. Start a single simulation (RunModel_Main) 1.1.1. Initialize files (InitFiles) 1.1.2. Initialize the World (InitWorld) 1.1.2.1. Create the World (CreateTerritoryGrid) 1.1.2.2. Store the Grid in Memory (ExpandDSS) 1.1.2.3. If evaluating landscape polygons (RetrieveLandscapeEvaluationPolygons) 1.1.2.3.1. Initiate Search for landscape polygons (GetLandscapePolygonsToEvaluate) 1.1.2.3.1.1. Evaluation each specific landscape polygon (EvaluateLandscapePolygon) 1.1.2.4. Prepare for landscape evaluation (ProcessLandscapeGroupings) 1.1.2.4.1. Evaluation each specific polygon (EvaluateLandscapePolygon) 1.1.2.5. Identify habitat polygons (IdentifyHabitatPolygons) 1.1.2.5.1. Evaluate each polygon (EvaluateNestingForagingHabitatPotential) 1.1.3. Initialize Scenario (Init) 1.1.4. Initialize internal variables (InitVariables) 1.1.4.1. Create a gap layer and process recruitment clusters (InitEvents) 1.1.4.1.1. Process recruitment clusters (ReadRecruitCentersFromLayer) 1.1.4.1.2. Create a gap layer (CreateGapLayer) 1.1.4.1.2.1. Generate one attribute from age and type (CompileAgeTypeInfo) 1.1.4.1.2.2. Extract the Raster from the shapefile (ExtractRasterGapData) 1.1.5. Initialize population (InitPopulation) *** Stopped here information 1.1.6. Initialize fecundity (InitFecundity) 1.1.7. Start the Simulation (TimeStep) 1.1.7.1. Breed 1.1.7.1.1. Calculate birth rates (Fecundity) 1.1.7.2. Introduce Recruitment Clusters (IntroduceRecruitmentClustersForYear) 1.1.7.2.1. Verify sufficient nesting and foraging habitat (VerifyNFH) 1.1.7.2.2. Add Territory if location is appropriate (AddTerritory) 1.1.7.3. Males search the landscape as necessary (SearchMale) 1.1.7.4. Females search the landscape as necessary (SearchFemale) 1.1.7.4.1. Females use the new search routine (RadialSearchOnGrid) 1.1.7.5. Calculate any budding for that year (CheckBudding) 1.1.7.5.1. Prepare to add any buds (AddBuds) 1.1.7.5.1.1. Each bud must have appropriate NFH (VerifyNFH) 1.1.7.5.1.1.1. Find bud neighbors (GetIDsAlongPerimeter) 1.1.7.5.1.1.1.1. New territory shape is Thiessen (AdjustTerritoryShape) 1.1.7.5.1.1.2. Evaluate location for suitability (IsGoodPlacement) 1.1.7.5.1.2. Add the suitable territory to the model (AddTerritory) 1.1.7.5.1.2.1. Add suitable territory to the grid (ReplaceTerritory) 1.1.7.5.1.2.2. Establish neighbors that are helpers that could compete for territory (SetHelpersForBudding) 1.1.7.6. Males fight to occupy an empty territory (ReplaceBreeder) 1.2. Summarize output data 2

AddBuds* Iterate over all the territories. Assume each territory is eligible to bud unless there are no birds in the territory or the territory has been completely abandoned. All territories that are eligible to bud are randomized. Each eligible territory center (ETC) is then processed. 1. Retrieve an ETC and move a test point around in a donut from 600 meters to 1 km. 2. If the test point is within the extent of the territory grid and does not lie in an existing territory, then it becomes the proposed new territory (PNT). 3

a. Move around 2 circles with PNT as center (300 and 500 meters). If no territories on the minimum radius and ETC on the max radius, then have a good location. By proxy, PNT is sufficiently far away from parent and other territories. Don t need to process any more test points. 4

Each PNT within a good location is sent to VerifyNFH to ensure enough NFH. If it passes this verification, it is sent to AddTerritory to be officially added to the model. AddTerritory* This code is called to add either a bud or a recruitment cluster. Because of this, buds go through a bit of a redundant verification process. For each proposed new territory (PNT) that was determined to have a good location, find out if the new territory is too close. It is too close if the distance between the PNT center and the center of any occupied territory is less than 400 meters. If it s not too close, then simply add it to the data structures and the grid (ReplaceTerritory). If it is a bud, then call SetHelpersForBudding. Setting the helpers for budding is used in CheckBudding. AdjustTerritoryShape* Take the proposed new territory (PNT) and intersect it with each buffered territory center. Get the line of intersection. Cut the PNT with the cutline and determine which side the PNT center belongs on. This shape replaces the PNT shape and it does the same thing again with a new buffered territory center. This creates a Thiessen polygon. Breed * This gets called when season = 1. Randomize all territories. Avoid incest. Calculate Fecundity. Based on the number of fledges produced in the Fecundity routine, determine gender and, if male, status class. CheckBudding* Determine how many buds to add based on number of occupied territories (from TotalOccupied, set in TimeStep) and the budding rate (from BudRate, set in InitEvents). 5

Calculate the number of buds for this season ((BudRate / 100) * TotalOccupied) / 4 Call AddBuds sending in the number of buds to add and the current year. CompileAgeTypeInfo* In the extracted gap shapefile, add a field to store the combined attributes of age and type. Select all features that are gaps by type only or via landscape evaluation and assign them a value that defines always a gap. Then select all features that are only gaps because their age might make them so at some point in the model (therefore type would be NFH). The value of the attribute here is the age of the polygon. Store these values in the field that was added to the shapefile at the beginning of the routine. CreateGapLayer This procedure is called once, and then for each landscape evaluation, if that option is selected. Creating a gap layer is a multi-step process. First, all features are selected that are (based on type and landscape evaluation option) or could be (based on age) a gap. All of these features are exported to their own shapefile. Now, polygons can be a gap based on three attributes, type, age, and landscape evaluation group, but grids only store one attribute. Therefore, this layer is sent to CompileAgeTypeInfo to create one attribute that stores all three bits of information. Afterwards, send this layer to ExtractRasterGapData to create the grid. The intermediate layers are deleted from the map and the hard drive once the process is complete. CreateTerritoryGrid Buffer each territory by 500 meters to create a circle. Intersect each circle to create Thiessen polygons. Rasterize the polygon layer. EvaluateLandscapePolygon The polygon has to meet the minimum criteria in order to be considered for landscape evaluation. If it does not meet the minimum, then it is always a gap, therefore removing it from the model will have no effect. Critera #1 - Has to be greater than or equal to the minimum stand score, if that criteria is being used. Criteria #2 - Has to be able to reach proper age at some point during the model run. If it fails these criteria, then it will always be a gap. Since it will always be a gap, there will be no impact on removing it from the model. So, it is not included in the landscape evaluation. EvaluateNestingForagingHabitatPotential The habitat is evaluated for the following criteria: 1. The habitat polygon must be the correct type (Good NFH) 2. The habitat polygon must meet the Minimum Stand Score (if the model is incorporating this criteria) 3. The habitat polygon must be able to reach the Minimum Age For NFH at some point in the model. 6

If it meets the above criteria, its site index is added to the running total and the polygon is added to the appropriate data structure for use in the model as potential NFH. ExpandDSS Grab the grid data source and store it as a 2D array in memory. ExtractRasterGapData Converts all features to raster. Extracts the grid to store in memory. Deletes the intermediate raster data from the hard drive. Fecundity Using a Two-stage model. Using coefficients, calculate chance of nest failure. Use a random process to see if the nest fails. The number of helpers and breeders increase the chance for a nest to produce fledges. This determines the number successfully born to a nest. GetIDsAlongPerimeter* For each vertex that makes up the proposed new territory (PNT) buffered polygon, determine if that point lies in an already existing territory in the grid. If it does, get the existing territory center (ETC) and calculate the distance between the PNT and the ETC. If the distance is acceptable (<= 1600 meters), and it hasn t already been encountered, then it is added to the collection as a polygon with a radius of 800 meters. Acceptable distances mean that the polygon is close enough to affect the shape of the PNT. GetLandscapePolygonsToEvaluate Using the where clause sent in as a parameter to the routine, select all features and send them to EvaluateLandscapePolygon IdentifyHabitatPolygons Gets each feature from the habitat layer and sends it to EvaluateNestingForagingHabitatPotential. Init Initialize variables stored within the class, clsscenario. InitEvents 7

Calls ReadRecruitCentersFromLayer, if recruitment clusters are being evaluated. Calls CreateGapLayer. InitFecundity Go Back Initializes all of the fecundity values based on the demographic model chosen. InitFiles Create a temporary point layer to store information about Initial Cluster Abandonment. Note: There are several files used to store and compile information about Initial Cluster Abandonment because the data can be considered in two ways, looking at specific cluster abandonment, and average cluster abandonment during a simulation. Non-shapefiles are stored as DBFs. Go Back InitPopulation Here the territories are assigned their initial population and an initial count of the birds is conducted. Check to see if using a default initial population or a custom initial population file. Based on the appropriate population model, create initial birds. Use the Age Distribution Matrix to determine an age for the initial bird. InitVariables Initializes search ranges and mortality. Calls InitEvents, InitPopulation, and InitFecundity. Once all the variables are initialized, call TimeStep to begin the actual model. InitWorld Goes into the initial territory layer and gets all of the features in the territory layer. Stores this data into the data structures within the model. Also, converts those features into a Thiessen polygon grid layer, TGrid on the hard drive (CreateTerritoryGrid). This grid information is extracted and stored as a two-dimensional grid in memory (ExpandDSS). It establishes if a territory is initially occupied based on the feature layer attribute, Occupied, and compiles information about migration tracking if that option is enabled. The habitat landscape is divided into quadrants to speed up processing. This is only done once. If the model is to conduct landscape evaluation, then the landscape polygons are extracted (RetrieveLandscapeEvaluationPolygons) and grouped (ProcessLandscapeGroupings). All features are stored with the group attribute name for removal from the model at the appropriate time. Next step is to call IdentifyHabitatPolygons to evaluate each polygon feature for nesting and foraging habitat. 8

IntroduceRecruitmentClustersForYear When each recruitment cluster is added to the model at the appropriate year, it is evaluated for sufficient nesting and foraging habitat (VerifyNFH). If it is determined that the location provides insufficient NFH, the event is logged and the recruitment cluster is not added to the model. If there is sufficient NFH, then a call to AddTerritory is made. This call is also made before entering the TimeStep year loop for situations where the model is to start with active recruitment clusters. IsGoodPlacement Not a perfect assessment if input geometries are bad. Overlapped areas could be counted twice. Given a proposed new territory (PNT) shape, get the intersections with all the habitat polygons. Avoid overlaps of exact polygons (by vertices) so double area is not included. Sum the areas of all the intersections until you reach the minimum acreage or until you have counted all intersections. ProcessLandscapeGroupings Retrieves all features with a landscape group value assigned to it. For each feature, get its group value. Find out if the polygon is within the study area. If it isn t, don t bother with it. Call EvaluateLandscapePolygon on the feature. SearchFemale If required, the bird is initialized to its territory center and given a random direction. This does not hold true for birds that are initialized during the population initialization process. If the bird moves, it moves a distance based on its seasonal search range. If your status is FledgeDisperser, you don t move, and you don t foray across gaps. If your status is Breeder, you don t move. The bird begins a radial search, RadialSearchOnGrid. Within this process, it compiles a list of territories sorted by distance. These are simple territories that are seen by the bird. Upon compiling this list, it checks each territory: If there is no female, if there is a male, if the male is not her son or her dad, then the male becomes a breeder and the female leaves the old territory and occupies the new one. Finally, if no territories have been compiled, do a forward search to see if the bird is out of the study area. SearchMale Each bird is initialized to its territory center and given a random direction. The bird moves a distance based on its seasonal search range. The bird begins a radial search using the legacy code. It moves along the radius of each arm in a radial pattern and looks for territories. It compiles all territories found. It merely has to see the territory at this point. Sorts By distance such that territories closer to the center are evaluated first. It uses a.3 radial angle. Then does a forward search to check of out of study area condition. SetHelpersForBudding 9

Get the oldest helper from the territory that spawned the bud. If there is a helper, store that information for later use in CheckBudding. RadialSearchOnGrid Obtain the initial location of the bird (territory center). Get the radial angle (which depends on the range). Work from 0 to pi in a back and forth motion. Work along an arm at the specific radius step of 0.1 KM. Get a test point. Look for a territory. If there is a territory, save this value and it s XY location along the arm. Checks for gaps. It moves along each arm in the radius and looks for territories. It compiles all territories. Sorts by distance such that territories closer to the center are evaluated first. It uses a 0.25 radial angle. Then does a forward search to check out of study area condition. It does grid the habitat layer for gap analysis due to the efficiency of the program. Females search the landscape in a circle around their current location out to the distance specified by their current status class. Cover the radius working to the left and right of the previous arm(s) such that the bird s search pattern fans out from the original direction. 10

11

Along any specific arm, a female will step 100 meters and look for any available territories. Each territory is preserved for analysis later. All territories seen are sorted by distance such that territories closer to the center are evaluated first. While stepping out, females look for gaps. Breeders and FledgeDispersers will not cross gaps. Dispersers will cross gaps according to the following criteria: Gaps less than 150 m are always crossed, Gaps between 150 and 630 meters use the equation (-.00163 * length) + 1 to calculate a probability for crossing, Gaps greater than 630 m have a 10% chance to jump across. Because we are using grids, the gap lengths are categorical rather than continuous. So, you only have gap lengths in steps of 100 m. This does not exactly match the range in which the equation has been verified. While searching for territories, the female keeps track of the first occurrence of a direction that is longer than it will be able to move when it can move. This and the fan pattern ensures the female remains as true as possible to her original direction, while also moving around the landscape gaps she will not cross. 12

ReadRecruitCentersFromLayer Processes each recruitment feature. If the YearAdded attribute is greater than the number of years in the simulation, then it is not added to the model. Store the feature and all of its important attributes into the correct data structure. ReplaceBreeder The number of vacancies and the vacancy list is passed as a parameter to this routine. A vacancy is defined as not having a male breeder. For each vacancy, it calculates the total number of helpers currently within that territory (if any), and the age of the oldest helper. If there are helpers in the territory, if there is a female breeder present, then the oldest helper becomes the breeder for that territory. Else the oldest helper takes up residence as a solitary male. If there are no helpers in the territory, then the territory is listed as empty. For each empty territory, if there is a female or there are Helpers to compete for the vacancy, then the territory searches around itself and gets all available neighbors. 13

For each neighbor, if there is a helper to compete for in the neighbor, and a female in the vacancy, then get the information about the oldest helper in the neighbor territory. Also, if there is a female in the vacancy, and there is a male breeder in the neighbor, gets his information, too. Finally, go into the dispersal list and determine if there is any bird in the dispersal list competing for the vacancy. Get his information, too. For each possible bird, get his DistanceAgeIndex and calculate the closest/oldest bird. This bird takes up residence in the vacancy. ReplaceTerritory If you are erasing a territory, get a square from the grid around the center with a little extra. For each cell in the window, if the value of the cell is the territory that needs to be replaced, then replace it with NoDataValue. If you are adding a territory, then move in a circle across the grid around the center. If the value of the cell is NoDataValue, then replace it with the new territory number. RetrieveLandscapeEvaluationPolygons Generates the where clause to send to GetLandscapePolygonsToEvaluate. The first time it is done, this doesn t do much because it relies on information that hasn t been created yet. This is fine, because the first simulation is the baseline simulation. RunModel_Main This is the main entry point for a specific simulation. It calls (in the order listed) on InitFiles, InitWorld, Init, and InitVariables to begin the initialization process and TimeStep, which is where the core model resides. RunSimulations This is the main entry point for multiple simulations. It starts here with a FOR loop. Each iteration through the FOR loop calls RunModel_Main. TimeStep IntroduceRecruitmentClustersForYear Introduce RC s that are to be included as initial RC s For loop for each year. For loop for season If Season = 1 then Breed If season = 2and there are RC s to add, then IntroduceRecruitmentClustersForYear For loop for male birds Fledge: die or become a helper 14

FledgeDisperser: die, or SearchMale, or become a floater. Disperser: die or SearchMale Helper: die, or become a solitary, or become a breeder Solitary: die or become a floater Breeder: die Age all males at the end of the loop by 0.25 For loop for female birds FledgeDisperser: die, or SearchFemale, or become a floater Disperser: die or SearchFemale Breeder: die, or become a floater then SearchFemale, or if there is no male, season = 4, and FemaleBreederSearches then SearchFemale Age all females at the end of the loop by 0.25 CheckBudding ReplaceBreeder VerifyNFH Retrieve the buffered territory centers of existing territory centers in GetIDsAlongPerimeter. Adjust the PNT territory shape (if required) to be a Thiessen polygon in AdjustTerritoryShape. Send the Thiessen polygon to IsGoodPlacement to verify if there is enough acreage. Definitions NFH: Nesting and Foraging Habitat Good NFH: "PINE" Always Gap: "OTHER", "OPEN", "WATER" Not Gap but Not NFH: "HARD", "MIXED", PINE DISPERSAL ONLY Minimum Stand Score: Minimum score for habitat quality Minimum Age For NFH: 60 Notes *This document is constantly being updated and at any time may not accurately reflect the code. 15