Background
Twigs are the smallest above ground woody component of a tree. Twigs are responsible for supporting the delicate tissues needed to grow leaves and protect the buds during the dormant season. Because twig measurements are the basis for the Real Twig method, and publicly available databases of twigs are limited, we present a database of twig measurements for a wide range of tree genera, species, and qualitative indices.
Recommendations
The twig radius is the most important part of Real Twig. We recommend the following process of selecting a twig radius:
Directly measure a twig on the focal tree whenever possible.
If direct measurements are not possible, use a species specific measurement from the
twigs
database.If the species is not present in the database but the species is known, use a qualitative index describing the twig, such as slender, or stout (often found in many botanical manuals) to pick a radius from the
twigs_index
database.If none of the above are possible, use the genus average value from the
twigs
database.
The reason we advocate for a qualitative index over the genus average, is that genera with many species can have a wide range of twig radii. The qualitative index ensures the measurement is closer to the true value than a potentially biased average. However, if the species in the genera are similar the genus average can be used with good results (Morales and MacFarlane 2024).
Installation
You can install the package directly from CRAN:
install.packages("rTwig")
Or the latest development version from GitHub:
devtools::install_github("https://github.com/aidanmorales/rTwig")
Load Packages
The first step is to load the rTwig package.
library(rTwig)
#> Warning in rgl.init(initValue, onlyNULL): RGL: unable to open X11 display
#> Warning: 'rgl.init' failed, running with 'rgl.useNULL = TRUE'.
#> Error in get(paste0(generic, ".", class), envir = get_method_env()) :
#> object 'type_sum.accel' not found
# Useful packages
library(dplyr)
library(ggplot2)
Twig Database
The twig database is built directly into rTwig and can be called as follows:
# If the rTwig library has been loaded
twigs
# If rTwig hasn't been loaded, but just the twigs are needed
rTwig::twigs
#> # A tibble: 104 × 7
#> scientific_name radius_mm n min max std cv
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Abies concolor 1.43 21 0.89 1.9 0.28 0.19
#> 2 Abies spp. 1.43 21 0.89 1.9 0.28 0.19
#> 3 Acer platanoides 1.39 30 0.89 2.03 0.3 0.21
#> 4 Acer rubrum 1.18 30 0.89 1.52 0.16 0.14
#> 5 Acer saccharinum 1.41 14 0.89 1.9 0.27 0.2
#> 6 Acer saccharum 1.2 30 0.89 1.65 0.23 0.19
#> 7 Acer spp. 1.29 104 0.89 2.03 0.23 0.18
#> 8 Aesculus flava 2.96 14 2.29 4.44 0.58 0.19
#> 9 Aesculus spp. 2.96 14 2.29 4.44 0.58 0.19
#> 10 Betula nigra 0.85 30 0.51 1.52 0.23 0.27
#> # ℹ 94 more rows
The database is broken into 7 different columns. scientific_name is the specific epithet. Genus spp. is the average of all of the species in the genus. radius_mm is the twig radius in millimeters. For each species, n is the number of unique twig samples taken, min is the minimum twig radius, max is the max twig radius, std is the standard deviation, and cv is the coefficient of variation.
Let’s see the breakdown of species.
unique(twigs$scientific_name)
#> [1] "Abies concolor" "Abies spp."
#> [3] "Acer platanoides" "Acer rubrum"
#> [5] "Acer saccharinum" "Acer saccharum"
#> [7] "Acer spp." "Aesculus flava"
#> [9] "Aesculus spp." "Betula nigra"
#> [11] "Betula spp." "Carya cordiformis"
#> [13] "Carya ovata" "Carya spp."
#> [15] "Castanea dentata" "Castanea spp."
#> [17] "Cercis canadensis" "Cercis spp."
#> [19] "Cladrastis kentukea" "Cladrastis spp."
#> [21] "Cornus mas" "Cornus officinalis"
#> [23] "Cornus spp." "Crataegus spp."
#> [25] "Fagus grandifolia" "Fagus spp."
#> [27] "Fagus sylvatica" "Fraxinus americana"
#> [29] "Fraxinus pennsylvanica" "Fraxinus quadrangulata"
#> [31] "Fraxinus spp." "Ginkgo biloba"
#> [33] "Ginkgo spp." "Gleditsia spp."
#> [35] "Gleditsia triacanthos" "Gymnocladus dioicus"
#> [37] "Gymnocladus spp." "Gymnopodium floribundum"
#> [39] "Gymnopodium spp." "Juglans cinerea"
#> [41] "Juglans nigra" "Juglans spp."
#> [43] "Laguncularia racemosa" "Laguncularia spp."
#> [45] "Larix laricina" "Larix spp."
#> [47] "Liquidambar spp." "Liquidambar styraciflua"
#> [49] "Liriodendron spp." "Liriodendron tulipifera"
#> [51] "Magnolia acuminata" "Magnolia spp."
#> [53] "Malus spp." "Metasequoia glyptostroboides"
#> [55] "Metasequoia spp." "Nyssa spp."
#> [57] "Nyssa sylvatica" "Ostrya spp."
#> [59] "Ostrya virginiana" "Phellodendron amurense"
#> [61] "Phellodendron spp." "Picea abies"
#> [63] "Picea omorika" "Picea pungens"
#> [65] "Picea spp." "Pinus nigra"
#> [67] "Pinus spp." "Pinus strobus"
#> [69] "Platanus acerifolia" "Platanus occidentalis"
#> [71] "Platanus spp." "Populus deltoides"
#> [73] "Populus spp." "Prunus serotina"
#> [75] "Prunus spp." "Prunus virginiana"
#> [77] "Quercus acutissima" "Quercus alba"
#> [79] "Quercus bicolor" "Quercus coccinea"
#> [81] "Quercus ellipsoidalis" "Quercus imbricaria"
#> [83] "Quercus macrocarpa" "Quercus michauxii"
#> [85] "Quercus muehlenbergii" "Quercus palustris"
#> [87] "Quercus robur" "Quercus rubra"
#> [89] "Quercus shumardii" "Quercus spp."
#> [91] "Quercus velutina" "Rhizophora mangle"
#> [93] "Rhizophora spp." "Thuja occidentalis"
#> [95] "Thuja spp." "Tilia americana"
#> [97] "Tilia spp." "Tilia tomentosa"
#> [99] "Tsuga canadensis" "Tsuga spp."
#> [101] "Ulmus americana" "Ulmus pumila"
#> [103] "Ulmus rubra" "Ulmus spp."
Similarly, we also provide the same data base broken down by twig size index. The size classes were adapted from (Coder 2021).
twigs_index
#> # A tibble: 4 × 7
#> size_index radius_mm n min max std cv
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 slender 0.74 24 0.5 0.97 0.14 0.19
#> 2 moderately slender 1.42 60 1.03 1.93 0.23 0.16
#> 3 moderately stout 2.36 10 2.08 2.49 0.13 0.05
#> 4 stout 3.19 10 2.51 4.23 0.71 0.22