Learn R Programming

rFIA (version 0.1.1)

standStruct: Estimate forest structural stage distribution from FIADB

Description

Estimates the stand structural stage distribution of an area of forest/ timberland from FIA data. Estimates can be produced for regions defined within the FIA Database (e.g. counties), at the plot level, or within user-defined areal units. If multiple reporting years (EVALIDs) are included in the data, estimates will be output as a time series. Easy options to implement parallel processing. Stand structural stage is classified for each stand (condition) using a method similar to that of Frelich and Lorimer (1991) but substitute basal area for exposed crown area (see Details, References). If multiple states are represented by the data, estimates will be output for the full region (all area combined), unless specified otherwise (e.g. grpBy = STATECD).

Usage

standStruct(db, grpBy = NULL, polys = NULL, returnSpatial = FALSE,
            landType = 'forest', areaDomain = NULL,
            byPlot = FALSE, totals = FALSE, tidy = TRUE, SE = TRUE,
            nCores = 1)

Arguments

db

FIA.Database object produced from readFIA. Function requires that PLOT, TREE, COND, POP_PLOT_STRATUM_ASSGN, POP_ESTN_UNIT, POP_EVAL, POP_STRATUM, POP_EVAL_TYP, POP_EVAL_GRP tables exist in FIA.Database object.

grpBy

variables from PLOT, COND, or TREE tables to group estimates by (NOT quoted). Multiple grouping variables should be combined with c(), and grouping will occur heirarchically. For example, to produce seperate estimates for each ownership group within ecoregion subsections, specify c(ECOSUBCD, OWNGRPCD).

polys

sp or sf Polygon/MultiPolgyon object; Areal units to bin data for estimation. Seperate estimates will be produces for region encompassed by each areal unit.

returnSpatial

logical; if TRUE, return sf spatial object (polys must also be specified).

landType

character ('forest' or 'timber'); Type of land which estimates will be produced for. Timberland is a subset of forestland (default) which has high site potential and non-reserve status (see details).

areaDomain

logical predicates defined in terms of the variables in PLOT and/or COND tables. Used to define the area for which estimates will be produced (e.g. within 1 mile of improved road: RDDISTCD %in% c(1:6), Hard maple/basswood forest type: FORTYPCD == 805). Multiple conditions are combined with & (and) or | (or). Only plots within areas where the condition evaluates to TRUE are used in producing estimates. Should NOT be quoted.

byPlot

logical; if TRUE, returns estimates for individual plot locations (population totals not returned).

totals

logical; if TRUE, returns population estimates in addition to ratios.

tidy

logical; if TRUE, returns estimates grouped by structural stage, rather than including individual columns for each stand structural stage (For use in tidyverse packages, e.g. ggplot2, dplyr). Not recommended when returning spatial objects (returnSpatial = TRUE), for consistency with shapefile data structures.

SE

logical; if TRUE, returns estimates with samping error (approx. 5x faster without returning samping errors)

nCores

numeric; number of cores to use for parallel implementation. Check available cores using detectCores. Default = 1, serial processing.

Value

Dataframe or SF object (if returnSpatial = TRUE). If byPlot = TRUE, values of areal coverage are returned for each plot. All variables with names ending in SE, represent the estimate of sampling error (%) of the variable.

  • STAGE: Stand structural stage.

  • PERC_AREA: % land area in each structural stage.

Details

Estimation of attributes follows the procedures documented in Bechtold and Patterson (2005). Specifically, the percent land area occupied by forest in each stand structural stage are computed using a sample-based ratio-of-means estimator of total area in structural stage / total land area within the domain of interest. Stand structural stage is classified based on the relative basal area of canopy stems in various size classes (defined below). Only stems which are identified on-site dominant, subdominant, or intermdediate crown-classes are used to classify stand structural stage.

Diameter Classes

  • Pole: 11 - 25.9 cm

  • Mature: 26 - 45.9 cm

  • Large: 46+ cm

Structural Stage Classification

  • Pole Stage: > 67% BA in pole and mature classes, with more BA in pole than mature.

  • Mature Stage: > 67% BA in pole and mature classes, with more BA in mature than pole OR > 67% BA in mature and large classes, with more BA in mature.

  • Late-Successional Stage: > 67% BA in mature and large classes, with more in large

  • Mosiac: Any plot not meeting above criteria.

