← Blog

Understanding the FIA Plot

A unifying feature of the US Forest Inventory and Analysis (FIA) program is the standard plot configuration. Despite playing a central role in all downstream analyses, the basics of the plot can be difficult to grasp, as they are typically conveyed in an aspatial manner in database documentation. This post attempts to elaborate on some fundamentals of the FIA plot with visualizations alongside SQL queries, so readers can get a sense of how database information relates to the spatial bodies of the inventory. Throughout, we use the FIADB for the state of Vermont as an animating example.

The Plot Configuration

Forest inventory plots come in all shapes and sizes, and the clustered triangular shape of FIA plots is perhaps one of the most recognizable. The plot consists of four positions, a center point, and three points radiating out from the center at distances of 120 feet and azimuths of 0°, 120°, and 240°. Each point contains three members, a 6.8’ radius microplot, a 24’ radius subplot, and an optional 58.9’ radius macroplot used in some areas of the country.

A diagram of the FIA plot configuration. The optional 58.9’ macroplot radii are indicated in dashes, while the standard 24’ and 6.8’ subplot and microplot radii are solid. Vermont does not use the macroplot.

Information strictly about the plot is generally available in the PLOT table. Because FIA plots are visited routinely throughout time, each row of this table records one instance. Hence, multiple records are available for each plot. A plethora of information about the plot is available, but a few columns can give a flavor of the type of information one might retrieve.

INVYRMEASYEARPLOTPLOT_STATUS_CD
20042004121
20092009122
20142014122
20212021122
SELECT INVYR, MEASYEAR, PLOT, PLOT_STATUS_CD
FROM PLOT
WHERE STATECD = 50 AND COUNTYCD = 19 AND PLOT = 12 AND INVYR >= 2001
ORDER BY INVYR;

Here, we can see that plot 12 has been observed four times, in 2004, 2009, 2014, and 2021. Usually the scheduled year (INVYR) and the actual year of measurement (MEASYEAR) are the same, but occasionally they differ. We can also see that the plot status code has changed from 1 to 2, indicating that the plot had at least one forested condition in 2004, but had no forested conditions in 2009, 2014, or 2021. Condition mapping is a powerful feature of the FIA protocol, and is discussed in the next section.

Condition Mapping

Perhaps the most distinct feature of FIA plot collections is condition mapping: each fixed radius subplot is partitioned into areas by field staff, who describe forested status, forest type, ownership, and other attributes. The process is crucial. It is upstream of estimates of forested area, it partitions trees into biologically coherent groups, and it underpins other analyses. Perhaps the most explicit discussion of condition mapping is found in Scott and Bechtold (2005), which is a rather remarkable intersection of trigonometry and environmental monitoring.

While the intimate details of condition mapping are beyond this introduction, the general idea is that field crews survey fragments within each fixed radius subplot. A fragment is a partition of the subplot that is delineated and has a known area, and the set of fragments must fully partition the subplot.

A condition is an area of uniform attributes, such as forest type, ownership, or land use, and a condition can cross subplot boundaries. A fragment is the piece of one subplot that falls inside a condition. That is why the SUBP_COND table carries a row per subplot and condition, rather than one row per subplot.

Our example plot 12 illustrates this: at the 2004 visit, three of the four subplots fell entirely in a single forested condition, while the second subplot was split, mostly nonforested with a forested fragment of its own. The figure below shades each 24’ subplot by the condition status it was mapped to, and shows the smaller share of a split subplot as its own part of the circle. I note that fragment geometries are not released publicly by FIA, and that the figure uses a simulation for illustration.

Forest land (COND_STATUS_CD 1) Nonforest land (COND_STATUS_CD 2)

The four 24’ subplots of plot 12 at the 2004 visit, shaded by condition status.

Fragment data are stored in the SUBP_COND table, which contains one row for each fragment. The proportion of the circle that the fragment occupies is recorded in the SUBPCOND_PROP column, and information about the fragment spans many columns. In this example, we look at COND_STATUS_CD, which indicates whether the fragment is forested or nonforested, but many different attributes are available in the full table. The table below shows the fragment records, indicating that subplot two contains two fragments, one forested and one nonforested, while the other three subplots are entirely forested.

SUBPCONDIDCOND_STATUS_CDSUBPCOND_PROP
1111
2110.342
2220.658
3111
4111
SELECT sc.SUBP, sc.CONDID, c.COND_STATUS_CD, sc.SUBPCOND_PROP
FROM SUBP_COND sc
JOIN COND c ON c.PLT_CN = sc.PLT_CN AND c.CONDID = sc.CONDID
WHERE sc.STATECD = 50 AND sc.COUNTYCD = 19 AND sc.PLOT = 12 AND sc.INVYR = 2004
ORDER BY sc.SUBP, sc.CONDID;

