abundance_byyr {fgeo.analyze} | R Documentation |
Create tables of abundance and basal area by year.
Description
-
abundance_byyr()
first picks the main stem of each tree (see ?fgeo.tool::pick_main_stem()
). Then, for each species and each round-mean-year of measurement, it counts the number of trees. The result includes main stems within a given dbh range. -
basal_area_byyr()
first sums the basal basal area of all stems of each tree. Then, for each species and each round-mean-year of measurement, it sums the basal area of all trees. The result includes all stems within a given dbh range (notice the difference withabundance_byyr()
).
Usage
abundance_byyr(vft, ...)
basal_area_byyr(vft, ...)
Arguments
vft |
A ForestGEO-like dataframe; particularly a ViewFullTable. As such,
it should contain columns |
... |
Expressions to pick main stems of a specific |
Details
You don't need to pick stems by status before feeding data to these
functions. Doing so may make your code more readable but it should not affect
the result. This is because the expressions passed to ...
pick data by
dbh
and exclude the missing dbh
values associated to non-alive stems,
including dead, missing, and gone stems.
Value
A dataframe.
See Also
Other functions for abundance and basal area:
abundance()
Examples
library(fgeo.tool)
# Example data
vft <- tibble(
PlotName = c("luq", "luq", "luq", "luq", "luq", "luq", "luq", "luq"),
CensusID = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L),
TreeID = c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L),
StemID = c(1.1, 1.2, 2.1, 2.2, 1.1, 1.2, 2.1, 2.2),
Status = c(
"alive", "dead", "alive", "alive", "alive", "gone",
"dead", "dead"
),
DBH = c(10L, NA, 20L, 30L, 20L, NA, NA, NA),
Genus = c("Gn", "Gn", "Gn", "Gn", "Gn", "Gn", "Gn", "Gn"),
SpeciesName = c("spp", "spp", "spp", "spp", "spp", "spp", "spp", "spp"),
ExactDate = c(
"2001-01-01", "2001-01-01", "2001-01-01", "2001-01-01",
"2002-01-01", "2002-01-01", "2002-01-01",
"2002-01-01"
),
PlotCensusNumber = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L),
Family = c("f", "f", "f", "f", "f", "f", "f", "f"),
Tag = c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L),
HOM = c(130L, 130L, 130L, 130L, 130L, 130L, 130L, 130L)
)
vft
abundance_byyr(vft, DBH >= 10, DBH < 20)
abundance_byyr(vft, DBH >= 10)
basal <- basal_area_byyr(vft, DBH >= 10)
basal
# Skip R CMD check for speed
measurements_is_installed <- requireNamespace("measurements", quietly = TRUE)
if (measurements_is_installed) {
# Convert units
years <- c("yr_2001", "yr_2002")
basal_he <- basal %>%
purrr::modify_at(
years,
~ measurements::conv_unit(.x, from = "mm2", to = "hectare")
)
basal_he
# Standardize
number_of_hectares <- 50
basal_he %>%
purrr::map_at(years, ~ .x / number_of_hectares)
}