Skip to contents

The increasing availability of remeasured FIA plots offers the unique opportunity to move from asking questions about the status of forest resources, to questions of how resources have changed over time. For example, we could use the area() function in rFIA to determine the relative land area occupied by various forest types in a landscape or region of interest, i.e., it’s current composition. But how has the composition of that landscape changed in recent decades? What are the primary drivers of such change? And how does this shape our thinking of what the landscape will look like in the future?

rFIA v0.3.1 gave rise to the areaChange() function, which allows us to address such questions using FIA data alone.

By default, areaChange() will estimate net annual change in forest land area within a region over time. As always, you can check out our complete documentation with by clicking on areaChange() (or opening up the same information in R via ?areaChange):

library(rFIA)

# Download the FIA data for Rhode Island 
ri <- getFIA('RI')

# Estimate change in forestland area
areaChange(ri)
## # A tibble: 15 × 9
##     YEAR PERC_CHNG AREA_CHNG PREV_AREA PERC_CHNG_SE AREA_CHNG_SE PREV_AREA_SE
##    <dbl>     <dbl>     <dbl>     <dbl>        <dbl>        <dbl>        <dbl>
##  1  2008   -0.612     -2383.   389114.         84.8         84.0        10.4 
##  2  2009   -0.424     -1411.   332902.         93.7         92.5         6.17
##  3  2010   -0.590     -2108.   357309.         62.4         61.4         4.82
##  4  2011   -0.131      -466.   356992.        302.         302.          4.52
##  5  2012    0.104       377.   363420.        369.         369.          3.89
##  6  2013    0.224       833.   371634.        176.         175.          3.57
##  7  2014    0.329      1213.   368937.        114.         114.          3.74
##  8  2015    0.383      1404.   366790.         91.3         90.4         3.78
##  9  2016    0.0473      173.   366439.        703.         702.          3.91
## 10  2017    0.0909      331.   363600.        414.         413.          3.86
## 11  2018   -0.0656     -238.   363831.        533.         535.          3.85
## 12  2019   -0.567     -2099.   370239.         57.8         58.6         3.45
## 13  2020   -0.689     -2542.   368700.         51.5         52.1         3.76
## 14  2021   -0.751     -2744.   365531.         49.4         49.9         3.76
## 15  2022   -0.484     -1831.   378440.         68.1         69.1         3.79
## # ℹ 2 more variables: nPlots_AREA <int>, N <int>

Here AREA_CHNG is the estimated annual change in forest land area in acres, and PERC_CHNG is the estimated annual change as a percentage of previous total forestland. Importantly, the values estimated above are net changes (chngType="NET"). In other words, these changes epresent the combined effects of reversion (non-forest becoming forest) and diversion (forest becoming non-forest).

Often, however, examining the components of change can yield valuable insight into the drivers of net changes in forest resources. As such, areaChange() allows us to explicitly estimate change components when chngType = "component". In our simple example, this means estimating the annual rates of reversion and diversion in our region:

# Estimate change in forestland area by component
areaChange(ri, chngType = 'component')
## # A tibble: 45 × 11
##     YEAR STATUS1 STATUS2 PERC_CHNG AREA_CHNG PREV_AREA PERC_CHNG_SE AREA_CHNG_SE
##    <dbl> <chr>   <chr>       <dbl>     <dbl>     <dbl>        <dbl>        <dbl>
##  1  2008 Forest  Forest        0          0    375257.       NaN           NaN  
##  2  2008 Forest  Non-fo…      19.2     2654.    13857.         5.21         73.9
##  3  2008 Non-fo… Forest       21.4      272.     1268.         1.11        106. 
##  4  2009 Forest  Forest        0          0    321493.       NaN           NaN  
##  5  2009 Forest  Non-fo…      20.0     2281.    11409.         3.66         53.3
##  6  2009 Non-fo… Forest       20.7      869.     4207.         1.23         49.7
##  7  2010 Forest  Forest        0          0    340459.       NaN           NaN  
##  8  2010 Forest  Non-fo…      19.7     3313.    16850.         3.32         35.8
##  9  2010 Non-fo… Forest       21.1     1205.     5699.         1.89         40.1
## 10  2011 Forest  Forest        0          0    343518.       NaN           NaN  
## # ℹ 35 more rows
## # ℹ 3 more variables: PREV_AREA_SE <dbl>, nPlots_AREA <int>, N <int>

Here STATUS1 and STATUS2 represent the land classification at first and second measurements, respectively. For the 2010 inventory, we estimate that 3,313 acres of forestland were diverted to a non-forest land use annually, and 1,205 acres of non-forest were reverted back to the forest land base. Here our losses (3,313 acres) exceed our gains (1,205 acres), and their difference is equal to the net change (AREA_CHNG) we estimated previously when chngType = 'NET' (-2,108 acres).

