Learn R Programming

ForestElementsR (version 2.0.1)

new_fe_ccircle_spatial: Constructor for the fe_ccircle_spatial Class

Description

Should be used by expert users only who know exactly what they are doing. Other users please take the function fe_stand for creating an object of that class.

Usage

new_fe_ccircle_spatial(x = list(), ..., class = character())

Value

An object of class fe_ccircle_spatial

Arguments

x

An appropriate list object

...

Additional arguments required for enabling subclasses of fe_ccircle_spatial

class

A Character string required for enabling subclasses of fe_ccircle_spatial

Examples

Run this code

#' # Constructing a minimal fe_ccircle_spatial object from scratch
# Use fe_ccircle_spatial() if you are not absolutely sure

trees <- data.frame(
  tree_id = as.character(c(1:10)),
  species_id = as_fe_species_tum_wwk_short(rep("5", 10)),
  layer_key = 1,
  time_yr = 2024,
  dbh_cm = rnorm(10, 50, 8),
  age_yr = NA_real_,
  height_m = NA_real_,
  crown_base_height_m = NA_real_,
  crown_radius_m = NA_real_,
  removal = FALSE,
  ingrowth = FALSE,
  n_rep_ha = 1 / 0.75
)

# define a circle definition with three concentric circles
circle_def <- data.frame(
  dbh_lower = c(0,12,30),
  dbh_upper = c(11.9,29.9,999.0),
  c_area = c(0.0025, 0.0060, 0.0500)
)

# generate tree positions in polar coordinates for the 10 trees

tree_positions <- data.frame(
 tree_id = as.character(c(1:10)),
 R = runif(10, 1, 12),
 angle = runif(10, 0, 360)) |>
 dplyr::mutate(
 #convert the polar coordinates to cartesian and into an sf object
 x_pos = R*sin(angle*pi / 180),
 y_pos = R*cos(angle*pi / 180)
 ) |> sf::st_as_sf(coords = c("x_pos", "y_pos"))

# generate a NA dummy for small_trees

  small_trees <- data.frame(
  tree_id = NA_character_,
  species_id = NA_character_,
  layer_key = NA_real_,
  time_yr = NA_real_,
  dbh_cm = NA_real_,
  age_yr = NA_real_,
  height_m = NA_real_
  )

fe_ccircle_spatial_candidate <- list(
  stand_id = "my_interesting_stand",
  small_trees = small_trees,
  trees = trees,
  circle_definition = circle_def,
  tree_positions = tree_positions,
  time_yr = 2024
)

fe_ccircle_object <- new_fe_ccircle_spatial(fe_ccircle_spatial_candidate)

# Better validate it
fe_ccircle_object |> validate_fe_ccircle_spatial()


Run the code above in your browser using DataLab