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.

An Overview of the aqp Package

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.

Function Index by Topic

SoilProfileCollection Objects

Creation

  • 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 templates
  • random_profile(): generate random SPC from suite of depth functions

Metadata

  • hzdesgnname(): get/set column containing horizon designations
  • hzDesgn(): get vector of horizon designations
  • hztexclname(): get/set column containing horizon texture class
  • metadata(): get/set SPC metadata (list)
  • hzID(): get vector of horizon IDs
  • hzidname(): get/set column containing horizon IDs
  • horizonDepths() get/set columns containing horizon top and bottom depths

Properties

  • length(): number of profiles in a SPC
  • nrow(): number of horizons in a SPC
  • names(): list of horizon and site names
  • siteNames(): site-level column names
  • horizonNames(): horizon-level column names

Subset

  • glom(): extract horizons based on overlap criteria defined by point or interval
  • trunc(): truncate SPC to given depth interval
  • subset(): subset profiles based on logical expressions
  • subsetHz(): 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 name
  • k-index expressions: .FIRST, .LAST, .HZID, .NHZ

Depth

  • min(): minimum bottom depth within a SPC
  • max(): maximum bottom depth within a SPC
  • depthOf(): generalized “depth to” based on REGEX matching
  • minDepthOf(): special case of depthOf()
  • maxDepthOf(): special case of depthOf()
  • getSoilDepthClass(): estimate soil depth based on REGEX matching applied to horizon designation and associated depth class
  • aggregateSoilDepth(): statistical estimation of soil depth (REGEX matching of horizon designation) within groups of profiles

Utility

  • combine(), c(): combine multiple SPCs into a single SPC
  • duplicate(): duplicate profiles within a SPC
  • perturb(): randomly adjust horizon thickness or depths to simulate from a template SPC
  • warpHorizons(): expand / contract horizon thickness
  • harmonize(): create new profiles within a SPC based sets of related horizon-level data
  • hzAbove(), hzBelow(): locate horizons above or below some criteria
  • unique(): determine uniqueness among profiles of an SPC via MD5 hash
  • split(): split SPC into list of SPCs based on grouping factor
  • site(): get site data as data.frame
  • horizons(): get horizon data as data.frame
  • replaceHorizons(): replace horizon data
  • diagnostic_hz(): get/set diagnostic features
  • restrictions(): get/set restrictions
  • denormalize(): convert site-level data into horizon-level data via replication
  • compositeSPC(): downgrade an SPC to list of site and horizon-level data

Iteration

  • profileApply(): apply a function to each profile within an SPC (slow but simple interface)
  • summarizeSPC(): perform group-wise summaries over profiles within an SPC
  • transform(): modify a SPC using expressions that operation on site or horizon-level data

Change of Support

  • dice(): convert SPC to 1 depth-unit intervals by replication
  • slab(): apply an aggregate function over groups within a “dice()-ed” SPC
  • spc2mpspline(): interface to equal-area spline fitting from mpspline2 package
  • segment(): 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” SPC

Horizon Depth Logic

  • accumulateDepths(): fix horizon depths when old-style O horizon notation has been used
  • fillHzGaps(): fill topological gaps in horizon depth
  • repairMissingHzDepths(): attempt fixing missing or duplicated horizon bottom depths
  • flagOverlappingHz(): flag horizons with perfect overlap
  • checkHzDepthLogic(): apply battery of horizon depth topological tests
  • splitLogicErrors(): split an SPC according to variety of possibly horizon depth errors
  • HzDepthLogicSubset(): remove profiles from an SPC if any depth logic errors are present

Data QC

  • evalMissingData(): report metrics of missing data by profile within SPC
  • missingDataGrid(): visual indication of missing data
  • profileInformationIndex(): experimental indices of “information content” by profile

