# custom regex pattern for matching site IDs in local NASIS database
PATTERN <- "R018XI105CA"#"[RF]018X[ACEI][12].*"

# USE SELECTED SET? (default `FALSE` searches entire local database)
SELECTED_SET <- FALSE

# Vector of component names to exclude (optional; default `""` for no exclusion)
EXCLUDE_COMPNAME <- c("Pollasky", "Tips", "Xerolls", "Alamo", "Porterville", "Chino variant")

# NASIS DATA SOURCE NAME (default `NULL` for connection to local NASIS SQL Express database)
NASIS_DSN <- NULL

# SPATIAL DATA SOURCE NAME (default `NULL` to use Soil Data Access / live SSURGO)
SPATIAL_DSN <- NULL 

# INCLUDE ADDITIONAL MAPUNITS? (default `FALSE`)
INCLUDE_ADDITIONAL <- FALSE

# INCLUDE NON-REPRESENTATIVE DATA MAPUNITS? (default `FALSE`)
INCLUDE_NONREP <- FALSE

# CACHE NASIS AND SPATIAL DATA (default `FALSE`)
#  (primarily for debugging/testing reports)
USE_CACHE <- FALSE
library(rmarkdown)
library(aqp)
library(soilDB)
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE, fig.retina = 3)
source("utils.R")
q <- "SELECT DISTINCT ecositeid FROM coecosite_View_1 INNER JOIN ecologicalsite ON ecologicalsite.ecositeiid = coecosite.ecositeiidref"
if (!SELECTED_SET) {
  q <- gsub("_View_1", "", q)
}
eid <- dbQueryNASIS(NASIS(), q)$ecositeid
eidsub <- eid[grep(PATTERN, eid)]
f <- .add_extended_data(fetchNASIS("components", duplicates = TRUE, fill = TRUE, SS = SELECTED_SET, dsn = NASIS_DSN))
le <- list2env(list(f = f), parent = new.env())
for (e in seq_along(eidsub)) {
  res <- try(rmarkdown::render(
    "report.Rmd",
    output_file = paste0(eidsub[e], ".html"),
    params = list(
      TARGET_ECOSITE_ID = eidsub[e],
      EXCLUDE_COMPNAME = EXCLUDE_COMPNAME,
      SPATIAL_DSN = SPATIAL_DSN,
      INCLUDE_ADDITIONAL = INCLUDE_ADDITIONAL,
      INCLUDE_NONREP = INCLUDE_NONREP,
      USE_CACHE = USE_CACHE
    ), 
    envir = le
  ))
  if (inherits(res, 'try-error')) {
    e <- e - 1
    warning("---Error!---\n", res, call. = FALSE)
  }
  cat(paste0(eidsub[e], ".html"), sep = "\n")
}


ncss-tech/soilReports documentation built on March 6, 2025, 1:15 a.m.