Analysis of NEON Woody plant vegetation structure data

ACCE DTP course

Author

Anna Krystalli

Published

March 19, 2024

Background

The NEON Woody plant vegetation structure dataset (National Ecological Observatory Network (NEON) 2019) contains structure measurements, including height, canopy diameter, and stem diameter, as well as mapped position of individual woody plants across the survey area.

This data product contains the quality-controlled, native sampling resolution data from in-situ measurements of live and standing dead woody individuals and shrub groups, from all terrestrial NEON sites with qualifying woody vegetation. With some modifications, this protocol adopts guidelines established by the “Forest Inventory and Analysis National Core Field Guide. Volume i: Field Data Collection Procedures for Phase 2 Plots” (2012) for measuring tree species. The exact measurements collected per individual depend on growth form, and these measurements are focused on enabling biomass and productivity estimation, estimation of shrub volume and biomass, and calibration / validation of multiple NEON airborne remote-sensing data products.

Our analyses focus on the relationship between individual stem height and diameter and how that relationship varies across growth forms.

Data Preparation

Data was prepared for analysis by:

  • Compiling all individual raw data files into a single table.
  • Merging individual data with plot level data and geolocating individuals.

The data preparation steps are contained in the data-raw/individuals.R script.

Summary statistics

Prepared data were also subset to columns of interest stem_diameter, height and growth_form and records where growth_form values were not "liana" or missing.

Code
## Setup ----
# Load libraries
library(dplyr)
library(ggplot2)
# Load data
individual <- readr::read_csv(
  here::here("data", "individual.csv")
) %>%
  select(stem_diameter, height, growth_form)

## Subset analysis data ----
analysis_df <- individual %>%
  filter(complete.cases(.), growth_form != "liana")

## Order growth form levels
gf_levels <- table(analysis_df$growth_form) %>%
  sort() %>%
  names()
analysis_df <- analysis_df %>%
  mutate(growth_form = factor(growth_form,
    levels = gf_levels
  ))

The final data set contains a total of 11626

Table 1
Figure 1: Distribution of individual counts across growth forms.

Figure 1 shows the distribution of individual counts across growth forms in the dataset.

Figure 2: Distribution of log stem_diameter and log height across growth forms

Figure 2 shows the log distribution of stem diameter and log height across growth forms.

Analysis

Modelling overall stem_diameter as a function of height

Initially we fit a linear model of form log(stem_diameter) as a function of log(height)

lm_overall <- lm(
  log(stem_diameter) ~ log(height),
  analysis_df
)
Table 2: Overall model evaluation
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.68 0.68 0.49 24,613.48 0.00 1.00 −8,132.31 16,270.62 16,292.70 2,757.58 11,624.00 11,626.00
Table 3: Overall model coefficents
term estimate std.error statistic p.value
(Intercept) 0.5609 0.0145 38.6800 0.0000
log(height) 0.9439 0.0060 156.8869 0.0000
`geom_smooth()` using formula = 'y ~ x'
Figure 3: Relationship between stem diameter and height across all data.

See Figure 3, Table 2 and Table 3 for results.

Growth form level analysis

We also fit a model with an interaction term with growth form included.

lm_growth <- lm(
  log(stem_diameter) ~ log(height) * growth_form,
  analysis_df
)
Table 4: Growth Form interaction model evaluation
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual nobs
0.80 0.80 0.39 4,194.59 0.00 11.00 −5,417.83 10,861.65 10,957.35 1,728.73 11,614.00 11,626.00
Table 5: Growth Form interaction model coefficents
term estimate std.error statistic p.value
(Intercept) 0.4421 0.0479 9.2304 0.0000
log(height) 0.3911 0.1423 2.7488 0.0060
growth_formsmall tree −0.2547 0.1070 −2.3809 0.0173
growth_formsapling −0.0318 0.0545 −0.5828 0.5600
growth_formsingle shrub −0.9445 0.0707 −13.3635 0.0000
growth_formmulti-bole tree 0.9045 0.0618 14.6407 0.0000
growth_formsingle bole tree 1.1224 0.0521 21.5320 0.0000
log(height):growth_formsmall tree 0.5613 0.1505 3.7294 0.0002
log(height):growth_formsapling −0.0820 0.1546 −0.5307 0.5957
log(height):growth_formsingle shrub 0.8121 0.1483 5.4758 0.0000
log(height):growth_formmulti-bole tree 0.2454 0.1433 1.7126 0.0868
log(height):growth_formsingle bole tree 0.1849 0.1425 1.2974 0.1945
`geom_smooth()` using formula = 'y ~ x'
Figure 4: Relationship between stem diameter and height across growth forms.

See Figure 4, Table 4 and Table 5 for results.

Summary

Our results follow findings in the literature e.g THORNLEY (1999), Cannell (1984) and Haase (2008).

References

Cannell, M. G. R. 1984. “Woody Biomass of Forest Stands.” Forest Ecology and Management 8 (3): 299–312. https://doi.org/https://doi.org/10.1016/0378-1127(84)90062-8.
“Forest Inventory and Analysis National Core Field Guide. Volume i: Field Data Collection Procedures for Phase 2 Plots.” 2012. U.S. Forest Service.
Haase, Diane. 2008. “Understanding Forest Seedling Quality: Measurements and Interpretation.” Tree Planters’ Notes 52 (January): 24–30.
National Ecological Observatory Network (NEON). 2019. “Vegetation Structure (DP1.10098.001).” National Ecological Observatory Network (NEON). https://data.neonscience.org/data-products/DP1.10098.001.
THORNLEY, JOHN H. M. 1999. “Modelling Stem Height and Diameter Growth in Plants.” Annals of Botany 84 (2): 195–205. https://doi.org/https://doi.org/10.1006/anbo.1999.0908.