The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
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
SPCquickSPC()
: 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
aggregationL1_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 consistencyrebuildSPC()
: 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 rangegetClosestMunsellChip()
: estimate a reasonably close
Munsell color given non-standard notationestimateSoilColor()
: estimate moist soil color from dry
soil color (and vice versa)colorContrast()
: pair-wise color contrast and CIE2000
(dE00) based on colors in Munsell notationcolorContrastPlot()
: 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 notationplotColorMixture()
: 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 SPCtextureTriangleSummary()
: graphical summary of sand,
silt, clay fractions on a soil texture trianglebootstrapSoilTexture()
: 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 functionsguessGenHzLevels()
: 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 thresholdfixOverlap()
: attempt the minimum of adjustments to
vector of positions such that a given distance threshold is
enforcedsp1
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
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.