Installation

Get the stable version (2.6.5) from CRAN:

install.packages('soilDB', dependencies = TRUE)

Get the development version (2.6.7) from GitHub:

remotes::install_github("ncss-tech/soilDB", dependencies = FALSE, upgrade = FALSE, build = FALSE)

Citation

Dylan Beaudette, Jay Skovlin, Stephen Roecker and Andrew Brown (2021). soilDB: Soil Database Interface. R package version 2.6.5. https://CRAN.R-project.org/package=soilDB

soilDB 2.6.7

Notices on Database Interfaces

NASIS

  • all NASIS queries now use {DBI}, tested to work with {odbc} or {RSQLite} drivers; replacing {RODBC}
  • new methods for connecting to NASIS and querying NASIS data allow for dsn argument to specify a local “static” SQLite file containing NASIS tables.
    • Default argument dsn = NULL uses "nasis_local" ODBC connection to a local NASIS SQL Server instance

Soil Data Access (SDA)

MS Access

  • AKSite, Montana RangeDB, and PedonPC 6.x get and fetch methods now use {DBI}+{odbc}

SoilWeb API

  • ISSR800.wcs() and mukey.wcs() now return a result that inherits from try-error (and a message) if the Web Coverage Service fails

Functions by Data Source

Tutorials and Demonstrations

Examples

Load Soil Packages

library(aqp)
library(soilDB)
library(sharpshootR)

Get Official Series Description Data

# get morphology + extended summaries
soils <- c('cecil', 'altavista', 'lloyd', 'wickham', 'woodbridge', 'chewacla', 'congaree')
s <- fetchOSD(soils, extended = TRUE)

Visualize Soil-Landscape Relationships

# viz of hillslope position, from SSURGO component records
res <- vizHillslopePosition(s$hillpos, annotation.cex = 0.9)
print(res$fig)

Make Profile Sketches

par(mar = c(0, 1, 0, 4), xpd = NA)

plotSPC(
  s$SPC,
  plot.order = res$order,
  cex.names = 1,
  axis.line.offset = -0.1,
  width = 0.2
)

Identify Tabular “Siblings”

s <- 'Amador'
amador <- siblings(s, only.major = FALSE, component.data = TRUE)

# limit to named soil series
sib.data <- subset(amador$sib.data, !compkind %in% c('Miscellaneous area', 'Family', 'Taxon above family'))

# get parsed OSD records
sibs <- fetchOSD(c(s, unique(amador$sib$sibling)), extended = TRUE)

Plot Dendrograms with Taxonomic Relationships

# invert colors
par(mar = c(0, 0, 0, 0),
    fg = 'white',
    bg = 'black')

SoilTaxonomyDendrogram(
  sibs$SPC,
  dend.width = 1.5,
  y.offset = 0.4,
  scaling.factor = 0.02,
  width = 0.2,
  cex.taxon.labels = 1,
  cex.names = 1
)

Dependency Graph