Note that fragment data are rather fine-grained. They describe relative sizes of fragments within a subplot, but they do not describe their relative sizes for the entire plot. The COND table answers this by rolling up the fragment sizes to describe the relative size of each condition for the entire plot. The table below shows the two conditions of plot 12 at the 2004 visit, with CONDPROP_UNADJ giving each one’s share of the plot, which is often more immediately tractable for analysis. The roll-up from fragments to a condition proportion is a weighted sum of fragment proportions, where each fragment’s weight is its subplot’s share of the plot,

pic=14∑f qicfp_{ic} = \frac{1}{4} \sum_{f} \, q_{icf}

where qicfq_{icf} is the proportion of fragment ff on condition cc in plot ii, and picp_{ic} is the proportion of condition cc in plot ii. The four 24’ subplots are equal, so each contributes 1/41/4, and for condition 1 of plot 12 we obtain

p12,1=14(1+0.342+1+1)=0.836p_{12,1} = \tfrac{1}{4}\left(1 + 0.342 + 1 + 1\right) = 0.836
CONDIDCOND_STATUS_CDCONDPROP_UNADJ
110.836
220.164
SELECT CONDID, COND_STATUS_CD, CONDPROP_UNADJ
FROM COND
WHERE STATECD = 50 AND COUNTYCD = 19 AND PLOT = 12 AND INVYR = 2004
ORDER BY CONDID;

While direct computations with SUBPCOND_PROP are not needed for most basic analyses, they can be important to understand for analyses involving the subplots themselves.

Observations of Trees

Trees are the salient biota measured on FIA plots, largely due to the inventory’s historical origins in timber surveying. Trees larger than 1” diameter at breast height have measurements recorded in the TREE table, and trees larger than 5” diameter are collected within the 24’ subplots. The figure below shows tree data for plot 12 and subplot 2 at the 2004 visit. Like fragments, tree positions are not released publicly, and the figure uses a simulation for the purposes of illustration. We see the second subplot contains six trees exceeding 5” diameter: one gray birch and five black cherries.

SUBPSPCDDIAHTDRYBIO_AG
27621036408.6
276217.1621896.0
23796.137133.3
27629.854556.0
27626.433155.5
27625.43084.9
Gray birch (379) Black cherry (762) Other species (7)

The four 24’ subplots of plot 12 at the 2004 visit, shaded by condition status with trees displayed. Gray birch and black cherry are colored, all other species are gray for conciseness.

SELECT SUBP, SPCD, DIA, HT, ROUND(DRYBIO_AG, 1) AS DRYBIO_AG
FROM TREE
WHERE STATECD = 50 AND COUNTYCD = 19 AND PLOT = 12 AND INVYR = 2004
  AND SUBP = 2 AND DIA >= 5
ORDER BY SUBP, TREE;

Notice that trees are only measured on forested fragments, and a particular wrinkle in FIA analyses involves this scope, which will be addressed in later posts.

A common operation in FIA data analysis, and indeed most forest inventory analyses, is to generate plot-level summaries of tree data expressed in units per acre. In fact, this is a rather rich topic filled with complexity, and I address only one simple case here involving only the 24’ subplots we have used so far. Further examinations are available in Bechtold and Patterson (2005). Summaries of this kind require expansion factors, which are stored in the TPA_UNADJ column of the tree table. If one desires the biomass per acre for plot ii in this simple case, it is just the weighted sum of the biomass of each tree tt in the plot, where the weight is the expansion factor for that tree.

yi=∑tbit⋅eity_i = \sum_{t} b_{it} \cdot e_{it}

Using plot 12 at the 2004 visit as an example, and summing over every tree tallied on its 24’ subplots, we obtain

y12=408.6⋅6.018+1896.0⋅6.018+⋯+84.9⋅6.018≈85,055 lb/acre\begin{aligned} y_{12} = {} & 408.6 \cdot 6.018 + 1896.0 \cdot 6.018 + \cdots \\ & + 84.9 \cdot 6.018 \approx 85{,}055\ \text{lb/acre} \end{aligned}

The terms shown are the six trees of subplot 2 from the table above; the ellipsis stands for the rest of the plot’s subplot-tallied trees, 36 in all. Every one of them carries the same expansion factor, 6.018, a number that is simply the inverse of the size of all four 24’ subplots in acres.

SELECT
	COUNT(*) AS N_TREES,
	ROUND(SUM(DRYBIO_AG), 1) AS TOTAL_LB,
	ROUND(SUM(TPA_UNADJ * DRYBIO_AG), 1) AS LB_PER_ACRE
FROM TREE
WHERE STATECD = 50 AND COUNTYCD = 19 AND PLOT = 12 AND INVYR = 2004
  AND DIA >= 5;

Conclusion

An FIA plot can be defined as four positions, each containing up to three circular subplots, with each subplot partitioned into fragments. Condition records describe the areal attributes of those fragments, and tree records contain measurements of trees and information to identify which subplots held them. We focused on the calculation of picp_{ic} and yiy_{i}, representing condition and tree attributes at the plot scale, respectively. These variables form the core observations used in FIA estimates at broader scales.

AI Disclaimer: the figures in this post were made with AI assistance. The writing is my own.