This is an efficient method for spatially merging several different soil survey areas as well as merging their tabular data.

  raw.dir = paste0(tempdir(), "/FedData/raw/ssurgo"),
  extraction.dir = paste0(tempdir(), "/FedData/"),
  force.redo = FALSE



A Raster* or Spatial* object to serve as a template for cropping; optionally, a vector of area names [e.g., c('IN087','IN088')] may be provided.


A character string naming the study area.


A character string indicating where raw downloaded files should be put. The directory will be created if missing. Defaults to './RAW/SSURGO/'.


A character string indicating where the extracted and cropped SSURGO shapefiles should be put. The directory will be created if missing. Defaults to './EXTRACTIONS/SSURGO/'.


If an extraction for this template and label already exists, should a new one be created? Defaults to FALSE.


A named list containing the 'spatial' and 'tabular' data.


get_ssurgo returns a named list of length 2:

  1. 'spatial': A SpatialPolygonsDataFrame of soil mapunits in the template, and

  2. 'tabular': A named list of data.frames with the SSURGO tabular data.


if (FALSE) { # Get the NRCS SSURGO data (USA ONLY) SSURGO.MEVE <- get_ssurgo(template = FedData::meve, label = "meve") # Plot the VEP polygon plot(meve$geometry) # Plot the SSURGO mapunit polygons plot(SSURGO.MEVE$spatial, lwd = 0.1, add = T) # Or, download by Soil Survey Area names SSURGO.areas <- get_ssurgo(template = c("CO670", "CO075"), label = "CO_TEST") # Let's just look at spatial data for CO675 SSURGO.areas.CO675 <- SSURGO.areas$spatial[SSURGO.areas$spatial$AREASYMBOL == "CO075", ] # And get the NED data under them for pretty plotting NED.CO675 <- get_ned(template = SSURGO.areas.CO675, label = "SSURGO_CO675") # Plot the SSURGO mapunit polygons, but only for CO675 plot(NED.CO675) plot(SSURGO.areas.CO675, lwd = 0.1, add = T) }