Object Coercion

  • as(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 object

Spatial Data

  • prj(): get/set coordinate reference system (CRS) metadata
  • initSpatial(): set (site-level) column names containing coordinates
  • getSpatial(): get spatial data (site + coordinates) from an SPC

Internal Consistency

  • checkSPC(): check SPC for internal consistency
  • rebuildSPC(): re-make an SPC from a previous version of aqp (rarely required)

Soil Profile Sketches

Soil Color / Color Science

Color Conversion

  • col2Munsell(): convert various color notations to Munsell notation
  • munsell2rgb(): convert Munsell notation to sRGB or CIELAB color coordinates
  • parseMunsell(): parse and optionally convert a munsell color
  • spec2Munsell(): 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)

Comparison

  • colorContrast(): pair-wise color contrast and CIE2000 (dE00) based on colors in Munsell notation
  • colorContrastPlot(): visual explanation of soil color contrast and dE00
  • contrastChart(): Munsell color book style explanation of soil color contrast and dE00
  • soilColorSignature(): derive soil color signatures for profiles within an SPC

Aggregation

  • colorChart(): Munsell color book representation of color frequency
  • aggregateColor(): estimate color proportions within an SPC according within groups of horizons
  • colorQuantiles(): marginal and L1 quantiles of color in CIELAB coordinates

Utility

  • huePosition(): generate an ordered factor of the standard Munsell hues
  • huePositionCircle(): graphical representation of the standard Munsell hues, with optional simulation of common color vision deficiency
  • simulateColor(): simulate a range of Munsell colors given measures of central tendency and spread
  • previewColors(): graphical preview of colors as a grid or via nMDS
  • soilPalette(): generate swatch-like arrangements of colors and labels
  • equivalentMunsellChips(): for a specified Munsell color, identify other Munsell colors with a very lower CIE2000 color contrast difference

Simulation of Mixtures

  • mixMunsell(): simulate an subtractive mixture of pigments specified in Munsell notation
  • plotColorMixture(): simulate a subtractive mixture of pigments, display reflectance spectra

Numerical Classification of Soil Profiles

Pedology

Soil Texture

  • 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 data
  • SoilTextureLevels(): ordered factor of soil texture classes
  • texcl_to_ssc(): convert soil texture classes to sand, silt, clay centroids
  • ssc_to_texcl(): convert sand, silt, clay values to soil texture class
  • texture_to_taxpartsize(): convert soil texture to Soil Taxonomy particle size class

Coarse Fragments

  • fragmentSieve(): classify coarse fragments by fragment diameter
  • texmod_to_fragvoltot(): estimate ranges in coarse fragment volume based on a soil texture modifier
  • texture_to_texmod()
  • fragvol_to_texmod()
  • fragmentClasses(): coarse fragment diameter thresholds used by USDA-NRCS

Soil Taxonomy

  • getArgillicBounds(): estimate the upper and lower boundaries of an argillic horizon
  • getCambicBounds(): estimate the upper and lower boundaries of a cambic horizon
  • getSurfaceHorizonDepth()
  • getMineralSoilSurfaceDepth()
  • getPlowLayerDepth()
  • hasDarkColors()
  • estimatePSCS()

Generalized Horizon Labels (GHL)

  • generalize.hz(): apply REGEX rules to group horizon designations into a reduced set of “generalized horizon labels”
  • evalGenHZ(): evaluate internal consistency of assigned GHL
  • genhzTableToAdjMat(): convert a cross-tabulation of GHL vs. original horizon designations to adjacency matrix
  • get.ml.hz(): extract most likely horizon boundary depths from probability depth functions
  • guessGenHzLevels(): estimate the correct ordering of GHL given horizon depths
  • GHL(): get/set GHL metadata for a SoilProfileCollection

Misc.

Accuracy and Uncertainty

  • shannonEntropy(): Shannon entropy
  • brierScore(): Brier’s score
  • tauW(): weighted tau statistic

Overlapping Annotation

  • findOverlap(): identify overlap within a vector of positions based on a given threshold
  • overlapMetrics(): 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

Example Data

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.