Stratified random sampling techniques are most often employed to compute estimates in recent inventories, although double sampling and simple random sampling may be employed for early inventories. Estimates are adjusted for non-response bias by assuming attributes of non-response plot locations to be equal to the mean of other plots included within thier respective stratum or population.

Forest land must be at least 10-percent stocked by trees of any size, including land that formerly had such tree cover and that will be naturally or artificially regenerated. Forest land includes transition zones, such as areas between heavily forested and nonforested lands that are at least 10-percent stocked with trees and forest areas adjacent to urban and builtup lands. The minimum area for classification of forest land is 1 acre and 120 feet wide measured stem-to-stem from the outer-most edge. Unimproved roads and trails, streams, and clearings in forest areas are classified as forest if less than 120 feet wide. Timber land is a subset of forest land that is producing or is capable of producing crops of industrial wood and not withdrawn from timber utilization by statute or administrative regulation. (Note: Areas qualifying as timberland are capable of producing at least 20 cubic feet per acre per year of industrial wood in natural stands. Currently inaccessible and inoperable areas are NOT included).

Easy, efficient parallelization is implemented with the parallel package. Users must only specify the nCores argument with a value greater than 1 in order to implement parallel processing on their machines. Parallel implementation is achieved using a snow type cluster on any Windows OS, and with multicore forking on any Unix OS (Linux, Mac). Implementing parallel processing may substantially decrease free memory during processing, particularly on Windows OS. Thus, users should be cautious when running in parallel, and consider implementing serial processing for this task if computational resources are limited (nCores = 1).

References

FIA Database User Guide: https://www.fia.fs.fed.us/library/database-documentation/

Bechtold, W.A.; Patterson, P.L., eds. 2005. The Enhanced Forest Inventory and Analysis Program - National Sampling Design and Estimation Procedures. Gen. Tech. Rep. SRS - 80. Asheville, NC: U.S. Department of Agriculture, Forest Service, Southern Research Station. 85 p. https://www.srs.fs.usda.gov/pubs/gtr/gtr_srs080/gtr_srs080.pdf

Frelich, L. E., and Lorimer, C. G. (1991). Natural Disturbance Regimes in Hemlock-Hardwood Forests of the Upper Great Lakes Region. Ecological Monographs, 61(2), 145-164. doi:10.2307/1943005

Goodell, L., and Faber-Langendoen, D. (2007). Development of stand structural stage indices to characterize forest condition in Upstate New York. Forest Ecology and Management, 249(3), 158-170. doi:10.1016/j.foreco.2007.04.052

See Also

tpa, diversity

Examples

Run this code
# NOT RUN {
## Load data from rFIA package
data(fiaRI)
data(countiesRI)

## Most recents subset
fiaRI_mr <- clipFIA(fiaRI)

## Calculate structural stage distribution of all forestland
standStruct(fiaRI_mr)

## Same as above, but output contains seperate column for each structural stage,
##   rathern than grouping variable
standStruct(fiaRI_mr, tidy = FALSE)

# }
# NOT RUN {
## Calculate structural stage distribution of all forestland by owner group, over time
standStruct(fiaRI_mr,
            grpBy = OWNGRPCD)

## Same as above, but implemented in parallel
parallel::detectCores(logical = FAlSE) # 4 cores available, we will take 2
standStruct(fiaRI_mr,
            grpBy = OWNGRPCD,
            nCores = 2)

## Calculate structural stage distribution of all forestland on xeric sites, over time
standStruct(fiaRI_mr,
            areaDomain = PHYSCLCD %in% c(11:19))

## Calculate structural stage distribution of all forestland, over time
standStruct(fiaRI)

## Calculate structural stage distribution of all forestland by county and return
#   return spatial object
sdSF <- standStruct(fiaRI_mr,
            polys = countiesRI,
            returnSpatial = TRUE,
            tidy = FALSE)
plot(sdSF)
plotFIA(sdSF, POLE_PERC)
# }

Run the code above in your browser using DataLab