Generate a graphical description of the presence/absence of soil diagnostic properties.

diagnosticPropertyPlot2(f, v, k, grid.label = "pedon_id", sort.vars = TRUE)

Arguments

f

SoilProfileCollection object

v

character vector of site-level attribute names of logical type

k

an integer, number of groups to highlight

grid.label

the name of a site-level attribute (usually unique) annotating the y-axis of the grid

sort.vars

sort variables according to natural clustering (TRUE), or use supplied ordering in v

Value

a list is silently returned by this function, containing:

rd

a data.frame containing IDs and grouping code

profile.order

a vector containing the order of soil profiles (row-order in figure), according to diagnostic property values

var.order

a vector containing the order of variables (column-order in figure), according to their distribution among profiles

Details

This function attempts to display several pieces of information within a single figure. First, soil profiles are sorted according to the presence/absence of diagnostic features named in v. Second, these diagnostic features are sorted according to their distribution among soil profiles. Third, a binary grid is established with row-ordering of profiles based on step 1 and column-ordering based on step 2. Blue cells represent the presence of a diagnostic feature. Soils with similar diagnostic features should 'clump' together. See examples below.

Author

D.E. Beaudette and J.M. Skovlin

Examples


# \donttest{

if(require(aqp) &
   require(soilDB) &
   require(latticeExtra)
) {
  
  # sample data, an SPC
  data(gopheridge, package = 'soilDB')
  
  # get depth class
  sdc <- getSoilDepthClass(gopheridge, name = 'hzname')
  site(gopheridge) <- sdc
  
  # diagnostic properties to consider, no need to convert to factors
  v <- c('lithic.contact', 'paralithic.contact', 'argillic.horizon', 
         'cambic.horizon', 'ochric.epipedon', 'mollic.epipedon', 'very.shallow',
         'shallow', 'mod.deep', 'deep', 'very.deep')
  
  # base graphics
  x <- diagnosticPropertyPlot(gopheridge, v, k=5)
  
  # lattice graphics
  x <- diagnosticPropertyPlot2(gopheridge, v, k=3)
  
  # check output
  str(x)
  
}


#> List of 3
#>  $ rd           :'data.frame':	52 obs. of  3 variables:
#>   ..$ peiid   : chr [1:52] "1137354" "1147151" "1147190" "242808" ...
#>   ..$ pedon_id: chr [1:52] "08DWB028" "07RJV098" "07RJV099" "S2007CA009002" ...
#>   ..$ g       : int [1:52] 1 2 2 1 1 1 1 1 1 1 ...
#>  $ profile.order: int [1:52] 1 4 6 7 8 9 15 16 17 21 ...
#>  $ var.order    : int [1:8] 1 3 5 8 2 4 6 7

# }