knitr::opts_chunk$set( message = FALSE, warning = FALSE, background = '#F7F7F7', fig.align = 'center', dev = 'png', comment = "#>" ) # keep examples from using more than 2 cores data.table::setDTthreads(Sys.getenv("OMP_THREAD_LIMIT", unset = 2)) options(width = 100, stringsAsFactors = FALSE, timeout = 600)
Soil morphology, observed properties, and geomorphic context represent a complex package of interrelated information that can be difficult to analyze and communicate as a whole. Graphical methods such as soil profile sketches and cross-sections represent a few of the possible methods commonly used to report on these kind of data. The Algorithms for Quantitative Pedology (AQP) project encompasses several related R packages tailored to this style of work. A specialized data structure (SoilProfileCollection) maintains linkages between soil horizons, diagnostic features, above-ground data, and geomorphic context. SoilProfileCollection objects can be filtered, subset, resampled (over new depth intervals), and re-ordered; all while preserving links to above and below-ground, linked data. Functions are provided for the conversion of soil colors to and from Munsell notation and several other color space coordinates. Graphical methods for the SoilProfileCollection provide a simple but flexible framework for the design and layout of soil profile sketches, aligned to x and or y axes defined by linked data.
depths()
: init an SPC from data.frame
site()
: set or add site-level attributes of an SPC quickSPC()
: quickly build an SPC from simple text templatesrandom_profile()
: generate random SPC from suite of depth functionshzdesgnname()
: get/set column containing horizon designationshzDesgn()
: get vector of horizon designationshztexclname()
: get/set column containing horizon texture classmetadata()
: get/set SPC metadata (list)hzID()
: get vector of horizon IDshzidname()
: get/set column containing horizon IDshorizonDepths()
get/set columns containing horizon top and bottom depthslength()
: number of profiles in a SPCnrow()
: number of horizons in a SPCnames()
: list of horizon and site namessiteNames()
: site-level column nameshorizonNames()
: horizon-level column namesglom()
: extract horizons based on overlap criteria defined by point or intervaltrunc()
: truncate SPC to given depth intervalsubset()
: subset profiles based on logical expressionssubsetHz()
: subset horizons based on logical expressions[
: data.frame
-like subsetting of profiles (i-index) and/or horizons (j-index)[[
: access site or horizon-level columns by namek-index expressions
: .FIRST
, .LAST
, .HZID
, .NHZ
min()
: minimum bottom depth within a SPCmax()
: maximum bottom depth within a SPCdepthOf()
: generalized "depth to" based on REGEX matchingminDepthOf()
: special case of depthOf()
maxDepthOf()
: special case of depthOf()
getSoilDepthClass()
: estimate soil depth based on REGEX matching applied to horizon designation and associated depth classaggregateSoilDepth()
: statistical estimation of soil depth (REGEX matching of horizon designation) within groups of profilescombine()
, c()
: combine multiple SPCs into a single SPCduplicate()
: duplicate profiles within a SPCperturb()
: randomly adjust horizon thickness or depths to simulate from a template SPCwarpHorizons()
: expand / contract horizon thicknessharmonize()
: create new profiles within a SPC based sets of related horizon-level datahzAbove()
, hzBelow()
: locate horizons above or below some criteriaunique()
: determine uniqueness among profiles of an SPC via MD5 hashsplit()
: split SPC into list of SPCs based on grouping factorsite()
: get site data as data.frame
horizons()
: get horizon data as data.frame
replaceHorizons()
: replace horizon datadiagnostic_hz()
: get/set diagnostic featuresrestrictions()
: get/set restrictionsdenormalize()
: convert site-level data into horizon-level data via replicationcompositeSPC()
: downgrade an SPC to list of site and horizon-level dataprofileApply()
: apply a function to each profile within an SPC (slow but simple interface)summarizeSPC()
: perform group-wise summaries over profiles within an SPCtransform()
: modify a SPC using expressions that operation on site or horizon-level datadice()
: convert SPC to 1 depth-unit intervals by replicationslab()
: apply an aggregate function over groups within a "dice()-ed" SPCspc2mpspline()
: interface to equal-area spline fitting from mpspline2 packagesegment()
: generate segment labels for depth-weighted aggregation L1_profiles()
: create representative profiles via multivariate median (L1 estimator)slicedHSD()
: apply Tukey's HSD over groups within a "dice()-ed" SPCaccumulateDepths()
: fix horizon depths when old-style O horizon notation has been usedfillHzGaps()
: fill topological gaps in horizon depthrepairMissingHzDepths()
: attempt fixing missing or duplicated horizon bottom depthsflagOverlappingHz()
: flag horizons with perfect overlapcheckHzDepthLogic()
: apply battery of horizon depth topological testssplitLogicErrors()
: split an SPC according to variety of possibly horizon depth errorsHzDepthLogicSubset()
: remove profiles from an SPC if any depth logic errors are presentevalMissingData()
: report metrics of missing data by profile within SPCmissingDataGrid()
: visual indication of missing dataprofileInformationIndex()
: experimental indices of "information content" by profileas(SPC, 'list')
: convert SPC to list
as(SPC, 'data.frame')
: convert site and horizon data to data.frame
as(SPC, 'sf')
: convert site and spatial data to sf objectprj()
: get/set coordinate reference system (CRS) metadatainitSpatial()
: set (site-level) column names containing coordinatesgetSpatial()
: get spatial data (site + coordinates) from an SPCcheckSPC()
: check SPC for internal consistency rebuildSPC()
: re-make an SPC from a previous version of aqp (rarely required)plotSPC()
: create sketches of soil profiles from an SPCexplainPlotSPC()
: explain various elements of a soil profile sketchgroupedProfilePlot()
: create grouped sketches of soil profilesplotMultipleSPC()
: create sketches from multiple, possibly non-conformal SPCsaddBracket()
: add vertical brackets beside soil profile sketchesaddDiagnosticBracket()
: add vertical brackets beside soil profile sketches based on diagnostic featuresaddVolumeFraction()
: add visual explanation of coarse fragment volume to soil profile sketchesalignTransect()
: align soil profiles to an external gradient such as topographic sequencecol2Munsell()
: convert various color notations to Munsell notationmunsell2rgb()
: convert Munsell notation to sRGB or CIELAB color coordinatesparseMunsell()
: parse and optionally convert a munsell colorspec2Munsell()
: estimate the closest Munsell color given reflectance spectra in the visible range getClosestMunsellChip()
: estimate a reasonably close Munsell color given non-standard notation estimateSoilColor()
: estimate moist soil color from dry soil color (and vice versa) colorContrast()
: pair-wise color contrast and CIE2000 (dE00) based on colors in Munsell notation colorContrastPlot()
: visual explanation of soil color contrast and dE00contrastChart()
: Munsell color book style explanation of soil color contrast and dE00soilColorSignature()
: derive soil color signatures for profiles within an SPCcolorChart()
: Munsell color book representation of color frequencyaggregateColor()
: estimate color proportions within an SPC according within groups of horizonscolorQuantiles()
: marginal and L1 quantiles of color in CIELAB coordinateshuePosition()
: generate an ordered factor of the standard Munsell hueshuePositionCircle()
: graphical representation of the standard Munsell hues, with optional simulation of common color vision deficiencysimulateColor()
: simulate a range of Munsell colors given measures of central tendency and spreadpreviewColors()
: graphical preview of colors as a grid or via nMDSsoilPalette()
: generate swatch-like arrangements of colors and labelsequivalentMunsellChips()
: for a specified Munsell color, identify other Munsell colors with a very lower CIE2000 color contrast differencemixMunsell()
: simulate an subtractive mixture of pigments specified in Munsell notation plotColorMixture()
: simulate a subtractive mixture of pigments, display reflectance spectraNCSP()
: numerical classification of soil profiles, within a SoilProfileCollection
compareSites()
: pair-wise comparison of site-level data from a SoilProfileCollection
allocate()
: perform one of several classification systems to soil property dataestimateAWC()
: estimate plant-available water holding capacitycorrectAWC()
: apply rock fragment or soluble salt corrections to AWC estimateshzDistinctnessCodeToOffset()
: convert horizon boundary distinctness codes to vertical offsethzTopographyCodeToLineType()
: convert horizon boundary topography codes to line typeshzTopographyCodeToOffset()
: convert horizon boundary topography codes to offsetph_to_rxnclass()
: convert pH to reaction classrxnclass_to_ph()
: convert reaction class to pH rangeReactionClassLevels()
: ordered factor of reaction classeshorizonColorIndices()
: compute various soil color-based indices to horizons within an SPC textureTriangleSummary()
: graphical summary of sand, silt, clay fractions on a soil texture triangle bootstrapSoilTexture()
: simulation of realistic compositions (sand, silt, clay) from a small set of example dataSoilTextureLevels()
: ordered factor of soil texture classestexcl_to_ssc()
: convert soil texture classes to sand, silt, clay centroidsssc_to_texcl()
: convert sand, silt, clay values to soil texture classtexture_to_taxpartsize()
: convert soil texture to Soil Taxonomy particle size classfragmentSieve()
: classify coarse fragments by fragment diametertexmod_to_fragvoltot()
: estimate ranges in coarse fragment volume based on a soil texture modifiertexture_to_texmod()
fragvol_to_texmod()
fragmentClasses()
: coarse fragment diameter thresholds used by USDA-NRCSgetArgillicBounds()
: estimate the upper and lower boundaries of an argillic horizongetCambicBounds()
: estimate the upper and lower boundaries of a cambic horizongetSurfaceHorizonDepth()
getMineralSoilSurfaceDepth()
getPlowLayerDepth()
hasDarkColors()
estimatePSCS()
generalize.hz()
: apply REGEX rules to group horizon designations into a reduced set of "generalized horizon labels"evalGenHZ()
: evaluate internal consistency of assigned GHLgenhzTableToAdjMat()
: convert a cross-tabulation of GHL vs. original horizon designations to adjacency matrixget.ml.hz()
: extract most likely horizon boundary depths from probability depth functions guessGenHzLevels()
: estimate the correct ordering of GHL given horizon depthsGHL()
: get/set GHL metadata for a SoilProfileCollection
invertLabelColor()
: automatic adjustment of label color for maximum contrast, based on specified background colorhzTransitionProbabilities()
: derive transition probability matrix from horizon level datamostLikelyHzSequence()
: use Markov Chains to predict the most likely sequence of horizonsshannonEntropy()
: Shannon entropybrierScore()
: Brier's scoretauW()
: weighted tau statisticfindOverlap()
: identify overlap within a vector of positions based on a given thresholdoverlapMetrics()
: metrics of overlap within a vector or positions based on a given threshold fixOverlap()
: attempt the minimum of adjustments to vector of positions such that a given distance threshold is enforced sp1
sp2
sp3
sp4
sp5
sp6
sierraTransect
wilson2022
rowley2019
jacobs2000
osd
SPC.with.overlap
us.state.soils
soil_minerals
munsell
equivalent_munsell
munsellHuePosition
munsell.spectra
spectral.reference
ROSETTA.centroids
reactionclass
soiltexture
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.