Installation

Get the stable version from CRAN:

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

Get the development version from GitHub:

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

soilDB 2.6.0

Notices on Database Interfaces

NASIS

  • low-level functions return empty data.frame objects when local database (or selected set) is empty
  • fetchNASIS() is now a wrapper around pedon and component “fetch” functions
  • uncode() is now used in all queries to local NASIS database

Soil Data Access (SDA)

  • SDA_query returns a try-error for queries with invalid syntax or on network error; empty results are an empty data.frame()
  • fetchSDA_spatial can return STATSGO gsmmupolygon or Soil Survey Area sapolygon data; and can join to the legend table

Other APIs

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