Description Usage Arguments Value Note Author(s) References See Also Examples
Fits a mass preserving spline to a soil profile data.
1 2 3 4 |
obj |
object of class |
var.name |
character; target variable name (must be a numeric variable) |
lam |
numeric; lambda the smoothing parameter |
d |
numeric; standard depths |
vlow |
numeric; smallest value of the target variable (smaller values will be replaced) |
vhigh |
numeric; highest value of the target variable (larger values will be replaced) |
show.progress |
logical; specifies whether to display the progress bar |
Returns a list with four elements:
idcol
site ID column
var.fitted
matrix; are are spline-estimated values of the target variable at observed depths (upper and lower depths are indicated as attributes)
var.std
matrix; are spline-estimated values of the target variable at standard depths
var.1cm
matrix; are spline-estimated values of the target variable using the 1 cm increments
Target variable needs to be a numeric vector measured at least 2 horizons for the spline to be fitted. Profiles with 1 horizon are accepted and processed as per output requirements, but no spline is fitted as such. Only positive numbers for upper and lower depths can be accepted. It is assumed that soil variables collected per horizon refer to block support i.e. they represent averaged values for the whole horizon. This operation can be time-consuming for large data sets.
Brendan Malone and Tomislav Hengl
Bishop, T.F.A., McBratney, A.B., Laslett, G.M., (1999) Modelling soil attribute depth functions with equal-area quadratic smoothing splines. Geoderma, 91(1-2): 27-45.
Malone, B.P., McBratney, A.B., Minasny, B., Laslett, G.M. (2009) Mapping continuous depth functions of soil carbon storage and available water capacity. Geoderma, 154(1-2): 138-152.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | library(aqp)
library(plyr)
library(sp)
## sample profile from Nigeria:
lon = 3.90; lat = 7.50; id = "ISRIC:NG0017"; FAO1988 = "LXp"
top = c(0, 18, 36, 65, 87, 127)
bottom = c(18, 36, 65, 87, 127, 181)
ORCDRC = c(18.4, 4.4, 3.6, 3.6, 3.2, 1.2)
munsell = c("7.5YR3/2", "7.5YR4/4", "2.5YR5/6", "5YR5/8", "5YR5/4", "10YR7/3")
## prepare a SoilProfileCollection:
prof1 <- join(data.frame(id, top, bottom, ORCDRC, munsell),
data.frame(id, lon, lat, FAO1988), type='inner')
depths(prof1) <- id ~ top + bottom
site(prof1) <- ~ lon + lat + FAO1988
coordinates(prof1) <- ~ lon + lat
proj4string(prof1) <- CRS("+proj=longlat +datum=WGS84")
## fit a spline:
ORCDRC.s <- mpspline(prof1, var.name="ORCDRC")
str(ORCDRC.s)
## Example with multiple soil profiles
## Make some fake, but reasonable profiles:
rand.prof <- ldply(1:20, random_profile, n=c(6, 7, 8), n_prop=1, method='LPP')
## promote to SPC and plot
depths(rand.prof ) <- id ~ top + bottom
plot(rand.prof, color='p1')
## fit MP spline by profile
try( m <- mpspline(rand.prof, 'p1') )
|
GSIF version 0.5-5.1 (2019-01-04)
URL: http://gsif.r-forge.r-project.org/
This is aqp 1.25
Attaching package: ‘aqp’
The following object is masked from ‘package:stats’:
filter
Attaching package: ‘plyr’
The following objects are masked from ‘package:aqp’:
mutate, summarize
Joining by: id
Fitting mass preserving splines per profile...
|
| | 0%
|
|======================================================================| 100%
List of 4
$ idcol : chr "ISRIC:NG0017"
$ var.fitted: num [1, 1:6] 17.75 5.12 3.52 3.62 3.16 ...
$ var.std :'data.frame': 1 obs. of 7 variables:
..$ 0-5 cm : num 20.7
..$ 5-15 cm : num 17.4
..$ 15-30 cm : num 7.29
..$ 30-60 cm : num 3.29
..$ 60-100 cm : num 3.61
..$ 100-200 cm: num 1.82
..$ soil depth: num 181
$ var.1cm : num [1:200, 1] 21 20.9 20.7 20.5 20.2 ...
Fitting mass preserving splines per profile...
|
| | 0%
|
|==== | 5%
|
|======= | 10%
|
|========== | 15%
|
|============== | 20%
|
|================== | 25%
|
|===================== | 30%
|
|======================== | 35%
|
|============================ | 40%
|
|================================ | 45%
|
|=================================== | 50%
|
|====================================== | 55%
|
|========================================== | 60%
|
|============================================== | 65%
|
|================================================= | 70%
|
|==================================================== | 75%
|
|======================================================== | 80%
|
|============================================================ | 85%
|
|=============================================================== | 90%
|
|================================================================== | 95%
|
|======================================================================| 100%
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.