Skip to content
/ SEEM Public

Heuristic methods and growth and yield models for optimization of individual tree selection.

License

Notifications You must be signed in to change notification settings

OSU-MARS/SEEM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

A research codebase for investigating optimization of individual tree selection thinning with emphasis on Pacific Northwest forests. Peer-reviewed journal articles which use the code are indicated by tags with DOI identifiers and corresponding releases. Conference presentations or papers are also tagged.

The primary code components are

  • PowerShell cmdlets for scripting silvicultural optimization and stand trajectory logging.
  • Single searcher and evolutionary heuristics. See West et al. 2021.
  • Log sort and live biomass estimation using Poudel et al. 2018, Poudel et al. 2019, BC Firmwood, and Scribner.C scaling.
  • A performance tuned version of Organon 2.2.4 and C# implementations of logarithms, exponents, and powers using 128 bit SIMD.

Dependencies

SEEM is a .NET 8.0 assembly which includes C# cmdlets for PowerShell Core. It therefore makes use of both the System.Management.Automation nuget package and the system's PowerShell Core installation, creating a requirement the PowerShell Core version be the same or newer than the nuget's. If Visual Studio Code is used for PowerShell Core execution then corresponding updates to Code and its PowerShell extension are required.

SEEM is developed using current or near-current versions of Visual Studio Community edition. In principle it can be ported to any .NET supported platform with minimal effort but availability of AVX2 instructions (Intel Core 4nd generation, equivalent AMD processors, or newer) is assumed and SEEM is only tested on Windows 10. AVX10.1/256 and, with code edits, /512 are supported but yield somewhat different growth predictions due to changes in instructions (mainly vrcp14ps rather than vrcpps) and the number of CCF layers (crown competition factor, /512).

Relationship to CIPS-R 2.2.4 Organon (2014) and Organon 9.1 (2011)

This repo began with a C# port and object oriented refactoring of the CIPS-R 2.2.4 Organon individual tree diameter and height growth, crown ratio, and mortality models. Organon data structures were converted to SoA (structure of arrays), functions vectorized for SIMD, and Organon's 2000 tree limit was removed. SEEM Organon is mathematically equivalent to the Fortran version but differs in numerical precision due to use of different libraries and IEEE 754 decompositions for logarithms and exponentiation.

Organon's volume code was also ported but is not included in the build due to deprecation of its 1986 taper model. Similarly, Organon's tripling, additional mortality, and rundll wood quality code were ported but later removed due to low maintenance priority. Organon's wood quality dll also wasn't ported due to low priority and the edit dll wasn't ported due to redundancy with much of the rundll. Other than one minor bug fix, CIPS-R 2.2.4 Organon is identical to Organon 9.1.