We can extend this example by examining patterns of change across some variable of interest, let’s say ownership classes:

# Grab only the most recent survey
ri_mr <- clipFIA(ri)
# Estimate NET change in forestland area by ownership group
areaChange(ri_mr, grpBy = OWNGRPCD, chngType = 'net')
## # A tibble: 2 × 10
##    YEAR OWNGRPCD PERC_CHNG AREA_CHNG PREV_AREA PERC_CHNG_SE AREA_CHNG_SE
##   <dbl>    <int>     <dbl>     <dbl>     <dbl>        <dbl>        <dbl>
## 1  2022       30     0.487      582.   119620.        177.         174. 
## 2  2022       40    -0.932    -2413.   258820.         50.3         51.6
## # ℹ 3 more variables: PREV_AREA_SE <dbl>, nPlots_AREA <int>, N <int>
# Estimate component change in forestland area by ownership group
areaChange(ri_mr, grpBy = OWNGRPCD, chngType = 'component')
## # A tibble: 8 × 13
##    YEAR OWNGRPCD1 OWNGRPCD2 STATUS1    STATUS2    PERC_CHNG AREA_CHNG PREV_AREA
##   <dbl>     <int>     <int> <chr>      <chr>          <dbl>     <dbl>     <dbl>
## 1  2022        30        30 Forest     Forest           0          0    112728.
## 2  2022        30        40 Forest     Forest          14.8      280.     1889.
## 3  2022        30        NA Forest     Non-forest      14.9      746.     5002.
## 4  2022        40        30 Forest     Forest          16.0      970.     6066.
## 5  2022        40        40 Forest     Forest           0          0    237801.
## 6  2022        40        NA Forest     Non-forest      16.0     2393.    14954.
## 7  2022        NA        30 Non-forest Forest          16.7      639.     3830.
## 8  2022        NA        40 Non-forest Forest          13.3      670.     5025.
## # ℹ 5 more variables: PERC_CHNG_SE <dbl>, AREA_CHNG_SE <dbl>,
## #   PREV_AREA_SE <dbl>, nPlots_AREA <int>, N <int>

Note that when, grpBy is specified, change components are estimated for all shifts in forest land area across the classified attributes represented by the variables (first and second measurements again denoted by the suffix 1 and 2). In our case this means OWNGRPCD1 indicates ownership at initial measurement and OWNGRPCD2 is ownership at final measurement. Unfortunately, ownership group is unavailable for non-forest conditions and hence initial ownership is listed as NA for all non-forest to forest conversions (and forest to non-forest conversions).

Finally, what if we were interested in understanding change in forest land that meets some specific criteria? We can easily accomplish this using the treeDomain argument. For example, below we calculate net change for forest land that contains live (STATUSCD == 1) eastern hemlock (SPCD == 261).

areaChange(ri, treeDomain = STATUSCD == 1 & SPCD == 261) 
## # A tibble: 15 × 9
##     YEAR PERC_CHNG AREA_CHNG PREV_AREA PERC_CHNG_SE AREA_CHNG_SE PREV_AREA_SE
##    <dbl>     <dbl>     <dbl>     <dbl>        <dbl>        <dbl>        <dbl>
##  1  2008     0            0     33214.        NaN          NaN           69.4
##  2  2009     0            0     16605.        NaN          NaN           71.5
##  3  2010     0            0     21452.        NaN          NaN           53.1
##  4  2011     0            0     23980.        NaN          NaN           45.4
##  5  2012     4.36       818.    18780.        102.          89.4         46.5
##  6  2013     4.03       921.    22840.         96.0         84.8         40.6
##  7  2014     4.03       921.    22840.         96.4         85.1         40.8
##  8  2015     4.03       885.    21944.         98.6         87.1         41.8
##  9  2016     3.23       820.    25435.         98.1         88.5         37.6
## 10  2017     2.41       565.    23469.        138.         126.          38.7
## 11  2018     2.41       565.    23469.        138.         126.          38.7
## 12  2019    -0.678     -189.    27889.         84.7         91.7         36.2
## 13  2020    -0.679     -195.    28808.         84.3         91.3         36.0
## 14  2021    -0.689     -214.    31109.         81.7         88.5         35.0
## 15  2022    -3.23      -980.    30341.         60.0         70.6         34.9
## # ℹ 2 more variables: nPlots_AREA <int>, N <int>

In this case, the AREA_CHNG column corresponds to the net change (in acres) of forest land that contains at least one live eastern hemlock tree, while the PREV_AREA column indicates the previous area (in acres) of forest land with at least one hemlock tree. Notice that the PERC_CHNG columns is simply calculated as AREA_CHNG / PREV_AREA * 100.