mpspline_compact: Spline discrete soils data - multiple sites, compact output

View source: R/wrappers.R

mpspline_compactR Documentation

Spline discrete soils data - multiple sites, compact output

Description

This function implements the mass-preserving spline method of Bishop et al (1999) (doi: 10.1016/S0016-7061(99)00003-8) for interpolating between measured soil attributes down a soil profile, across multiple sites' worth of data. It returns a more compact output object than mpspline().

Usage

mpspline_compact(
  obj = NULL,
  var_name = NULL,
  lam = 0.1,
  d = c(0, 5, 15, 30, 60, 100, 200),
  vlow = 0,
  vhigh = 1000
)

Arguments

obj

data.frame or matrix. Column 1 must contain site identifiers. Columns 2 and 3 must contain upper and lower sample depths, respectively. Subsequent columns will contain measured values for those depths.

var_name

length-1 character or length-1 integer denoting the column in obj in which target data is stored. If not supplied, the fourth column of the input object is assumed to contain the target data.

lam

number; smoothing parameter for spline. Defaults to 0.1.

d

sequential integer vector; denotes the output depth ranges in cm. Defaults to c(0, 5, 15, 30, 60, 100, 200) after the GlobalSoilMap specification, giving output predictions over intervals 0-5cm, 5-15cm, etc.

vlow

numeric; constrains the minimum predicted value to a realistic number. Defaults to 0.

vhigh

numeric; constrains the maximum predicted value to a realistic number. Defaults to 1000.

Value

A four-item list containing a matrix of predicted values over the input depth ranges, a matrix of predicted values over the output depth ranges, a matrix of 1cm predictions, and a matrix of RMSE and IQR-scaled RMSE values. Site identifiers are in rownames attributes.

Examples

dat <- data.frame("SID" = c( 1,  1,  1,  1,   2,   2,   2,   2),
                   "UD" = c( 0, 20, 40, 60,   0,  15,  45,  80),
                   "LD" = c(10, 30, 50, 70,   5,  30,  60, 100),
                  "VAL" = c( 6,  4,  3, 10, 0.1, 0.9, 2.5,   6),
                   stringsAsFactors = FALSE)
mpspline_compact(obj = dat, var_name = 'VAL')

mpspline2 documentation built on April 4, 2022, 1:07 a.m.