install.packages('pak')
Note that whenever the forestNETN package is updated,
you can rerun this code to install the latest version.
library(pak)
pak::pkg_install('doi-nps/forestNETN')
library(forestNETN)
Note that R is not able to connect to files on Sharepoint or MS Teams
(b/c Teams also stores all files on Sharepoint). That means you need to
store data package files on your local machine or on a network server.
The default option for importing data will add the data package views
(i.e., flatfiles) to an environment called VIEWS_NETN to your
Environment work space (i.e. Environment tab in top right panel). If you
would rather import each individual view into your R session, specify
with the new_env argument (e.g.,
importData(new_env = F)).
The NETN forest data package is organized as a series of stand alone views (i.e., csvs) of stand, tree, sapling, seedling, herbaceous, and soil data. For metadata on each view and the data package overall, refer to the NETN_FHM_2006_2026_metadata.xml file in the data package. A more readable version of the metadata is also available on NPS DataStore: NETN Forest Data Package. Clicking on an individual view and selecting the “Show Data Table Info” button gives you definitions of the columns in an individual view.
To import data using the default settings (i.e. run
importData() with no arguments), you must have the NETN SQL
database installed on your local machine with the latest local instance.
This is largely for internal NPS use.
Import data using default SQL database connection
importData()
Import data via .csv files into the VIEWS_NETN environment. The path should be where csvs are on your machine or server.
importCSV(path = "./data/", zip_name = "NETN_Forest_20260827.zip")
# update path to location on your computer
Another approach is to use the NPSutils package to download the data package in R, and then import the csvs.
pak::pkg_install("doi-nps/NPSutils")
NPSutils::get_data_package(2315861)
importCSV("./data/2315861")
Once you’ve loaded the forestNETN package and have
imported the data, you can look at the individual views with the
following code:
# See list of views
names(VIEWS_NETN)
# See first 6 rows of Tree Data
head(VIEWS_NETN$TreesByEvent_NETN)
# View the Seedling Data
View(VIEWS_NETN$MicroplotSeedlings_NETN)
# Check structure of the stand info view
str(VIEWS_NETN$StandInfoPhotos_NETN)
While this approach works, the easier approach is to use the “join” functions in the R package, which access the same files, but allow you to query data based on the park, years sample, species type, etc. See specific join tabs on how to use the various functions.
The functions in forestNETN have help documentation like
any R package. To view the help, you can go to the Packages tab and
click on forestNETN. That will show you all the functions in the
package. Clicking on individual functions will take you to the help
documentation for that function.
You can also see the help of a function by running, for example:
?importCSV
If forestNETN isn’t loaded yet, you’d run:
?forestNETN::importCSV
Each function’s help includes a Description, Usage (i.e. function arguments and their defaults), Argument options/definitions, and several examples showing how the function can be used.
This is where you come in! If you notice typos or can think of better descriptions, examples, error messages, etc., please send them my way!
Finally, if you ever want to peak under the hood at the function, you can view it several ways.View code in the GitHub katemmiller/forestNETN repo. The functions are in the R folder.
If you want to use the print_head() function that shows output in
later tabs, run the code below. This function makes the results print
cleaner than if you just run head(dataframe), which is also
fine.
print_head <- function(df){
knitr::kable(df[1:6,]) |> #, table.attr = "style='width:60%;'") |>
kableExtra::kable_classic(full_width = T, font_size = 12,
bootstrap_options = c("condensed")) |>
kableExtra::scroll_box(width = "900px")
}
This function compiles location and visit-level data about each plot, including years sampled, X/Y coordinates taken at the plot center, and notes about the site. This function is often used to join the results of other functions to, to ensure that all plots are represented in the final dataset.
Compile all visits that have occurred in ACAD
acad <- joinLocEvent(park = "ACAD")
Compile the most recent sample of each plot in ACAD
Note that in 2021, two panels were sampled. To get the most recent survey of each plot, the 3rd panel should be dropped.
acad4yr <- joinLocEvent(park = "ACAD", from = 2023, to = 2026)
print_head(acad4yr[,1:24]) # dropping long text fields
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | IsAbandoned | PlotID | xCoordinate | yCoordinate | ZoneCode | PhysiographyCode | PhysiographyLabel | PhysiographySummary | Aspect | Orientation | GRTS | IsOrientationChanged | IsStuntedWoodland | EventID | IsQAQC | SampleYear | SampleDate | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6 | ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | FALSE | 1 | 574066 | 4913328 | 19N | 31 | Swamps/Bogs | Hydric | 0 | 232 | 17 | FALSE | FALSE | 1869 | FALSE | 2026 | 2026-06-22 |
| 12 | ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | FALSE | 9 | 575371 | 4911411 | 19N | 22 | Rolling Uplands | Mesic | 360 | 136 | 19 | FALSE | FALSE | 1870 | FALSE | 2026 | 2026-06-22 |
| 18 | ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | FALSE | 24 | 574969 | 4909331 | 19N | 11 | Dry Tops | Xeric | 150 | 336 | 31 | FALSE | TRUE | 1878 | FALSE | 2026 | 2026-06-21 |
| 24 | ACAD-004 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 4 | FALSE | 25 | 556272 | 4914012 | 19N | 21 | Flatwoods | Mesic | 290 | 110 | 36 | FALSE | FALSE | 1853 | FALSE | 2026 | 2026-06-15 |
| 30 | ACAD-005 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 5 | FALSE | 33 | 563669 | 4911926 | 19N | 12 | Dry Slopes | Xeric | 360 | 182 | 32 | FALSE | FALSE | 1861 | FALSE | 2026 | 2026-06-14 |
| 36 | ACAD-006 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 6 | FALSE | 48 | 556874 | 4909854 | 19N | 11 | Dry Tops | Xeric | 100 | 286 | 2 | FALSE | TRUE | 1892 | FALSE | 2026 | 2026-07-05 |
Compile the most recent sample of each plot in ACAD, excluding stunted woodlands.
acad4yr <- joinLocEvent(park = "ACAD", from = 2023, to = 2026) |>
dplyr::filter(IsStuntedWoodland == FALSE)
print_head(acad4yr[,1:24]) # dropping long text fields
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | IsAbandoned | PlotID | xCoordinate | yCoordinate | ZoneCode | PhysiographyCode | PhysiographyLabel | PhysiographySummary | Aspect | Orientation | GRTS | IsOrientationChanged | IsStuntedWoodland | EventID | IsQAQC | SampleYear | SampleDate |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | FALSE | 1 | 574066 | 4913328 | 19N | 31 | Swamps/Bogs | Hydric | 0 | 232 | 17 | FALSE | FALSE | 1869 | FALSE | 2026 | 2026-06-22 |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | FALSE | 9 | 575371 | 4911411 | 19N | 22 | Rolling Uplands | Mesic | 360 | 136 | 19 | FALSE | FALSE | 1870 | FALSE | 2026 | 2026-06-22 |
| ACAD-004 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 4 | FALSE | 25 | 556272 | 4914012 | 19N | 21 | Flatwoods | Mesic | 290 | 110 | 36 | FALSE | FALSE | 1853 | FALSE | 2026 | 2026-06-15 |
| ACAD-005 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 5 | FALSE | 33 | 563669 | 4911926 | 19N | 12 | Dry Slopes | Xeric | 360 | 182 | 32 | FALSE | FALSE | 1861 | FALSE | 2026 | 2026-06-14 |
| ACAD-007 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 7 | FALSE | 49 | 556675 | 4910889 | 19N | 23 | Moist Slopes and Coves | Mesic | 338 | 161 | 21 | FALSE | FALSE | 1879 | FALSE | 2026 | 2026-06-22 |
| ACAD-008 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 8 | FALSE | 57 | 558967 | 4908990 | 19N | 32 | Small Drain | Hydric | 70 | 259 | 33 | FALSE | FALSE | 1893 | FALSE | 2026 | 2026-07-06 |
Compiles a list of additional species, which are species detected on the plot during a timed 15-minute search of the plot, and only includes species not detected in other protocol modules (i.e. microplots or quadrats).
View additional species for all plots in WEFA
wefa <- joinAdditionalSpecies(park = "WEFA")
print_head(wefa)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | SQAddSppCode | TSN | ScientificName | addspp_present | Exotic | InvasiveNETN | Confidence | IsCollected | Note | SQAddSppNotes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| WEFA-001 | NETN | WEFA | WEFA | VS | 2 | 1 | 8 | 29 | FALSE | 2007 | 2007-07-04 | 1 | SS | 18722 | Actaea pachypoda | 1 | FALSE | FALSE | 0 | FALSE | NA | NA |
| WEFA-001 | NETN | WEFA | WEFA | VS | 2 | 1 | 8 | 29 | FALSE | 2007 | 2007-07-04 | 1 | SS | 19290 | Quercus alba | 1 | FALSE | FALSE | 0 | FALSE | NA | NA |
| WEFA-001 | NETN | WEFA | WEFA | VS | 2 | 1 | 8 | 29 | FALSE | 2007 | 2007-07-04 | 1 | SS | 19408 | Quercus rubra | 1 | FALSE | FALSE | 0 | FALSE | NA | NA |
| WEFA-001 | NETN | WEFA | WEFA | VS | 2 | 1 | 8 | 29 | FALSE | 2007 | 2007-07-04 | 1 | SS | 19504 | Carpinus caroliniana | 1 | FALSE | FALSE | 0 | FALSE | NA | NA |
| WEFA-001 | NETN | WEFA | WEFA | VS | 2 | 1 | 8 | 29 | FALSE | 2007 | 2007-07-04 | 1 | SS | 22444 | Populus | 1 | FALSE | FALSE | 0 | FALSE | NA | NA |
| WEFA-001 | NETN | WEFA | WEFA | VS | 2 | 1 | 8 | 29 | FALSE | 2007 | 2007-07-04 | 1 | SS | 23677 | Kalmia latifolia | 1 | FALSE | FALSE | 0 | FALSE | NA | NA |
Compiles coarse wood debris (CWD) volumn data (m3/ha). Coarse woody debris is sampled along three 15m line-intercept transects per plot.
View CWD volume for all plots in ACAD
acad <- joinCWDData(park = "ACAD")
print_head(acad)
| Plot_Name | ParkUnit | ParkSubUnit | SampleYear | SampleDate | cycle | IsQAQC | TSN | ScientificName | DecayClassCode | CWD_Vol |
|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | 1 | FALSE | 18034 | Picea rubens | 1 | 3.953260 |
| ACAD-001 | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | 1 | FALSE | 18034 | Picea rubens | 3 | 25.833453 |
| ACAD-001 | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | 1 | FALSE | 18034 | Picea rubens | 2 | 3.321836 |
| ACAD-001 | ACAD | ACAD_Schoodic | 2010 | 2010-07-27 | 2 | FALSE | 18034 | Picea rubens | 4 | 7.937905 |
| ACAD-001 | ACAD | ACAD_Schoodic | 2010 | 2010-07-27 | 2 | FALSE | 18034 | Picea rubens | 3 | 27.950232 |
| ACAD-001 | ACAD | ACAD_Schoodic | 2010 | 2010-07-27 | 2 | FALSE | 18034 | Picea rubens | 1 | 3.755685 |
View CWD volume for the most recent survey of plots in MABI outputting in ft3/acre
mabi_ac <- joinCWDData(park = "MABI", from = 2023, to = 2026, units = "acres")
print_head(mabi_ac)
| Plot_Name | ParkUnit | ParkSubUnit | SampleYear | SampleDate | cycle | IsQAQC | TSN | ScientificName | DecayClassCode | CWD_Vol |
|---|---|---|---|---|---|---|---|---|---|---|
| MABI-001 | MABI | MABI | 2023 | 2023-06-05 | 5 | FALSE | NA | None present | NA | 0.00000 |
| MABI-001 | MABI | MABI | 2023 | 2023-06-05 | 5 | FALSE | 19481 | Betula alleghaniensis | 1 | 43.83618 |
| MABI-002 | MABI | MABI | 2023 | 2023-06-05 | 5 | FALSE | 183385 | Pinus strobus | 3 | 1795.48216 |
| MABI-003 | MABI | MABI | 2023 | 2023-06-07 | 5 | FALSE | -9999999944 | Unknown Hardwood | 3 | 225.21861 |
| MABI-003 | MABI | MABI | 2023 | 2023-06-07 | 5 | FALSE | NA | None present | NA | 0.00000 |
| MABI-003 | MABI | MABI | 2023 | 2023-06-07 | 5 | FALSE | 28731 | Acer saccharum | 3 | 711.88223 |
View sapling data for all plots in ACAD
acad <- joinMicroSaplings(park = "ACAD")
print_head(acad)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | SQSaplingCode | MicroplotCode | TSN | ScientificName | CanopyExclusion | Exotic | InvasiveNETN | DBHcm | Count |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | 2006 | 2006-06-06 | 1 | FALSE | NS | B | NA | Not Sampled | NA | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | 2006 | 2006-06-06 | 1 | FALSE | NS | UL | NA | Not Sampled | NA | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | 2006 | 2006-06-06 | 1 | FALSE | NP | UR | NA | None present | NA | NA | NA | NA | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010 | 2010-07-27 | 2 | FALSE | SS | B | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 2.7 | 1 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010 | 2010-07-27 | 2 | FALSE | SS | B | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 2.1 | 1 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010 | 2010-07-27 | 2 | FALSE | SS | B | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 2.5 | 1 |
View sapling data for native canopy-forming species only for all plots in ACAD
acad_natcan <- joinMicroSaplings(park = "ACAD", speciesType = "native", canopyForm = "canopy")
print_head(acad_natcan)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | SQSaplingCode | MicroplotCode | TSN | ScientificName | CanopyExclusion | Exotic | InvasiveNETN | DBHcm | Count |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | 2006 | 2006-06-06 | 1 | FALSE | NS | B | NA | Not Sampled | NA | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | 2006 | 2006-06-06 | 1 | FALSE | NS | UL | NA | Not Sampled | NA | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | 2006 | 2006-06-06 | 1 | FALSE | NP | UR | NA | None present | NA | NA | NA | NA | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010 | 2010-07-27 | 2 | FALSE | SS | B | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 2.7 | 1 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010 | 2010-07-27 | 2 | FALSE | SS | B | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 2.1 | 1 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010 | 2010-07-27 | 2 | FALSE | SS | B | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 2.5 | 1 |
Compiles seedling data collected within three 2-m radius microplots on the plot. Seedlings are >=15cm tall and <1cm DBH, and are tallied by size class.
View seedling data for all plots in SARA
sara <- joinMicroSeedlings(park = "SARA")
print_head(sara)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | SQSeedlingCode | SQSeedlingNotes | MicroplotCode | TSN | ScientificName | CanopyExclusion | Exotic | InvasiveNETN | Seedlings_15_30cm | Seedlings_30_100cm | Seedlings_100_150cm | Seedlings_Above_150cm | tot_seeds |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 25 | 2006 | 2006-08-08 | 1 | FALSE | NS | NA | B | NA | Not Sampled | NA | NA | NA | NA | NA | NA | NA | NA |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 25 | 2006 | 2006-08-08 | 1 | FALSE | NS | NA | UL | NA | Not Sampled | NA | NA | NA | NA | NA | NA | NA | NA |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 25 | 2006 | 2006-08-08 | 1 | FALSE | NP | NA | UR | NA | None present | NA | NA | NA | 0 | 0 | 0 | 0 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | 2010 | 2010-06-02 | 2 | FALSE | SS | NA | B | 32931 | Fraxinus americana | FALSE | FALSE | FALSE | 3 | 3 | 0 | 0 | 6 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | 2010 | 2010-06-02 | 2 | FALSE | SS | NA | UL | 19300 | Quercus bicolor | FALSE | FALSE | FALSE | 3 | 3 | 0 | 0 | 6 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | 2010 | 2010-06-02 | 2 | FALSE | SS | NA | UL | 19049 | Ulmus americana | FALSE | FALSE | FALSE | 1 | 0 | 0 | 0 | 1 |
View seedling data for native canopy-forming species only for all plots in SARA
sara_natcan <- joinMicroSeedlings(park = "SARA", speciesType = "native", canopyForm = "canopy")
print_head(sara_natcan)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | SQSeedlingCode | SQSeedlingNotes | MicroplotCode | TSN | ScientificName | CanopyExclusion | Exotic | InvasiveNETN | Seedlings_15_30cm | Seedlings_30_100cm | Seedlings_100_150cm | Seedlings_Above_150cm | tot_seeds |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 25 | 2006 | 2006-08-08 | 1 | FALSE | NS | NA | B | NA | Not Sampled | NA | NA | NA | NA | NA | NA | NA | NA |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 25 | 2006 | 2006-08-08 | 1 | FALSE | NS | NA | UL | NA | Not Sampled | NA | NA | NA | NA | NA | NA | NA | NA |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 25 | 2006 | 2006-08-08 | 1 | FALSE | NP | NA | UR | NA | None present | NA | NA | NA | 0 | 0 | 0 | 0 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | 2010 | 2010-06-02 | 2 | FALSE | SS | NA | B | 32931 | Fraxinus americana | FALSE | FALSE | FALSE | 3 | 3 | 0 | 0 | 6 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | 2010 | 2010-06-02 | 2 | FALSE | SS | NA | UL | 19300 | Quercus bicolor | FALSE | FALSE | FALSE | 3 | 3 | 0 | 0 | 6 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | 2010 | 2010-06-02 | 2 | FALSE | SS | NA | UL | 19049 | Ulmus americana | FALSE | FALSE | FALSE | 1 | 0 | 0 | 0 | 1 |
This function combines the sapling and seedling data from the previous 2 functions and also calculates a regeneration stocking index.
View regeneration data for all plots in ACAD
acad <- joinRegenData(park = "ACAD")
print_head(acad)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | CanopyExclusion | Exotic | InvasiveNETN | num_micros_seed | num_micros_sap | seed_15_30cm | seed_30_100cm | seed_100_150cm | seed_p150cm | stock | seed_den | sap_den | sap_den_SI | regen_den |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | FALSE | 2006 | 2006-06-06 | 1 | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 1 | 1 | 1.000000 | 1.000000 | 1.0000000 | 0.0000000 | 23.00000 | 3.000000 | 0.0000000 | 0.0000000 | 3.000000 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | FALSE | 2006 | 2006-06-06 | 1 | 183302 | Picea mariana | FALSE | FALSE | FALSE | 1 | 1 | 15.000000 | 20.000000 | 0.0000000 | 0.0000000 | 55.00000 | 35.000000 | 0.0000000 | 0.0000000 | 35.000000 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | FALSE | 2010 | 2010-07-27 | 2 | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 3 | 3 | 0.000000 | 3.000000 | 0.3333333 | 0.3333333 | 96.00000 | 3.666667 | 2.0000000 | 1.3333333 | 5.666667 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | FALSE | 2010 | 2010-07-27 | 2 | 18034 | Picea rubens | FALSE | FALSE | FALSE | 3 | 3 | 5.000000 | 23.666667 | 2.0000000 | 0.0000000 | 109.00000 | 30.666667 | 0.3333333 | 0.3333333 | 31.000000 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | FALSE | 2014 | 2014-07-14 | 3 | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 3 | 3 | 1.666667 | 1.333333 | 0.0000000 | 0.0000000 | 37.66667 | 3.000000 | 2.3333333 | 0.6666667 | 5.333333 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | FALSE | 2014 | 2014-07-14 | 3 | 18034 | Picea rubens | FALSE | FALSE | FALSE | 3 | 3 | 9.666667 | 20.666667 | 4.3333333 | 0.3333333 | 187.66667 | 35.000000 | 0.6666667 | 0.6666667 | 35.666667 |
View sapling data for native canopy-forming species only for all plots in ACAD
acad_natcan <- joinRegenData(park = "ACAD", speciesType = "native", canopyForm = "canopy")
print_head(acad_natcan)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | CanopyExclusion | Exotic | InvasiveNETN | num_micros_seed | num_micros_sap | seed_15_30cm | seed_30_100cm | seed_100_150cm | seed_p150cm | stock | seed_den | sap_den | sap_den_SI | regen_den |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | FALSE | 2006 | 2006-06-06 | 1 | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 1 | 1 | 1.000000 | 1.000000 | 1.0000000 | 0.0000000 | 23.00000 | 3.000000 | 0.0000000 | 0.0000000 | 3.000000 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | FALSE | 2006 | 2006-06-06 | 1 | 183302 | Picea mariana | FALSE | FALSE | FALSE | 1 | 1 | 15.000000 | 20.000000 | 0.0000000 | 0.0000000 | 55.00000 | 35.000000 | 0.0000000 | 0.0000000 | 35.000000 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | FALSE | 2010 | 2010-07-27 | 2 | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 3 | 3 | 0.000000 | 3.000000 | 0.3333333 | 0.3333333 | 96.00000 | 3.666667 | 2.0000000 | 1.3333333 | 5.666667 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | FALSE | 2010 | 2010-07-27 | 2 | 18034 | Picea rubens | FALSE | FALSE | FALSE | 3 | 3 | 5.000000 | 23.666667 | 2.0000000 | 0.0000000 | 109.00000 | 30.666667 | 0.3333333 | 0.3333333 | 31.000000 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | FALSE | 2014 | 2014-07-14 | 3 | 18032 | Abies balsamea | FALSE | FALSE | FALSE | 3 | 3 | 1.666667 | 1.333333 | 0.0000000 | 0.0000000 | 37.66667 | 3.000000 | 2.3333333 | 0.6666667 | 5.333333 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | FALSE | 2014 | 2014-07-14 | 3 | 18034 | Picea rubens | FALSE | FALSE | FALSE | 3 | 3 | 9.666667 | 20.666667 | 4.3333333 | 0.3333333 | 187.66667 | 35.000000 | 0.6666667 | 0.6666667 | 35.666667 |
View sapling data for most recent survey of plots in MORR
morr <- joinMicroNotes(park = "MORR", from = 2023, to = 2026)
head(morr)
## Plot_Name
## 1 MORR-017
## PlotID
## 1 126
## EventID
## 1 1816
## SampleYear
## 1 2026
## IsQAQC
## 1 FALSE
## Note_Type
## 1 Micro_Seedling
## Sample_Info
## 1 Microplot: B
## Notes
## 1 At least one browsed
View shrub data for all plots in ACAD
acad <- joinMicroShrubData(park = "ACAD")
print_head(acad)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | Pct_Cov_UR | Pct_Cov_UL | Pct_Cov_B | Txt_Cov_UR | Txt_Cov_UL | Txt_Cov_B | shrub_avg_cov | shrub_pct_freq | Exotic | InvasiveNETN | Shrub | Vine |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | FALSE | 2006 | 2006-06-06 | 1 | NA | None present | NA | NA | NA | Not Collected | Not Sampled | Not Sampled | NA | 0 | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | FALSE | 2010 | 2010-07-27 | 2 | NA | None present | 0 | 0 | 0 | 0% | 0% | 0% | 0 | 0 | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | FALSE | 2014 | 2014-07-14 | 3 | NA | None present | 0 | 0 | 0 | 0% | 0% | 0% | 0 | 0 | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 4 | FALSE | 2018 | 2018-07-02 | 4 | NA | None present | 0 | 0 | 0 | 0% | 0% | 0% | 0 | 0 | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1517 | FALSE | 2022 | 2022-07-14 | 5 | NA | None present | 0 | 0 | 0 | 0% | 0% | 0% | 0 | 0 | NA | NA | NA | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | NA | None present | 0 | 0 | 0 | 0% | 0% | 0% | 0 | 0 | NA | NA | NA | NA |
View shrub data for invasive species only for all plots in SARA from most recent survey of plots
sara_exo <- joinMicroShrubData(park = "SARA", speciesType = "invasive")
print_head(sara_exo)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | Pct_Cov_UR | Pct_Cov_UL | Pct_Cov_B | Txt_Cov_UR | Txt_Cov_UL | Txt_Cov_B | shrub_avg_cov | shrub_pct_freq | Exotic | InvasiveNETN | Shrub | Vine |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | FALSE | 2010 | 2010-06-02 | 2 | -9999999945 | Lonicera - Exotic | 0 | 3.0 | 7.5 | 0% | 1-5% | 5-10% | 5.2500000 | 100.00000 | TRUE | TRUE | 1 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 26 | FALSE | 2010 | 2010-06-02 | 2 | 28573 | Rhamnus cathartica | 0 | 3.0 | 0.0 | 0% | 1-5% | 0% | 1.5000000 | 50.00000 | TRUE | TRUE | 0 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 27 | FALSE | 2014 | 2014-05-27 | 3 | 28573 | Rhamnus cathartica | 0 | NA | 0.0 | 0% | Permanently Missing | 0% | NA | 100.00000 | TRUE | TRUE | 0 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 28 | FALSE | 2018 | 2018-06-04 | 4 | 28573 | Rhamnus cathartica | 3 | 3.0 | 0.1 | 1-5% | 1-5% | <1% | 2.0333333 | 100.00000 | TRUE | TRUE | 0 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 28 | FALSE | 2018 | 2018-06-04 | 4 | -9999999945 | Lonicera - Exotic | 0 | 3.0 | 17.5 | 0% | 1-5% | 10-25% | 6.8333333 | 66.66667 | TRUE | TRUE | 1 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 28 | FALSE | 2018 | 2018-06-04 | 4 | 24833 | Rosa multiflora | 0 | 0.1 | 0.0 | 0% | <1% | 0% | 0.0333333 | 33.33333 | TRUE | TRUE | 1 | 0 |
Compiles quadrat characteristic cover data collected in eight 1m2 quadrats.
View quadrat characteristic data for the most recent survey of plots in ROVA
rova <- joinQuadData(park = "ROVA", from = 2023, to = 2026)
print_head(rova)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | CharacterLabel | num_quads | num_trampled | quad_avg_cov | quad_pct_freq | SQ_UC | SQ_UR | SQ_MR | SQ_BR | SQ_BC | SQ_BL | SQ_ML | SQ_UL | Pct_Cov_UC | Pct_Cov_UR | Pct_Cov_MR | Pct_Cov_BR | Pct_Cov_BC | Pct_Cov_BL | Pct_Cov_ML | Pct_Cov_UL | Txt_Cov_UC | Txt_Cov_UR | Txt_Cov_MR | Txt_Cov_BR | Txt_Cov_BC | Txt_Cov_BL | Txt_Cov_ML | Txt_Cov_UL |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ROVA-001 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 1 | 5 | 1653 | FALSE | 2024 | 2024-05-29 | 5 | NonSphagnum | 8 | 0 | 5.5750 | 100.0 | SS | SS | SS | SS | SS | SS | SS | SS | 3.5 | 7.5 | 0.1 | 7.5 | 7.5 | 7.5 | 7.5 | 3.5 | 2-5% | 5-10% | <1% | 5-10% | 5-10% | 5-10% | 5-10% | 2-5% |
| ROVA-001 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 1 | 5 | 1653 | FALSE | 2024 | 2024-05-29 | 5 | Rock | 8 | 0 | 5.0625 | 87.5 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 3.5 | 1.5 | 7.5 | 1.5 | 1.5 | 17.5 | 7.5 | 0% | 2-5% | 1-2% | 5-10% | 1-2% | 1-2% | 10-25% | 5-10% |
| ROVA-001 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 1 | 5 | 1653 | FALSE | 2024 | 2024-05-29 | 5 | Stem | 8 | 0 | 0.4375 | 12.5 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3.5 | 0.0 | 0.0 | 0% | 0% | 0% | 0% | 0% | 2-5% | 0% | 0% |
| ROVA-001 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 1 | 5 | 1653 | FALSE | 2024 | 2024-05-29 | 5 | Sphagnum | 8 | 0 | 0.0000 | 0.0 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% |
| ROVA-001 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 1 | 5 | 1653 | FALSE | 2024 | 2024-05-29 | 5 | Lichens | 8 | 0 | 0.2375 | 62.5 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 0.1 | 0.0 | 0.1 | 0.0 | 0.1 | 1.5 | 0.1 | 0% | <1% | 0% | <1% | 0% | <1% | 1-2% | <1% |
| ROVA-001 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 1 | 5 | 1653 | FALSE | 2024 | 2024-05-29 | 5 | Soil | 8 | 0 | 0.1875 | 12.5 | SS | SS | SS | SS | SS | SS | SS | SS | 1.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1-2% | 0% | 0% | 0% | 0% | 0% | 0% | 0% |
View quadrat species data for the most recent survey of plots in ACAD
acad_q4yr <- joinQuadSpecies(park = "ACAD", from = 2023, to = 2026)
print_head(acad_q4yr)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | SQQuadSum | TSN | ScientificName | num_quads | SQ_UC | SQ_UR | SQ_MR | SQ_BR | SQ_BC | SQ_BL | SQ_ML | SQ_UL | Pct_Cov_UC | Pct_Cov_UR | Pct_Cov_MR | Pct_Cov_BR | Pct_Cov_BC | Pct_Cov_BL | Pct_Cov_ML | Pct_Cov_UL | Txt_Cov_UC | Txt_Cov_UR | Txt_Cov_MR | Txt_Cov_BR | Txt_Cov_BC | Txt_Cov_BL | Txt_Cov_ML | Txt_Cov_UL | Confidence | IsGerminant | quad_avg_cov | quad_pct_freq | Exotic | InvasiveNETN | Tree | TreeShrub | Shrub | Vine | Herbaceous | Graminoid | FernAlly | QuadSppNote | IsCollected |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 8 | 19478 | Betula | 8 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 | 0 | 0.0 | 0% | 0% | 0% | 0% | 0% | <1% | 0% | 0% | 1 | FALSE | 0.0125 | 12.5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | FALSE | NA | FALSE |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 8 | 28728 | Acer rubrum | 8 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 0.0 | 0.0 | 0.1 | 0.1 | 0.1 | 0 | 0.0 | 0% | 0% | 0% | <1% | <1% | <1% | 0% | 0% | 1 | TRUE | 0.0375 | 37.5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | FALSE | NA | FALSE |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 8 | 18034 | Picea rubens | 8 | SS | SS | SS | SS | SS | SS | SS | SS | 62.5 | 17.5 | 7.5 | 37.5 | 7.5 | 0.0 | 85 | 62.5 | 50-75% | 10-25% | 5-10% | 25-50% | 5-10% | 0% | 75-95% | 50-75% | 1 | FALSE | 35.0000 | 87.5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | FALSE | NA | FALSE |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 8 | 18032 | Abies balsamea | 8 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 7.5 | 62.5 | 1.5 | 0.0 | 7.5 | 0 | 17.5 | 0% | 5-10% | 50-75% | 1-2% | 0% | 5-10% | 0% | 10-25% | 1 | FALSE | 12.0625 | 62.5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | FALSE | NA | FALSE |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 8 | 23579 | Vaccinium angustifolium | 8 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 1.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0 | 0.0 | 0% | 1-2% | 0% | 0% | 0% | 0% | 0% | 0% | 1 | FALSE | 0.1875 | 12.5 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | FALSE | NA | FALSE |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 8 | 28728 | Acer rubrum | 8 | SS | SS | SS | SS | SS | SS | SS | SS | 0.0 | 0.0 | 0.0 | 0.1 | 0.0 | 0.0 | 0 | 0.0 | 0% | 0% | 0% | <1% | 0% | 0% | 0% | 0% | 1 | FALSE | 0.0125 | 12.5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | FALSE | NA | FALSE |
View quadrat notes for the most recent survey of plots in ROVA
rova <- joinQuadNotes(park = "ROVA", from = 2023, to = 2026)
print_head(rova)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | cycle | IsQAQC | Note_Type | Sample_Info | Note_Info | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ROVA-001 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 1 | 5 | 1653 | 2024 | 5 | FALSE | Quad_Species | NA | Unknown species | Vitaceae |
| ROVA-002 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 2 | 13 | 1654 | 2024 | 5 | FALSE | Quad_Species | NA | Athyrium filix-femina | Angustatum - DW |
| ROVA-003 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 3 | 20 | 1642 | 2024 | 5 | FALSE | Quad_Species | NA | Carex | tiny- too small to collect |
| ROVA-003 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 3 | 20 | 1642 | 2024 | 5 | FALSE | Quad_Species | Collected | Carex laxiflora | ID’d by David Werier. Unk Carex 1 + 2 combined |
| ROVA-003 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 3 | 20 | 1642 | 2024 | 5 | FALSE | Quad_Species | Collected | Carex rosea | Unk Carex 3 - ID’d by David Werier |
| ROVA-004 | NETN | ROVA | ROVA_HOFR_West | VS | 2 | 4 | 29 | 1643 | 2024 | 5 | FALSE | Quad_SQ_Character | SS | BL | BL water cover is ~10% |
Compiles soil chemistry data derived from the lab. Note that soil chemistry data typically take about 6 months to be received from the lab. The latest year of available lab data is 2025. From the 3rd to 5th cycle (2014 - 2025), 8% of plots were sampled for soil chemistry, with all plots being sampled once over that period. Starting in 2026, half of ACAD plots will be sampled per year for the next 2 cycles. Note also that soil horizons are QCed based on %TC, so that horizons with >=20% TC are classified as O and horizons <20% TC are classified as A. If this check results in 2 samples with the same horizon, their chemistry is averaged weighted on the depth of each sample.
View soil chemistry data for plots in ACAD from 2007 and later.
acad_soil <- joinSoilLabData(park = "ACAD", from = 2007)
print_head(acad_soil)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleDate | SampleYear | cycle | IsQAQC | Horizon_QC | Field_misID | horizon_depth | Weighted | num_samps | soilpH | pctLOI | pctTN | pctTC | Ca | K | Mg | P | Al | Fe | Mn | Na | Zn | acidity | ECEC | Ca_Al | C_N | Ca_meq | K_meq | Mg_meq | Na_meq | Al_meq | Fe_meq | Mn_meq | Zn_meq | BaseSat | CaSat | AlSat |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010-07-27 | 2010 | 2 | FALSE | O | 1 | 8.000000 | 0 | 3 | 3.46 | 86.4 | 1.071 | 45.040 | 1004.7 | 601.35 | 695.30 | 33.70 | 472.60 | 131.25 | 24.900 | 170.80 | 19.85 | 13.365 | 26.39172 | 1.431181 | 42.05416 | 5.013473 | 1.537980 | 5.720280 | 0.7662629 | 5.2550037 | 0.4700090 | 0.0906443 | 0.0607126 | 49.40184 | 18.99638 | 19.911561 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | 2014-07-14 | 2014 | 3 | FALSE | O | 0 | 9.333333 | 0 | 3 | 3.99 | 90.9 | 0.857 | 48.521 | 1414.0 | 815.80 | 797.60 | 59.34 | 649.10 | 209.10 | 136.300 | 216.50 | 26.14 | 15.750 | 32.41236 | 1.466526 | 56.61727 | 7.055888 | 2.086445 | 6.561909 | 0.9712876 | 7.2175686 | 0.7487914 | 0.4961776 | 0.0799511 | 51.44806 | 21.76913 | 22.267952 |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | 9 | 34 | 2010-07-27 | 2010 | 2 | FALSE | O | 1 | 10.000000 | 0 | 3 | 3.49 | 98.6 | 1.269 | 51.910 | 1379.9 | 681.75 | 945.95 | 65.40 | 203.75 | 32.25 | 18.900 | 217.10 | 32.60 | 10.395 | 27.76762 | 4.559340 | 40.90623 | 6.885728 | 1.743606 | 7.782394 | 0.9739794 | 2.2655671 | 0.1154879 | 0.0688023 | 0.0997094 | 62.61145 | 24.79769 | 8.159026 |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | 9 | 35 | 2014-07-14 | 2014 | 3 | FALSE | O | 0 | 7.666667 | 0 | 3 | 3.71 | 92.3 | 1.289 | 50.017 | 2292.5 | 673.50 | 820.50 | 47.13 | 212.00 | 61.00 | 57.500 | 228.05 | 36.33 | 9.450 | 30.37961 | 7.279901 | 38.80295 | 11.439621 | 1.722506 | 6.750309 | 1.0231045 | 2.3573017 | 0.2184423 | 0.2093193 | 0.1111179 | 68.91312 | 37.65558 | 7.759485 |
| ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | 24 | 96 | 2010-07-27 | 2010 | 2 | FALSE | O | 1 | 6.666667 | 0 | 3 | 3.77 | 91.5 | 1.162 | 47.920 | 1642.5 | 503.15 | 1307.50 | 39.70 | 256.30 | 78.60 | 15.600 | 448.90 | 25.35 | 9.405 | 31.61738 | 4.314284 | 41.23924 | 8.196108 | 1.286829 | 10.756890 | 2.0139076 | 2.8498888 | 0.2814682 | 0.0567892 | 0.0775348 | 70.38449 | 25.92279 | 9.013677 |
| ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | 24 | 98 | 2018-07-02 | 2018 | 4 | FALSE | O | 0 | 8.666667 | 0 | 3 | 4.10 | 94.6 | 1.170 | 47.953 | 2270.0 | 756.50 | 1872.00 | 58.70 | 80.70 | 34.78 | 36.605 | 1347.50 | 13.26 | 5.225 | 39.77589 | 18.936701 | 40.98547 | 11.327345 | 1.934783 | 15.401070 | 6.0453118 | 0.8973314 | 0.1245479 | 0.1332545 | 0.0405567 | 87.26018 | 28.47792 | 2.255968 |
View soil chemistry data of O horizon only for plots in ACAD from 2014 and later.
acad_soilO <- joinSoilLabData(park = "ACAD", layer = "O", from = 2014)
print_head(acad_soilO)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleDate | SampleYear | cycle | IsQAQC | Horizon_QC | Field_misID | horizon_depth | Weighted | num_samps | soilpH | pctLOI | pctTN | pctTC | Ca | K | Mg | P | Al | Fe | Mn | Na | Zn | acidity | ECEC | Ca_Al | C_N | Ca_meq | K_meq | Mg_meq | Na_meq | Al_meq | Fe_meq | Mn_meq | Zn_meq | BaseSat | CaSat | AlSat |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | 2014-07-14 | 2014 | 3 | FALSE | O | 0 | 9.333333 | 0 | 3 | 3.99 | 90.9 | 0.857 | 48.521 | 1414.0 | 815.80 | 797.6 | 59.34 | 649.10 | 209.10 | 136.300 | 216.50 | 26.14 | 15.750 | 32.41236 | 1.4665261 | 56.61727 | 7.055888 | 2.0864450 | 6.561909 | 0.9712876 | 7.2175686 | 0.7487914 | 0.4961776 | 0.0799511 | 51.44806 | 21.76913 | 22.267952 |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | 9 | 35 | 2014-07-14 | 2014 | 3 | FALSE | O | 0 | 7.666667 | 0 | 3 | 3.71 | 92.3 | 1.289 | 50.017 | 2292.5 | 673.50 | 820.5 | 47.13 | 212.00 | 61.00 | 57.500 | 228.05 | 36.33 | 9.450 | 30.37961 | 7.2799012 | 38.80295 | 11.439621 | 1.7225064 | 6.750309 | 1.0231045 | 2.3573017 | 0.2184423 | 0.2093193 | 0.1111179 | 68.91312 | 37.65558 | 7.759485 |
| ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | 24 | 98 | 2018-07-02 | 2018 | 4 | FALSE | O | 0 | 8.666667 | 0 | 3 | 4.10 | 94.6 | 1.170 | 47.953 | 2270.0 | 756.50 | 1872.0 | 58.70 | 80.70 | 34.78 | 36.605 | 1347.50 | 13.26 | 5.225 | 39.77589 | 18.9367011 | 40.98547 | 11.327345 | 1.9347826 | 15.401070 | 6.0453118 | 0.8973314 | 0.1245479 | 0.1332545 | 0.0405567 | 87.26018 | 28.47792 | 2.255968 |
| ACAD-004 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 4 | 25 | 102 | 2018-06-28 | 2018 | 4 | FALSE | O | 0 | 7.666667 | 0 | 3 | 4.00 | 49.1 | 0.661 | 28.643 | 694.0 | 217.35 | 247.4 | 11.65 | 784.50 | 97.05 | 21.625 | 58.90 | 11.69 | 19.475 | 25.79318 | 0.5955504 | 43.33283 | 3.463074 | 0.5558824 | 2.035376 | 0.2642441 | 8.7231282 | 0.3475380 | 0.0787222 | 0.0357547 | 24.49708 | 13.42631 | 33.819510 |
| ACAD-006 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 6 | 48 | 198 | 2014-06-30 | 2014 | 3 | FALSE | O | 0 | 9.000000 | 0 | 3 | 3.67 | 98.3 | 2.024 | 53.725 | 2312.0 | 651.00 | 690.5 | 90.95 | 71.85 | 14.01 | 28.505 | 106.35 | 33.57 | 10.350 | 29.72048 | 21.6627236 | 26.54397 | 11.536926 | 1.6649616 | 5.680790 | 0.4771198 | 0.7989251 | 0.0501701 | 0.1037677 | 0.1026763 | 65.13958 | 38.81810 | 2.688130 |
| ACAD-007 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 7 | 49 | 203 | 2014-06-23 | 2014 | 3 | FALSE | O | 0 | 9.000000 | 0 | 3 | 3.71 | 95.5 | 1.208 | 53.008 | 2125.0 | 715.00 | 786.0 | 84.15 | 92.20 | 29.39 | 93.150 | 188.25 | 41.68 | 9.450 | 29.19126 | 15.5160087 | 43.88079 | 10.603792 | 1.8286445 | 6.466475 | 0.8445491 | 1.0252039 | 0.1052462 | 0.3390972 | 0.1274813 | 67.63484 | 36.32523 | 3.512024 |
Compiles soil sample data collected in the field.
View soil sample data for plots in ACAD from 2014 and later.
acad_soil <- joinSoilSampleData(park = "ACAD", from = 2014)
print_head(acad_soil)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | IsQAQC | cycle | num_samps | Litter_cm | O_Horizon_cm | A_Horizon_cm | Total_Depth_cm | Lab_QC | Field_misID_O | Field_misID_A |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | 2014 | 2014-07-14 | FALSE | 3 | 3 | 0.6666667 | 9.333333 | 0.000000 | 9.333333 | TRUE | 0 | 0 |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | 9 | 35 | 2014 | 2014-07-14 | FALSE | 3 | 3 | 0.6666667 | 7.666667 | 0.000000 | 7.666667 | TRUE | 0 | 0 |
| ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | 24 | 98 | 2018 | 2018-07-02 | FALSE | 4 | 3 | 0.4333333 | 8.666667 | 0.000000 | 8.666667 | TRUE | 0 | 0 |
| ACAD-004 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 4 | 25 | 102 | 2018 | 2018-06-28 | FALSE | 4 | 3 | 5.0000000 | 7.666667 | 0.000000 | 7.666667 | TRUE | 0 | 0 |
| ACAD-005 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 5 | 33 | 138 | 2018 | 2018-06-25 | FALSE | 4 | 3 | 1.7666667 | 0.000000 | 7.833333 | 7.833333 | TRUE | 0 | 1 |
| ACAD-006 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 6 | 48 | 198 | 2014 | 2014-06-30 | FALSE | 3 | 3 | 4.3333333 | 9.000000 | 0.000000 | 9.000000 | TRUE | 0 | 0 |
Compiles data collected at the stand level that may help identify groups or covariates for analyses or explain differences among plots.
View stand data for plots in SAGA from all years.
saga_stnd <- joinStandData(park = "SAGA")
print_head(saga_stnd[,c(1:26, 30:ncol(saga_stnd))]) # dropping notes fields
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | xCoordinate | yCoordinate | EventID | SampleYear | SampleDate | cycle | IsQAQC | IsStuntedWoodland | Stand_Structure | Stand_Structure_Code | Pct_Crown_Closure | CrownClosureCode | Txt_Crown_Closure | Deer_Browse_Index | Microtopography | Earthworms | Water_on_Plot_Code | Water_on_Plot | PlotSlope | Pct_Understory_Low | Txt_Understory_Low | Pct_Understory_Mid | Txt_Understory_Mid | Pct_Understory_High | Txt_Understory_High | Pct_Bare_Soil | Txt_Bare_Soil | Pct_Bryophyte | Txt_Bryophyte | Pct_Lichen | Txt_Lichen | Pct_Rock | Txt_Rock | Pct_Trampled | Txt_Trampled | Pct_Water | Txt_Water | Avg_Height_Codom | Avg_Height_Inter |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SAGA-001 | NETN | SAGA | SAGA | VS | 1 | 1 | 6 | 712527 | 4819562 | 21 | 2006 | 2006-08-01 | 1 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | NA | 1 | 0 | 0 | None | 9.0 | 15 | 5-25% | 15 | 5-25% | 85.0 | 75-95% | 0 | 0% | NA | Not Collected | NA | Not Collected | 0 | 0% | 0 | 0% | NA | Not Collected | 36.10000 | NA |
| SAGA-001 | NETN | SAGA | SAGA | VS | 1 | 1 | 6 | 712527 | 4819562 | 22 | 2010 | 2010-06-15 | 2 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | 3 | 1 | 1 | 0 | None | 7.0 | 3 | 1-5% | 0 | 0% | 15.0 | 5-25% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | NA | Permanently Missing | 40.10000 | NA |
| SAGA-001 | NETN | SAGA | SAGA | VS | 1 | 1 | 6 | 712527 | 4819562 | 23 | 2014 | 2014-06-09 | 3 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | 3 | 1 | 1 | 0 | None | 8.1 | 15 | 5-25% | 15 | 5-25% | 62.5 | 50-75% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 41.20000 | 32.26667 |
| SAGA-001 | NETN | SAGA | SAGA | VS | 1 | 1 | 6 | 712527 | 4819562 | 24 | 2018 | 2018-06-12 | 4 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | 4 | 1 | 0 | 0 | None | 8.1 | 3 | 1-5% | 3 | 1-5% | 15.0 | 5-25% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 23.76667 | 19.23333 |
| SAGA-001 | NETN | SAGA | SAGA | VS | 1 | 1 | 6 | 712527 | 4819562 | 1551 | 2023 | 2023-05-31 | 5 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | 4 | 1 | 0 | 0 | None | 8.2 | 3 | 1-5% | 3 | 1-5% | 15.0 | 5-25% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 23.16667 | 17.80000 |
| SAGA-002 | NETN | SAGA | SAGA | VS | 1 | 2 | 14 | 712290 | 4819882 | 53 | 2006 | 2006-08-02 | 1 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | NA | 1 | 0 | 0 | None | 33.0 | 15 | 5-25% | 15 | 5-25% | 37.5 | 25-50% | 3 | 1-5% | NA | Not Collected | NA | Not Collected | 0 | 0% | 0 | 0% | NA | Not Collected | 36.20000 | NA |
View stand data for plots in ACAD from most recent survey of plots.
acad_stnd4 <- joinStandData(park = "ACAD", from = 2023, to = 2026)
print_head(acad_stnd4)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | xCoordinate | yCoordinate | EventID | SampleYear | SampleDate | cycle | IsQAQC | IsStuntedWoodland | Stand_Structure | Stand_Structure_Code | Pct_Crown_Closure | CrownClosureCode | Txt_Crown_Closure | Deer_Browse_Index | Microtopography | Earthworms | Water_on_Plot_Code | Water_on_Plot | Weather_Photo | PhotoNotes | StandNotes | PlotSlope | Pct_Understory_Low | Txt_Understory_Low | Pct_Understory_Mid | Txt_Understory_Mid | Pct_Understory_High | Txt_Understory_High | Pct_Bare_Soil | Txt_Bare_Soil | Pct_Bryophyte | Txt_Bryophyte | Pct_Lichen | Txt_Lichen | Pct_Rock | Txt_Rock | Pct_Trampled | Txt_Trampled | Pct_Water | Txt_Water | Avg_Height_Codom | Avg_Height_Inter |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 574066 | 4913328 | 1869 | 2026 | 2026-06-22 | 6 | FALSE | FALSE | Multi-aged | 3 | 37.5 | 3 | 25-50% | 2 | 1 | 0 | 0 | None | Sun | NA | NA | NA | 62.5 | 50-75% | 62.5 | 50-75% | 37.5 | 25-50% | 0 | 0% | 97.5 | 95-100% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 16.333333 | NA |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | 9 | 575371 | 4911411 | 1870 | 2026 | 2026-06-22 | 6 | FALSE | FALSE | Woodland (ACAD only) | 6 | 37.5 | 3 | 25-50% | 3 | 1 | 0 | 0 | None | Clouds | NA | NA | NA | 85.0 | 75-95% | 62.5 | 50-75% | 37.5 | 25-50% | 0 | 0% | 85.0 | 75-95% | 3 | 1-5% | 0 | 0% | 0 | 0% | 0 | 0% | 7.550000 | 6.266667 |
| ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | 24 | 574969 | 4909331 | 1878 | 2026 | 2026-06-21 | 6 | FALSE | TRUE | Woodland (ACAD only) | 6 | 37.5 | 3 | 25-50% | 3 | 1 | 0 | 0 | None | Sun | NA | NA | NA | 62.5 | 50-75% | 62.5 | 50-75% | 37.5 | 25-50% | 0 | 0% | 15.0 | 5-25% | 15 | 5-25% | 0 | 0% | 0 | 0% | 0 | 0% | 5.766667 | 4.566667 |
| ACAD-004 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 4 | 25 | 556272 | 4914012 | 1853 | 2026 | 2026-06-15 | 6 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | 4 | 1 | 0 | 0 | None | Rain | NA | NA | NA | 3.0 | 1-5% | 0.0 | 0% | 3.0 | 1-5% | 0 | 0% | 3.0 | 1-5% | 0 | 0% | 0 | 0% | 0 | 0% | 0 | 0% | 21.033333 | 16.033333 |
| ACAD-005 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 5 | 33 | 563669 | 4911926 | 1861 | 2026 | 2026-06-14 | 6 | FALSE | FALSE | Multi-aged | 3 | 87.5 | 5 | 75-100% | 4 | 1 | 1 | 0 | None | Rain | NA | NA | NA | 15.0 | 5-25% | 15.0 | 5-25% | 62.5 | 50-75% | 3 | 1-5% | 15.0 | 5-25% | 0 | 0% | 15 | 5-25% | 0 | 0% | 0 | 0% | 12.200000 | 9.066667 |
| ACAD-006 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 6 | 48 | 556874 | 4909854 | 1892 | 2026 | 2026-07-05 | 6 | FALSE | TRUE | Woodland (ACAD only) | 6 | 62.5 | 4 | 50-75% | 3 | 1 | 0 | 0 | None | Sun | NA | Deer browse is quite common on the edges of the plot. We were considering a 4, but browse has not extended to browse NP species yet. | NA | 15.0 | 5-25% | 15.0 | 5-25% | 62.5 | 50-75% | 0 | 0% | 3.0 | 1-5% | 0 | 0% | 3 | 1-5% | 0 | 0% | 0 | 0% | 8.400000 | 7.133333 |
View stand disturbances recorded for plots in ACAD from all years.
acad_stnd <- joinStandDisturbance(park = "ACAD")
print_head(acad_stnd)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | DisturbanceCode | DisturbanceSummary | ThresholdCode | ThresholdLabel | DisturbanceCoverClassCode | DisturbanceCoverClassLabel | DisturbanceNote |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | 2006 | 2006-06-06 | 1 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | 2010 | 2010-07-27 | 2 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | 2014 | 2014-07-14 | 3 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 4 | 2018 | 2018-07-02 | 4 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1517 | 2022 | 2022-07-14 | 5 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | 2026 | 2026-06-22 | 6 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
View stand disturbances for plots in ACAD from most recent survey of plots.
acad_stnd4 <- joinStandDisturbance(park = "ACAD", from = 2023, to = 2026)
print_head(acad_stnd4)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | DisturbanceCode | DisturbanceSummary | ThresholdCode | ThresholdLabel | DisturbanceCoverClassCode | DisturbanceCoverClassLabel | DisturbanceNote |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | 2026 | 2026-06-22 | 6 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | 9 | 1870 | 2026 | 2026-06-22 | 6 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | 24 | 1878 | 2026 | 2026-06-21 | 6 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-004 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 4 | 25 | 1853 | 2026 | 2026-06-15 | 6 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-005 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 5 | 33 | 1861 | 2026 | 2026-06-14 | 6 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
| ACAD-006 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 6 | 48 | 1892 | 2026 | 2026-07-05 | 6 | FALSE | 0 | None | NA | Not Applicable | NA | Not Applicable | NA |
Join all tree data from all surveys of plots in ACAD.
acad_live <- joinTreeData(park = "ACAD")
Join live tree data from the most recent survey of plots in ACAD.
acad_live <- joinTreeData(park = "ACAD", status = 'live', from = 2023, to = 2026)
print_head(acad_live)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | TagCode | Fork | Azimuth | Distance | DBHcm | IsDBHVerified | TreeStatusCode | CrownClassCode | DecayClassCode | Pct_Tot_Foliage_Cond | HWACode | BBDCode | BA_cm2 | num_stems | TreeEventNote |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 3 | NA | 251 | 7.3 | 19.3 | FALSE | AS | 3 | NA | 30.0 | NA | NA | 292.5530 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 6 | NA | 280 | 5.6 | 20.5 | FALSE | AS | 3 | NA | 5.5 | NA | NA | 330.0636 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 14 | NA | 1 | 5.2 | 22.2 | FALSE | AS | 3 | NA | 5.5 | NA | NA | 387.0756 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 18 | NA | 44 | 5.7 | 25.6 | FALSE | AS | 3 | NA | 5.5 | NA | NA | 514.7185 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 21 | NA | 109 | 9.0 | 32.0 | FALSE | AS | 3 | NA | 5.5 | NA | NA | 804.2477 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 29 | NA | 194 | 5.8 | 26.3 | FALSE | AS | 3 | NA | 5.5 | NA | NA | 543.2521 | 1 | NA |
Join dead tree data from the most recent survey of plots in ACAD.
acad_dead <- joinTreeData(park = "ACAD", status = 'dead', from = 2023, to = 2026)
print_head(acad_dead)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | TagCode | Fork | Azimuth | Distance | DBHcm | IsDBHVerified | TreeStatusCode | CrownClassCode | DecayClassCode | Pct_Tot_Foliage_Cond | HWACode | BBDCode | BA_cm2 | num_stems | TreeEventNote |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 2 | NA | 240 | 6.6 | 13.5 | FALSE | DS | NA | 2 | NA | NA | NA | 143.1388 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 7 | NA | 291 | 7.1 | 11.6 | FALSE | DB | NA | 3 | NA | NA | NA | 105.6832 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 8 | NA | 298 | 5.2 | NA | NA | DF | NA | NA | NA | NA | NA | NA | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 11 | NA | 336 | 5.3 | 28.2 | TRUE | DS | NA | 1 | NA | NA | NA | 624.5800 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 12 | NA | 22 | 1.1 | 24.5 | FALSE | DS | NA | 1 | NA | NA | NA | 471.4352 | 1 | NA |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 13 | NA | 2 | 3.6 | 15.6 | TRUE | DS | NA | 2 | NA | NA | NA | 191.1345 | 1 | NA |
Compiles tree conditions for live and dead standing trees. Only presence of cavities is recorded for dead trees.
Join tree condition data from the most recent survey of plots in ACAD.
acad_cond <- joinTreeConditions(park = "ACAD", from = 2023, to = 2026)
print_head(acad_cond)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | TagCode | TreeStatusCode | BBDCode | HWACode | num_cond | H | NO | AD | ALB | BBD | BLD | BC | BWA | CAVL | CAVS | CW | DBT | DOG | EAB | EB | EHS | G | GM | HWA | ID | OTH | RPS | SB | SLF | SOD | SPB | SW | VIN_B | VIN_C |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 2 | DS | NA | NA | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 3 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 6 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 7 | DB | NA | NA | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 8 | DF | NA | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 11 | DS | NA | NA | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Join tree condition data for live trees only from the most recent survey of plots in ACAD.
acad_lcond <- joinTreeConditions(park = "ACAD", status = 'live', from = 2023, to = 2026)
print_head(acad_lcond)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | TSN | ScientificName | TagCode | TreeStatusCode | BBDCode | HWACode | num_cond | H | AD | ALB | BBD | BLD | BC | BWA | CAVL | CAVS | CW | DBT | DOG | EAB | EB | EHS | G | GM | HWA | ID | OTH | RPS | SB | SLF | SOD | SPB | SW | VIN_B | VIN_C |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 3 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 6 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 14 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 18 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 21 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 18034 | Picea rubens | 29 | AS | NA | NA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Join tree foliage condition data from the most recent survey of plots in ACAD.
acad_fcond <- joinTreeFoliageCond(park = "ACAD", from = 2023, to = 2026)
print_head(acad_fcond)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | TSN | ScientificName | TagCode | Pct_Tot_Foliage_Cond | Txt_Tot_Foliage_Cond | Pct_Leaves_Aff_C | Pct_Leaves_Aff_H | Pct_Leaves_Aff_L | Pct_Leaves_Aff_N | Pct_Leaves_Aff_S | Pct_Leaves_Aff_W | Pct_Leaves_Aff_O | Pct_Leaf_Area_C | Pct_Leaf_Area_H | Pct_Leaf_Area_N |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 18034 | Picea rubens | 3 | 30.0 | 10-50% | 0 | 0 | 30.0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 18034 | Picea rubens | 6 | 5.5 | 1-10% | 0 | 0 | 5.5 | 5.5 | 0 | 0 | 0 | 0 | 0 | 95 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 18034 | Picea rubens | 14 | 5.5 | 1-10% | 0 | 0 | 5.5 | 5.5 | 0 | 0 | 0 | 0 | 0 | 95 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 18034 | Picea rubens | 18 | 5.5 | 1-10% | 0 | 0 | 5.5 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 18034 | Picea rubens | 21 | 5.5 | 1-10% | 0 | 0 | 5.5 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 18034 | Picea rubens | 29 | 5.5 | 1-10% | 0 | 0 | 5.5 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 |
Join tree notes from all visits to plots in ACAD.
acad_notes <- joinTreeNotes(park = "ACAD")
print_head(acad_notes)
| Plot_Name | PlotID | EventID | Network | ParkUnit | ParkSubUnit | SampleDate | SampleYear | IsQAQC | Note_Type | Sample_Info | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006-06-06 | 2006 | FALSE | Tree_Notes | Tree Tag: 9 | tree note: date unknown: no tag, near tree #8, no tag, near tree #8 |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006-06-06 | 2006 | FALSE | Tree_Notes | Tree Tag: 10 | tree note: date unknown: not tagged |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006-06-06 | 2006 | FALSE | Tree_Notes | Tree Tag: 11 | foliage brown |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006-06-06 | 2006 | FALSE | Tree_Notes | Tree Tag: 21 | some needle loss |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006-06-06 | 2006 | FALSE | Tree_Notes | Tree Tag: 8 | wounds on bark, brown needles |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006-06-06 | 2006 | FALSE | Tree_Notes | Tree Tag: 26 | tree note: date unknown: 20190131 KMM: XP in following cycle, so updated status here., outside of plot |
Join visits notes from all plots in ACAD.
acad_vn <- joinVisitNotes(park = "ACAD")
print_head(acad_vn)
| Plot_Name | PlotID | EventID | Network | ParkUnit | ParkSubUnit | SampleYear | SampleDate | IsQAQC | cycle | Note_Type | Sample_Info | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | FALSE | 1 | Soil_Event | NA |
|
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | FALSE | 1 | Stand_Notes | NA | Mosaic between two-storied and multi. High water table. No Stand Height data recorded; Akozlowski Feb 2010. |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | FALSE | 1 | Tree_Notes | Tree Tag: 1 | tree note: date unknown: no crown class, did not ta, near plot center., no crown class, did not tag, near plot center. |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | FALSE | 1 | Tree_Notes | Tree Tag: 10 | tree note: date unknown: not tagged |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | FALSE | 1 | Tree_Notes | Tree Tag: 11 | foliage brown |
| ACAD-001 | 1 | 1 | NETN | ACAD | ACAD_Schoodic | 2006 | 2006-06-06 | FALSE | 1 | Tree_Notes | Tree Tag: 17 | tree note: date unknown: 20190131 KMM: XP in following cycle, so updated status here., outside of plot; 20210108 ces: Tree distance recorded was out of plot (10.9), changed to 10.7. Confirm that tree is in the plot at next visit. |
This function plots individual tree growth over time for all trees that were alive on their first record in the plot. Trees that started out as dead are not plotted. Each line on a graph represents the DBH of a live tree up until the first time it is classified as dead. Lines are color coded based on growth between visits to indicate shrinkage, slowing of growth, and/or fast growth. Each tick or X on the figure is a sample event for a given tree.
Make plot of red spruce for plots on Schoodic in panel 1
plotTreeGrowth(park = "ACAD", subunit = "Schoodic", panels = 1, species = "Picea rubens")
Plot tree growth for Eastern MDI and balsam fir on plots with elevated mortality
plotTreeGrowth(park = "ACAD", subunit = "MDI_East", species = "Abies balsamea", elev_mort = TRUE)
Plot growth for specific plots
plotTreeGrowth(plotName = c("ACAD-035", "ACAD-046"))
Plot beech for MORR with vertical line where BLD was detected
plotTreeGrowth(park = "MORR", from = 2006, to = 2026, species = "Fagus grandifolia", panels = 4) +
ggplot2::geom_vline(xintercept = 2019, lty = 'dashed')
Plot multiple species of oaks in MORR
plotTreeGrowth(park = "MORR", from = 2006, to = 2026,
species = c("Quercus rubra", "Quercus velutina", "Quercus alba", "Quercus montana"))
Plot hemlock in ROVA without plot title
plotTreeGrowth(park = "ROVA", species = "Tsuga canadensis", title = F)
Plot ash in SARA
plotTreeGrowth(park = "SARA",
species = c("Fraxinus americana", "Fraxinus pennsylvanica", "Fraxinus nigra"))
View plots with elevated mortality in SAGA
plotTreeGrowth(park = "SAGA", elev_mort = T)
View MORR plots with elevated mortality not from windthrow
plotTreeGrowth(park = "MORR", elev_mort = T, exc_wind = T)
This function converts tree distance and azimuth values to coordinates and plots the coordinates of live, dead, or excluded trees. Trees are color coded by status, and size is relative to DBH. Note that if multiple visits for a given plot are included in the function argument, only the most recent visit will be plotted. Therefore this function is best used on 1 to 4 year periods. Note that QA/QC events are not plotted with this function. Excluded trees are plotted with 10 cm DBH assigned, as these don’t get a DBH measurement when excluded.
Make map for single plot
plotTreeMap(park = "ACAD", from = 2026, to = 2026, plotName = "ACAD-001")
Make map for panel 2 in WEFA
plotTreeMap(park = "WEFA", from = 2022, to = 2025, panels = 2)
## [[1]]
##
## [[2]]
##
## [[3]]
##
## [[4]]
##
## [[5]]
Save pdfs for maps in panel 1 in most recent visit
plotTreeMap(from = 2022, to = 2026, panels = 1, output_to = "file", path = "./data/")
This function customizes a theme for plotting NETN forest data, including removing the default panel grids from ggplot2 figures.
Using function in an example ggplot object
dbh_dist <- sumTreeDBHDist(park = "ACAD", status = "live", from = 2023, to = 2026) |>
tidyr::pivot_longer(cols = starts_with("dens"), names_to = "size_class", values_to = "density") |>
dplyr::arrange(Plot_Name, SampleYear, size_class)
ggplot(dbh_dist, aes(x = size_class, y = density)) +
geom_bar(stat = 'identity', fill = 'dimgrey', position = position_dodge()) +
labs(x='Live tree DBH size classes (cm)', y='stems/ha') +
scale_x_discrete(labels=c('10 - 19.9', '20 - 29.9', '30 - 39.9', '40 - 49.9','50 - 59.9',
'60 - 69.9', '70 - 79.9', '80 - 89.9', '90 - 99.9', '100+')) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) +
theme_FHM()
This function summarizes output from joinQuadData and calculates average cover and quadrat frequency for each guild. Average cover is corrected for number of quadrats sampled. Guilds are tree, shrub, forb, fern, and graminoid. If herbaceous guild is split, then cover of ferns does not overlap with cover of herbaceous. If herbaceous guild is not split, then cover of herbaceous guild includes fern and other herbaceous (but not graminoid) species cover. Only works for complete events, but does include plots where a few quadrats were not sampled. Germinants are not included in summary.
Compile invasive quad data for all parks and most recent survey. Keep ferns in with herbs
inv_guilds <- sumQuadGuilds(speciesType = 'invasive', from = 2023, to = 2026, splitHerb = FALSE)
print_head(inv_guilds)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | Group | quad_pct_cover | quad_pct_freq |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-044 | NETN | ACAD | ACAD_MDI_East | 220 | 1602 | FALSE | 2023 | 2023-06-27 | 5 | Tree | 0.0000 | 0.0 |
| ACAD-044 | NETN | ACAD | ACAD_MDI_East | 220 | 1602 | FALSE | 2023 | 2023-06-27 | 5 | Shrub | 0.1875 | 12.5 |
| ACAD-044 | NETN | ACAD | ACAD_MDI_East | 220 | 1602 | FALSE | 2023 | 2023-06-27 | 5 | Herbaceous | 0.0000 | 0.0 |
| ACAD-044 | NETN | ACAD | ACAD_MDI_East | 220 | 1602 | FALSE | 2023 | 2023-06-27 | 5 | Graminoid | 0.0000 | 0.0 |
| ACAD-082 | NETN | ACAD | ACAD_MDI_East | 258 | 1669 | FALSE | 2024 | 2024-06-20 | 5 | Tree | 0.0000 | 0.0 |
| ACAD-082 | NETN | ACAD | ACAD_MDI_East | 258 | 1669 | FALSE | 2024 | 2024-06-20 | 5 | Shrub | 0.0125 | 12.5 |
Compile native quad data for more recent survey in ACAD, with ferns and forbs split in separate guilds
ACAD_guilds <- sumQuadGuilds(speciesType = 'native', from = 2023, to = 2026, splitHerb = TRUE)
print_head(ACAD_guilds)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | Group | quad_pct_cover | quad_pct_freq |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | Tree | 47.0875 | 100.0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | Shrub | 0.1875 | 12.5 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | Herbaceous | 0.4375 | 12.5 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | Graminoid | 4.7000 | 25.0 |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | Fern | 0.0000 | 0.0 |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | 9 | 1870 | FALSE | 2026 | 2026-06-22 | 6 | Tree | 17.9125 | 100.0 |
This function summarizes all species data collected in a plot visit, including live trees, microplots, quadrats, and additional species lists.
Compile number of invasive species found per plot from 2023 to 2026 for all parks.
inv_spp <- sumSpeciesList(speciesType = "invasive", from = 2023, to = 2026)
print_head(inv_spp)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | TSN | ScientificName | BA_cm2 | DBH_mean | tree_stems | seed_den | sap_den | stock | shrub_avg_cov | shrub_pct_freq | quad_avg_cov | quad_pct_freq | addspp_present |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | 2026 | 2026-06-22 | 6 | FALSE | NA | None present | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-002 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 2 | 9 | 1870 | 2026 | 2026-06-22 | 6 | FALSE | NA | None present | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-003 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 3 | 24 | 1878 | 2026 | 2026-06-21 | 6 | FALSE | NA | None present | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-004 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 4 | 25 | 1853 | 2026 | 2026-06-15 | 6 | FALSE | NA | None present | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ACAD-005 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 5 | 33 | 1861 | 2026 | 2026-06-14 | 6 | FALSE | 28579 | Rhamnus frangula | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| ACAD-006 | NETN | ACAD | ACAD_MDI_East | VS | 1 | 6 | 48 | 1892 | 2026 | 2026-07-05 | 6 | FALSE | NA | None present | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Compile species list for plots sampled in SARA in 2022
SARA_spp <- sumSpeciesList(park = 'SARA', from = 2022)
print_head(SARA_spp)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | SampleYear | SampleDate | cycle | IsQAQC | TSN | ScientificName | BA_cm2 | DBH_mean | tree_stems | seed_den | sap_den | stock | shrub_avg_cov | shrub_pct_freq | quad_avg_cov | quad_pct_freq | addspp_present |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 1531 | 2023 | 2023-05-21 | 5 | FALSE | 28728 | Acer rubrum | 0 | 0 | 0 | 4 | 0 | 4 | 0 | 0 | 0.0625 | 62.5 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 1531 | 2023 | 2023-05-21 | 5 | FALSE | 25092 | Agrimonia | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0125 | 12.5 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 1531 | 2023 | 2023-05-21 | 5 | FALSE | 25098 | Agrimonia parviflora | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.1875 | 12.5 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 1531 | 2023 | 2023-05-21 | 5 | FALSE | 184481 | Alliaria petiolata | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.4375 | 12.5 | 0 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 1531 | 2023 | 2023-05-21 | 5 | FALSE | 25108 | Amelanchier | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0000 | 0.0 | 1 |
| SARA-001 | NETN | SARA | SARA | VS | 1 | 1 | 7 | 1531 | 2023 | 2023-05-21 | 5 | FALSE | 182067 | Amphicarpaea bracteata | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.4750 | 50.0 | 0 |
This function calculates structural stage metric from Ecological Integrity Scorecard, which assigns Pole, Mature, Late Successional, or Mosaic (i.e., none of the above) to each plot based on the percent of live basal area of canopy trees in pole, mature and large size classes. Plots must be closed-canopy forest to be classified for this metric. Therefore plots classified as Woodlands (ACAD only) or Early successional (SARA only) in the field are automatically assigned those classes in the calculation.
Summarize structural stage for all parks all years
strstg <- sumStrStage()
print_head(strstg)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | BA_tot | pctBA_pole | pctBA_mature | pctBA_large | Stand_Structure | Stage |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1 | FALSE | 2006 | 2006-06-06 | 1 | 7313.628 | 33.013208 | 66.98679 | 0 | Mosaic | Mature |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 2 | FALSE | 2010 | 2010-07-27 | 2 | 6012.521 | 26.439576 | 73.56042 | 0 | Multi-aged | Mature |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 3 | FALSE | 2014 | 2014-07-14 | 3 | 5845.271 | 21.722071 | 78.27793 | 0 | Multi-aged | Mature |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 4 | FALSE | 2018 | 2018-07-02 | 4 | 5800.629 | 18.723623 | 81.27638 | 0 | Multi-aged | Mature |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1517 | FALSE | 2022 | 2022-07-14 | 5 | 5392.253 | 11.081576 | 88.91842 | 0 | Multi-aged | Mature |
| ACAD-001 | NETN | ACAD | ACAD_Schoodic | VS | 1 | 1 | 1 | 1869 | FALSE | 2026 | 2026-06-22 | 6 | 4037.127 | 7.246564 | 92.75344 | 0 | Multi-aged | Mature |
Summarize structural stage for MIMA from 2023 to 2026
strstg_mima <- sumStrStage(park = "MIMA", from = 2023, to = 2026)
print_head(strstg_mima)
| Plot_Name | Network | ParkUnit | ParkSubUnit | PlotTypeCode | PanelCode | PlotCode | PlotID | EventID | IsQAQC | SampleYear | SampleDate | cycle | BA_tot | pctBA_pole | pctBA_mature | pctBA_large | Stand_Structure | Stage |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MIMA-001 | NETN | MIMA | MIMA_Battle_Road | VS | 1 | 1 | 3 | 1571 | FALSE | 2023 | 2023-06-12 | 5 | 14861.603 | 0.000000 | 0.00000 | 100.00000 | Mosaic | Late_successional |
| MIMA-002 | NETN | MIMA | MIMA_Battle_Road | VS | 1 | 2 | 11 | 1572 | FALSE | 2023 | 2023-06-12 | 5 | 12909.959 | 15.530431 | 65.73037 | 18.73920 | Multi-aged | Mature |
| MIMA-003 | NETN | MIMA | MIMA_Battle_Road | VS | 1 | 3 | 18 | 1575 | FALSE | 2023 | 2023-06-12 | 5 | 8469.498 | 23.865555 | 76.13444 | 0.00000 | Multi-aged | Mature |
| MIMA-004 | NETN | MIMA | MIMA_Battle_Road | VS | 1 | 4 | 27 | 1576 | FALSE | 2023 | 2023-06-12 | 5 | 8986.542 | 0.000000 | 55.07008 | 44.92992 | Multi-aged | Mosaic |
| MIMA-005 | NETN | MIMA | MIMA_Battle_Road | VS | 1 | 5 | 35 | 1577 | FALSE | 2023 | 2023-06-12 | 5 | 5669.609 | 58.463006 | 41.53699 | 0.00000 | Multi-aged | Pole |
| MIMA-006 | NETN | MIMA | MIMA_Battle_Road | VS | 1 | 6 | 42 | 1578 | FALSE | 2023 | 2023-06-13 | 5 | 23385.717 | 7.098895 | 33.84601 | 59.05509 | Multi-aged | Late_successional |
Summarize DBH distribution for all saplings in MORR for all cycles
sap_dist_morr <- sumSapDBHDist(park = "MORR")
print_head(sap_dist_morr)
| Plot_Name | ParkUnit | ParkSubUnit | PlotID | EventID | SampleYear | IsQAQC | cycle | dens_1_1.9 | dens_2_2.9 | dens_3_3.9 | dens_4_4.9 | dens_5_5.9 | dens_6_6.9 | dens_7_7.9 | dens_8_8.9 | dens_9_9.9 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 13 | 2007 | FALSE | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0000 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 14 | 2011 | FALSE | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0000 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 15 | 2015 | FALSE | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0000 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 16 | 2019 | FALSE | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0000 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 1627 | 2024 | FALSE | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0000 |
| MORR-002 | MORR | MORR_NJ_Brigade | 12 | 45 | 2007 | FALSE | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 265.2582 |
Summarize DBH distribution for native saplings in ROVA from 2023 to 2026
sap_diam_dist <- sumSapDBHDist(park = 'ROVA', speciesType = 'native', from = 2023, to = 2026)
print_head(sap_diam_dist)
| Plot_Name | ParkUnit | ParkSubUnit | PlotID | EventID | SampleYear | IsQAQC | cycle | dens_1_1.9 | dens_2_2.9 | dens_3_3.9 | dens_4_4.9 | dens_5_5.9 | dens_6_6.9 | dens_7_7.9 | dens_8_8.9 | dens_9_9.9 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ROVA-001 | ROVA | ROVA_HOFR_West | 5 | 1653 | 2024 | FALSE | 5 | 0.0000 | 0.0000 | 0.0000 | 0 | 265.2582 | 0 | 0 | 0 | 0 |
| ROVA-002 | ROVA | ROVA_HOFR_West | 13 | 1654 | 2024 | FALSE | 5 | 0.0000 | 0.0000 | 0.0000 | 0 | 0.0000 | 0 | 0 | 0 | 0 |
| ROVA-003 | ROVA | ROVA_HOFR_West | 20 | 1642 | 2024 | FALSE | 5 | 0.0000 | 0.0000 | 265.2582 | 0 | 0.0000 | 0 | 0 | 0 | 0 |
| ROVA-004 | ROVA | ROVA_HOFR_West | 29 | 1643 | 2024 | FALSE | 5 | 265.2582 | 0.0000 | 0.0000 | 0 | 0.0000 | 0 | 0 | 0 | 0 |
| ROVA-005 | ROVA | ROVA_HOFR_East | 37 | 1655 | 2024 | FALSE | 5 | 0.0000 | 0.0000 | 0.0000 | 0 | 0.0000 | 0 | 0 | 0 | 0 |
| ROVA-006 | ROVA | ROVA_HOFR_East | 44 | 1644 | 2024 | FALSE | 5 | 265.2582 | 265.2582 | 0.0000 | 0 | 0.0000 | 0 | 0 | 0 | 0 |
This function calculates DBH distribution by 10cm size classes.
Summarize DBH distribution for all trees >= 10cm DBH in MORR for all cycles
tree_dist_morr <- sumTreeDBHDist(park = "MORR")
print_head(tree_dist_morr)
| Plot_Name | ParkUnit | ParkSubUnit | PlotID | EventID | SampleYear | IsQAQC | cycle | dens_10_19.9 | dens_20_29.9 | dens_30_39.9 | dens_40_49.9 | dens_50_59.9 | dens_60_69.9 | dens_70_79.9 | dens_80_89.9 | dens_90_99.9 | dens_100p |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 13 | 2007 | FALSE | 1 | 125 | 100 | 25 | 50 | 50 | 0 | 0 | 0 | 0 | 0 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 14 | 2011 | FALSE | 2 | 100 | 100 | 0 | 50 | 50 | 0 | 0 | 0 | 0 | 0 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 15 | 2015 | FALSE | 3 | 100 | 100 | 0 | 50 | 50 | 0 | 0 | 0 | 0 | 0 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 16 | 2019 | FALSE | 4 | 75 | 100 | 0 | 50 | 50 | 0 | 0 | 0 | 0 | 0 |
| MORR-001 | MORR | MORR_NJ_Brigade | 4 | 1627 | 2024 | FALSE | 5 | 50 | 75 | 0 | 50 | 25 | 25 | 0 | 0 | 0 | 0 |
| MORR-002 | MORR | MORR_NJ_Brigade | 12 | 45 | 2007 | FALSE | 1 | 75 | 100 | 50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Summarize DBH distribution for native trees in ROVA from 2023 to 2026 using basal area
tree_diam_BA <- sumTreeDBHDist(park = 'ROVA', speciesType = 'native', from = 2023, to = 2026, units = 'BA')
print_head(tree_diam_BA)
| Plot_Name | ParkUnit | ParkSubUnit | PlotID | EventID | SampleYear | IsQAQC | cycle | BA_10_19.9 | BA_20_29.9 | BA_30_39.9 | BA_40_49.9 | BA_50_59.9 | BA_60_69.9 | BA_70_79.9 | BA_80_89.9 | BA_90_99.9 | BA_100p |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ROVA-001 | ROVA | ROVA_HOFR_West | 5 | 1653 | 2024 | FALSE | 5 | 2.021575 | 3.752220 | 3.110255 | 8.035251 | 5.047145 | 0.000000 | 0.0000 | 0.00000 | 0 | 0 |
| ROVA-002 | ROVA | ROVA_HOFR_West | 13 | 1654 | 2024 | FALSE | 5 | 0.000000 | 0.000000 | 2.125307 | 3.580021 | 5.007404 | 0.000000 | 0.0000 | 0.00000 | 0 | 0 |
| ROVA-003 | ROVA | ROVA_HOFR_West | 20 | 1642 | 2024 | FALSE | 5 | 2.033985 | 4.689220 | 2.086724 | 10.667553 | 0.000000 | 0.000000 | 11.9153 | 14.58963 | 0 | 0 |
| ROVA-004 | ROVA | ROVA_HOFR_West | 29 | 1643 | 2024 | FALSE | 5 | 4.125049 | 4.806990 | 0.000000 | 0.000000 | 22.300949 | 8.321313 | 0.0000 | 0.00000 | 0 | 0 |
| ROVA-005 | ROVA | ROVA_HOFR_East | 37 | 1655 | 2024 | FALSE | 5 | 2.293264 | 2.805128 | 1.802666 | 4.411503 | 0.000000 | 0.000000 | 0.0000 | 0.00000 | 0 | 0 |
| ROVA-006 | ROVA | ROVA_HOFR_East | 44 | 1644 | 2024 | FALSE | 5 | 2.336933 | 2.917342 | 2.112407 | 3.940814 | 11.202801 | 8.814131 | 0.0000 | 13.33166 | 0 | 0 |