Skip to contents

Core data structures

The unified profile carrier. Every classification, every provenance tag, every key-trace lives on one of these objects.

PedonRecord
PedonRecord: structured representation of a single pedon
DiagnosticResult
DiagnosticResult: structured outcome of a diagnostic test
ClassificationResult
ClassificationResult: structured outcome of running a key
FamilyAttribute
Classe S4-like para atributos de Familia (5o nivel SiBCS)
horizon_column_spec()
Canonical horizon column specification
make_empty_horizons()
Build an empty horizons data.table with the canonical schema
ensure_horizon_schema()
Coerce a horizons-like data.frame to the canonical schema

Classification entry points

One function per system. Each returns a ClassificationResult with the assigned name, the full key trace, the per-attribute provenance log, and the evidence grade.

classify_wrb2022()
Classify a pedon under WRB 2022
classify_sibcs()
Classifica um pedon segundo o SiBCS 5a edicao (1o + 2o + 3o + 4o niveis)
classify_sibcs_familia()
Classifica um perfil no 5o nivel categorico do SiBCS (Familia)
classify_usda()
Classify a pedon under USDA Soil Taxonomy (13th edition)
classify_all()
Classify a pedon across all three taxonomic systems
classify_from_documents()
Build a fully-classified `PedonRecord` from documents in one call
classify_by_spectral_neighbours()
Classify a soil by spectral similarity to OSSL reference profiles
soil_classes_at_location()
Likely soil classes at a geographic location (spatial classification aid)

Interoperability

Conversion to / from the canonical R soil-data ecosystem: aqp::SoilProfileCollection. Round-trip preserving.

as_aqp()
Convert one or more PedonRecord objects to an aqp SoilProfileCollection
from_aqp()
Convert an aqp SoilProfileCollection back to a list of PedonRecord

Interactive Shiny app

Drag-and-drop CSV web interface; renders all three classifications side-by-side and exports a self-contained HTML report.

run_classify_app()
Launch the soilKey interactive classification Shiny app

USDA Soil Taxonomy 13ed – diagnostic helpers

Soil Taxonomy diagnostic helpers used by the v0.9.27+ argillic / clay-films logic.

argillic_clay_films_test()
Test for clay-illuviation evidence (KST 13ed Ch 3 p 4)

Benchmark utilities

Benchmark drivers and KSSL/NASIS label normalisers.

canonicalise_kst13ed_gg()
Canonicalise a USDA Great Group label to a KST 13ed-compatible key
normalise_kssl_subgroup()
Normalise KSSL USDA subgroup labels for benchmark comparison

WRB 2022 – diagnostic horizons (Ch 3.1)

32/32 diagnostic horizons per IUSS Working Group WRB (2022) Ch 3.1.

argic()
Argic horizon (WRB 2022)
albic()
Albic horizon (WRB 2022)
cambic()
Cambic horizon (WRB 2022)
calcic()
Calcic horizon (WRB 2022)
duric_horizon()
Duric horizon (WRB 2022)
ferralic()
Ferralic horizon (WRB 2022)
ferric()
Ferric horizon (WRB 2022)
fragic()
Fragic horizon (WRB 2022): a high-bulk-density horizon with restricted rooting. v0.3.3: detects via bulk_density_g_cm3 >= 1.65 AND structure grade massive/very firm OR designation pattern x/Bx.
gypsic()
Gypsic horizon (WRB 2022)
histic_horizon()
Histic horizon (WRB 2022)
mollic()
Mollic horizon (WRB 2022)
natric_horizon()
Natric horizon (WRB 2022)
nitic_horizon()
Nitic horizon (WRB 2022)
petrocalcic()
Petrocalcic horizon (WRB 2022)
petroduric()
Petroduric horizon (WRB 2022): cemented duric.
petrogypsic()
Petrogypsic horizon (WRB 2022): cemented gypsic.
petroplinthic()
Petroplinthic horizon (WRB 2022): cemented plinthic.
pisoplinthic()
Pisoplinthic horizon (WRB 2022): pisolitic plinthic. v0.3.3 detects via designation pattern Bspl / Bvpi or via plinthite \>= 15% AND structure_type containing 'pisol'.
plinthic()
Plinthic horizon (WRB 2022)
salic()
Salic horizon (WRB 2022)
sombric()
Sombric horizon (WRB 2022): subsurface accumulation of humus that qualified neither as spodic nor as a true mollic-like horizon (low-base-saturation cool tropical highlands). v0.3.3 detects via designation pattern + OC criteria (BS < 50, OC > 0.6, depth > 25 cm).
spodic()
Spodic horizon (WRB 2022)
thionic()
Thionic horizon (WRB 2022): post-oxidation acid sulfate horizon. Requires sulfidic_s_pct >= 0.01 AND pH(H2O) <= 4.
umbric_horizon()
Umbric horizon (WRB 2022)
vertic_horizon()
Vertic horizon (WRB 2022 Ch 3.1)
chernic()
Chernic horizon (WRB 2022): the cherozemic-style mollic with very high biological activity (worm holes, casts, coprolites). v0.3.3: delegates to mollic + worm_holes_pct >= 50 (proxy for "biological homogenization").
tsitelic()
Tsitelic horizon (WRB 2022 Ch 3.1)
panpaic()
Panpaic horizon (WRB 2022 Ch 3.1)
limonic()
Limonic horizon (WRB 2022 Ch 3.1)
protovertic()
Protovertic horizon (WRB 2022 Ch 3.1)
anthraquic()
Anthraquic horizon (WRB 2022): puddled-rice / paddy plough layer. v0.3.3 detects via designation pattern Apl|Ap|Hh.
hydragric()
Hydragric horizon (WRB 2022): subsoil hydric horizon under anthraquic. v0.3.3 detects via designation pattern Bg|Brg immediately below an anthraquic-like topsoil.
hortic()
Hortic horizon (WRB 2022): garden / kitchen-midden topsoil. Diagnostic criteria: thickness \>= 20 cm, dark colour (mollic-like), high P (Mehlich-3 P >= 100 mg/kg or P2O5_1pct_citric >= 175 mg/kg), high SOC.
irragric()
Irragric horizon (WRB 2022): topsoil thickened by irrigation deposits. v0.3.3: thickness >= 20 cm + sediment-derived structure proxied via designation Apk|Apg|Au.
plaggic()
Plaggic horizon (WRB 2022): sod-derived topsoil >= 20 cm with low BD AND independent evidence of human input.
pretic()
Pretic horizon (WRB 2022): "Amazonian Dark Earth" (terra preta de indio) horizon – thick anthropogenic surface with high P, SOC, and incorporated charcoal / pottery.
terric()
Terric horizon (WRB 2022): topsoil thickened by long-term application of mineral material (sediment / sand additions). v0.3.3: thickness >= 20 cm + designation Au / Apc.

WRB 2022 – diagnostic properties (Ch 3.2)

abrupt_textural_difference()
Abrupt textural difference (WRB 2022 Ch 3.2.1)
albeluvic_glossae()
Albeluvic glossae (WRB 2022 Ch 3.2.2)
andic_properties()
Andic properties (WRB 2022)
anthric_horizons()
Anthric horizons (WRB 2022)
continuous_rock()
Continuous rock (WRB 2022 Ch 3.2.5)
gleyic_properties()
Gleyic properties (WRB 2022)
lithic_discontinuity()
Lithic discontinuity (WRB 2022 Ch 3.2.7)
protocalcic_properties()
Protocalcic properties (WRB 2022 Ch 3.2.8)
protogypsic_properties()
Protogypsic properties (WRB 2022 Ch 3.2.9): visible secondary gypsum \>= 1% but below the gypsic gate.
reducing_conditions()
Reducing conditions (WRB 2022 Ch 3.2.10) – per-pedon test wrapping test_reducing_conditions.
retic_properties()
Retic properties (WRB 2022)
shrink_swell_cracks()
Shrink-swell cracks (WRB 2022 Ch 3.2.12) – per-pedon test wrapping test_shrink_swell_cracks.
sideralic_properties()
Sideralic properties (WRB 2022 Ch 3.2.13)
stagnic_properties()
Stagnic properties (WRB 2022)
takyric_properties()
Takyric properties (WRB 2022 Ch 3.2.15) – per-pedon test wrapping test_takyric_surface.
vertic_properties()
Vertic properties (WRB 2022)
vitric_properties()
Vitric properties (WRB 2022 Ch 3.2.16)
yermic_properties()
Yermic properties (WRB 2022 Ch 3.2.17) – per-pedon test wrapping test_yermic_surface.

WRB 2022 – diagnostic materials (Ch 3.3)

aeolic_material()
Aeolic material (WRB 2022 Ch 3.3.1)
artefacts()
Artefacts (WRB 2022 Ch 3.3.2)
calcaric_material()
Calcaric material (WRB 2022 Ch 3.3.3): \>= 2% CaCO3 throughout the fine earth, primary carbonates from the parent material.
claric_material()
Claric material (WRB 2022 Ch 3.3.4): light-coloured fine earth with Munsell criteria.
dolomitic_material()
Dolomitic material (WRB 2022 Ch 3.3.5): \>= 2% Mg-rich carbonate, CaCO3/MgCO3 < 1.5. v0.3.3: detects via designation pattern kdo|do|magn as proxy when ratio data missing.
fluvic_material()
Fluvic material (WRB 2022)
gypsiric_material()
Gypsiric material (WRB 2022 Ch 3.3.7): \>= 5% gypsum that is primary (not secondary). Without a "secondary fraction" schema column, v0.3.3 treats any layer with caso4_pct >= 5 as gypsiric unless it explicitly carries gypsic-horizon designation.
hypersulfidic_material()
Hypersulfidic material (WRB 2022 Ch 3.3.8): \>= 0.01% inorganic sulfidic S, pH \>= 4, capable of severe acidification on aerobic incubation.
hyposulfidic_material()
Hyposulfidic material (WRB 2022 Ch 3.3.9): same S and pH as hypersulfidic but does NOT consist of hypersulfidic (i.e. not capable of severe acidification). v0.3.3: returns sulfidic layers that don't meet hypersulfidic.
limnic_material()
Limnic material (WRB 2022 Ch 3.3.10): subaquatic deposits (coprogenous earth, diatomaceous earth, marl, gyttja). v0.3.3: detects via rock_origin %in% c("lacustrine", "marine") or designation pattern.
mineral_material()
Mineral material (WRB 2022 Ch 3.3.11): < 20% SOC AND < 35% volume artefacts containing >= 20% organic carbon. The complement of organic_material / organotechnic_material.
mulmic_material()
Mulmic material (WRB 2022 Ch 3.3.12): mineral material developed from organic material; \>= 8% SOC, with low BD, structural / chroma criteria.
organic_material()
Organic material (WRB 2022 Ch 3.3.13): \>= 20% SOC + recognisability criteria. v0.3.3: SOC threshold only.
organotechnic_material()
Organotechnic material (WRB 2022 Ch 3.3.14): \>= 35% volume of artefacts that themselves contain \>= 20% organic C. Soil itself has < 20% SOC.
ornithogenic_material()
Ornithogenic material (WRB 2022 Ch 3.3.15): bird-influenced topsoil. Mehlich-3 P >= 750 mg/kg + designation pattern Aornit|Bornit.
soil_organic_carbon()
Soil organic carbon (WRB 2022 Ch 3.3.16): organic C that does NOT belong to artefacts. v0.3.3: any layer with oc_pct >= 0.1 and artefacts_industrial_pct < 35.
solimovic_material()
Solimovic material (WRB 2022 Ch 3.3.17): hetero genous mass-movement material on slopes / footslopes (formerly "colluvic"). v0.3.3: detects via rock_origin == "colluvial" OR layer_origin == "solimovic".
technic_features()
Technic features (WRB 2022)
tephric_material()
Tephric material (WRB 2022 Ch 3.3.19): \>= 30% volcanic glass in 0.02-2 mm fraction AND no andic / vitric properties.

WRB 2022 – RSG-level gates

acrisol()
Acrisol RSG diagnostic (WRB 2022)
alisol()
Alisol RSG diagnostic (WRB 2022)
lixisol()
Lixisol RSG diagnostic (WRB 2022)
luvisol()
Luvisol RSG diagnostic (WRB 2022)
chernozem()
Chernozem RSG diagnostic (WRB 2022)
kastanozem()
Kastanozem RSG diagnostic (WRB 2022)
phaeozem()
Phaeozem RSG diagnostic (WRB 2022)
andosol()
Andosol RSG gate (WRB 2022 Ch 4, p 104)
chernozem_strict()
Chernozem RSG gate (strengthened, WRB 2022 Ch 4, p 111)
kastanozem_strict()
Kastanozem RSG gate (strengthened, WRB 2022 Ch 4, p 112)

WRB 2022 – qualifiers and specifiers (Ch 4–6)

Resolved by the rule-engine in canonical Ch 4 order; the sub-qualifier suppression machinery (Hyper- / Hypo- / Proto-) and the specifier prefix dispatch (Ano- / Epi- / Endo- / Bathy- / Panto- / Kato- / Amphi- / Poly- / Supra- / Thapto-) run inside classify_wrb2022().

qual_abruptic()
Abruptic qualifier (ap): abrupt textural difference within 100 cm.
qual_aceric()
Aceric qualifier (ae): pH (1:1 H2O) <= 5 in some layer within the upper 50 cm. Used for sub-aerially exposed acid-sulfate soils (Solonchaks, Gleysols on former tidal flats). v0.9.1: numeric pH gate only; v0.9.2 adds the cross-check against thionic / sulfidic material to disambiguate from naturally acidic Histosols.
qual_acric()
Acric qualifier (ac): argic horizon + low CEC + high Al. v0.9: argic + CEC < 24 cmolc/kg clay + exch Al > Ca+Mg+K+Na.
qual_acroxic()
Acroxic qualifier (ax): andic + extremely low effective exchange complex (Ca + Mg + K + Na exch + 1 N KCl Al-exch <= 2 cmol+/kg fine earth) in some layer of the andic part within 100 cm.
qual_activic()
Activic supplementary qualifier (av): active aluminium >= 5 cmol/kg WRB 2022 Ch 5: "KCl-extractable Al (al_kcl_cmol) >= 5 cmol(c)/kg in any layer in upper 100 cm." Proxy via existing al_cmol (exchangeable Al) when al_kcl_cmol absent.
qual_albic()
Albic qualifier (ab): albic horizon <= 100 cm.
qual_alcalic()
Alcalic supplementary qualifier (ac): pH (H2O) >= 9.0 WRB 2022 Ch 5: "Strongly alkaline reaction (pH H2O >= 9 in any layer within 100 cm of the soil surface)."
qual_alic()
Alic qualifier (al): argic + high CEC + high Al saturation.
qual_aluandic()
Aluandic qualifier (aa): andic properties + Al-dominant active component (Al / (Al + 0.5 Si) >= 0.5 in mass).
qual_andic()
Andic qualifier (an): andic OR vitric properties combined >= 30 cm. v0.9 simplification: passes if andic_properties or vitric_properties passes within 100 cm.
qual_anofluvic()
Anofluvic qualifier (af): fluvic material only at depth >= 50 cm
qual_anthraquic()
Anthraquic qualifier (aq): anthraquic horizon (puddled-rice surface).
qual_anthric()
Anthric qualifier (ak): anthric properties.
qual_anthromollic()
Anthromollic qualifier (am): anthric horizon overlying spodic
qual_archaic()
Archaic supplementary qualifier (ah): archeological context
qual_arenic()
Arenic qualifier (ar): texture sand or loamy sand >= 30 cm in <= 100 cm.
qual_arenicolic()
Arenicolic supplementary qualifier (an): faunal sand burrows
qual_aric()
Aric qualifier (ar): mineral surface horizon homogenised by ploughing – designation pattern Ap, Apk, Apc, etc., starting within the upper 30 cm.
qual_bathyspodic()
Bathyspodic supplementary qualifier (bs): spodic at 100-200 cm depth
qual_biocrustic()
Biocrustic supplementary qualifier (bk): biological soil crust
qual_brunic()
Brunic qualifier (br): incipient-only subsurface alteration – cambic horizon within the upper 100 cm AND no argic, spodic, ferralic, or nitic horizon present. Used by WRB 2022 Ch 4 for Arenosols that have begun to develop a weak Bw without crossing into Cambisol / Acrisol / Lixisol / Ferralsol territory; in those RSGs the cambic alone is the gating diagnostic and Brunic would be redundant.
qual_bryic()
Bryic supplementary qualifier (by): bryophyte cover at surface
qual_calcaric()
Calcaric qualifier (cl): calcaric material >= 25 cm in upper 100 cm.
qual_calcic()
Calcic qualifier (cc): calcic horizon <= 100 cm.
qual_cambic()
Cambic qualifier (cm): cambic horizon <= 50 cm.
qual_capillaric()
Capillaric supplementary qualifier (cp): capillary rise zone WRB 2022 Ch 5: "Capillary rise from a shallow water table to within 50 cm of the soil surface; flagged via redox concentrations (>=2%) + fine texture (clay+silt > 50%)."
qual_carbic()
Carbic qualifier (cb): spodic horizon dominated by humus illuviation. v0.9.1: spodic + OC >= 6% in some spodic layer (the WRB threshold for Carbic / "humus-Podzol" expression).
qual_carbonatic()
Carbonatic supplementary qualifier (cn): >= 50% carbonates
qual_carbonic()
Carbonic supplementary qualifier (cb): high SOC content (>= 6%)
qual_chernic()
Chernic qualifier (ch): chernic horizon (intensely worm-mixed mollic-like) within 100 cm.
qual_chloridic()
Chloridic supplementary qualifier (cl): high chloride WRB 2022 Ch 5: "Containing >= 4 cmol(c)/kg chloride OR EC >= 8 dS/m within 100 cm." Proxy via electrical conductivity field (ec_ds_m) when chloride is unavailable.
qual_chromic()
Chromic qualifier (cr): hue redder than 7.5YR + chroma > 4 (in upper subsoil 25-150 cm).
qual_clayic()
Clayic qualifier (ce): clay >= 60% texture for a layer >= 30 cm in the upper 100 cm.
qual_coarsic()
Coarsic qualifier (cr): >= 70% coarse fragments by volume in upper 100 cm
qual_cohesic()
Cohesic supplementary qualifier (co): cohesive horizon (extra-firm dry) WRB 2022 Ch 5: "Containing layers with extreme dry consistence AND moist consistence very firm." Implementation: matches via consistence_dry ("extremely hard") OR consistence_moist ("very firm"), within 100 cm.
qual_columnic()
Columnic supplementary qualifier (cm): columnar / prismatic structure WRB 2022 Ch 5: "Columnar or strong prismatic structure (associated with natric horizons)."
qual_cordic()
Cordic supplementary qualifier (cd): cordic horizon
qual_cryic()
Cryic qualifier (cy): cryic horizon <= 100 cm.
qual_cumulic()
Cumulic qualifier (cu): a layer of recent depositional material added on top of an existing soil. v0.9.3.B proxy: layer_origin is fluvic / aeolic / solimovic at the top of the profile, OR the uppermost mineral horizon's designation matches ^[AC]u?\d? (cumulic-style suffix).
qual_cutanic()
Cutanic qualifier (ct): visible illuvial clay coatings on argic- horizon ped surfaces (the "Cutanic Luvisol" / "Cutanic Argissol" signature). v0.9.1: argic horizon passes AND the schema column clay_films_amount contains "common", "many", or "continuous" (or "shiny" – common Brazilian descriptor for nitic surfaces) in some argic layer.
qual_densic()
Densic qualifier (dn): bulk density >= 1.8 g/cm3 in some root- restricting layer within 100 cm.
qual_differentic()
Differentic supplementary qualifier (df): contrasting layers WRB 2022 Ch 5: "Strong differences (texture, mineralogy, color) between adjacent layers without abrupt textural transition (mild clay-increase 1.2-1.4x ratio)."
qual_dolomitic()
Dolomitic qualifier (do): dolomitic material in upper 100 cm.
qual_dorsic()
Dorsic supplementary qualifier (do): dorsal-ridge microrelief
qual_drainic()
Drainic qualifier (dr): artificially drained organic soil. v0.9.1: site$drainage_class or site$land_use carries an explicit artificial drainage marker AND organic_material passes. Natural drainage classes (e.g. "very poorly drained", "well drained") do NOT trigger Drainic on their own.
qual_duric()
Duric qualifier (du): duric horizon <= 100 cm.
qual_dystric()
Dystric qualifier (dy): low base saturation throughout. v0.9: BS < 50% from 20 to 100 cm in mineral material.
qual_ekranic()
Ekranic qualifier (ek): impervious cover (asphalt, concrete) starting within 5 cm of the surface. v0.9.1: technic_hard_material with top depth <= 5 cm.
qual_endic()
Endic supplementary qualifier (ec): generic "in deep horizon" marker
qual_endoabruptic()
Endoabruptic supplementary qualifier (eea): abrupt textural change deep
qual_endocalcaric()
Endocalcaric qualifier (cae): calcaric only at depth >= 50 cm
qual_endocalcic()
Endocalcic qualifier (cam): calcic horizon between 50 and 100 cm.
qual_endodolomitic()
Endodolomitic qualifier (dme): dolomitic only at depth >= 50 cm
qual_endoduric()
Endoduric supplementary qualifier: duric horizon at depth >= 50 cm
qual_endodystric()
Endodystric supplementary qualifier (eds): dystric only at depth
qual_endoeutric()
Endoeutric supplementary qualifier (eee): eutric only at depth
qual_endogleyic()
Endogleyic qualifier (eng): gleyic conditions between 50 and 100 cm.
qual_endogypsic()
Endogypsic supplementary qualifier: gypsic horizon at depth >= 50 cm
qual_endoleptic()
Endoleptic supplementary qualifier (lle): rock contact 50-100 cm
qual_endostagnic()
Endostagnic qualifier (ens): stagnic conditions between 50 and 100 cm.
qual_endothionic()
Endothionic supplementary qualifier (etn): thionic at depth >= 50 cm
qual_endothyric()
Endothyric supplementary qualifier (etc): thyric only at depth >= 50
qual_entic()
Entic qualifier (et): albic horizon AND NOT spodic
qual_epic()
Epic supplementary qualifier (ep): generic "in shallow horizon"
qual_epidystric()
Epidystric supplementary qualifier (epd): dystric only in upper 50 cm
qual_epieutric()
Epieutric supplementary qualifier (eee): eutric only in upper 50 cm
qual_escalic()
Escalic supplementary qualifier (es): terraced / stepped morphology
qual_eutric()
Eutric qualifier (eu): high base saturation. v0.9: BS >= 50% throughout 20-100 cm.
qual_eutrosilic()
Eutrosilic qualifier (es): silandic + base saturation >= 50% in some layer of the silandic part within 100 cm.
qual_evapocrustic()
Evapocrustic supplementary qualifier (ev): evaporite surface crust
qual_ferralic()
Ferralic qualifier (fl): ferralic horizon <= 150 cm.
qual_ferric()
Ferric qualifier (fr): ferric horizon <= 100 cm.
qual_ferritic()
Ferritic qualifier (fr): high free-Fe in fine earth
qual_fibric()
Fibric qualifier (fi): organic material whose dominant decomposition class in the upper 100 cm is fibric (>= 2/3 fiber). v0.9.1: thickness-weighted dominance via Oi designation.
qual_floatic()
Floatic qualifier (fc): Histosol that floats on water.
qual_fluvic()
Fluvic qualifier (fv): fluvic material >= 25 cm thick starting <= 75 cm.
qual_folic()
Folic qualifier (fo): folic horizon at the soil surface. v0.9 delegates to histic_horizon with surface-only filter.
qual_fractic()
Fractic qualifier (fc): fractures (cracks) within 100 cm
qual_garbic()
Garbic qualifier (ga): >= 20% organic-waste artefacts (landfill refuse) in the upper 100 cm. v0.9.1 proxy: designation pattern (Cgarb|garb|landfill|refuse). Hard schema column artefacts_garbic_pct scheduled for v0.9.2.
qual_gelic()
Gelic supplementary qualifier (gl): permafrost or strong frost activity WRB 2022 Ch 5: "Permafrost within 200 cm of the soil surface OR gelic materials." Modifier of cryic_conditions for non-Cryosols.
qual_gelistagnic()
Gelistagnic supplementary qualifier (gst): stagnic in cold conditions WRB 2022 Ch 5: "Stagnic features (perched water) in cryic regime." Compose: stagnic_pattern + cryic_conditions.
qual_geoabruptic()
Geoabruptic supplementary qualifier (ga): abrupt change at lithological boundary WRB 2022 Ch 5: "Abrupt textural / mineralogical change at a lithological discontinuity (e.g., 2C horizon below B)." Implementation: designation pattern containing "2C" or "3C" (numeric prefix indicates lithologic discontinuity).
qual_geric()
Geric qualifier (gr): in some layer at <= 100 cm, the effective exchange complex (sum of bases + 1 N KCl Al-exchangeable) does not exceed 1.5 cmol+/kg fine earth, OR the soil shows net positive charge (delta pH = pH_KCl - pH_H2O > 0). The "or" path makes Geric / Posic overlap by design (per WRB Ch 5).
qual_gibbsic()
Gibbsic qualifier (gi): high gibbsite (>= 25%) in fine earth
qual_gilgaic()
Gilgaic supplementary qualifier (gi): gilgai microrelief WRB 2022 Ch 5: "Gilgai microrelief (associated with vertic shrinking/swelling soils)." Site-level field detection.
qual_glacic()
Glacic qualifier (gc): >= 75% ice by volume within 100 cm. v0.9.1 proxy: cryic conditions + designation pattern (ice|gel|glac). Schema column ice_pct scheduled for v0.9.2.
qual_gleyic()
Gleyic qualifier (gl): gleyic properties throughout a layer >= 25 cm starting <= 75 cm + reducing conditions.
qual_glossic()
Glossic qualifier (gs): mollic horizon penetrated by albeluvic tongues (glossae). Diagnostic of Glossic Chernozems / Phaeozems on the steppe / forest-steppe transition.
qual_greyzemic()
Greyzemic qualifier (gz): mollic / umbric overlain by albic-like layer
qual_grumic()
Grumic qualifier (gr): strong fine granular surface horizon (self-mulching Vertisol).
qual_gypsic()
Gypsic qualifier (gy): gypsic horizon <= 100 cm.
qual_gypsiric()
Gypsiric qualifier (gc): gypsiric material >= 25 cm in upper 100 cm.
qual_haplic()
Haplic qualifier (ha): no other principal qualifier of the RSG applies. Always passes; the qualifier resolution machinery uses it as the default when no other qualifier matched.
qual_hemic()
Hemic qualifier (hc): organic material whose dominant decomposition class in the upper 100 cm is hemic (1/6 - 2/3 fiber). v0.9.1: thickness-weighted dominance via Oe designation.
qual_histic()
Histic qualifier (hi): histic horizon at or near the surface.
qual_hortic()
Hortic qualifier (ht): hortic horizon (long-cultivated dark surface).
qual_humic()
Humic qualifier (hu): >= 1% SOC in upper 50 cm (weighted average).
qual_hydragric()
Hydragric qualifier (hg): hydragric horizon (puddled-rice subsurface).
qual_hydric()
Hydric qualifier (hy): water content at 1500 kPa >= 100% (undried fine earth, WRB 2022). v0.9.1 accepts the air-dried equivalent (>= 70%) when the lab protocol pre-dries; the result is flagged as "potentially over-permissive" via the notes field when the value falls in the 70-100% band.
qual_hydrophobic()
Hydrophobic supplementary qualifier (hf): water-repellent surface
qual_hyperalbic()
Hyperalbic qualifier (ha): albic horizon thicker than 100 cm in a contiguous run (extremely deep eluvial bleaching, common in giant Podzols of tropical white-sand systems and the deepest Stagnosol / Planosol profiles). Non-contiguous albic layers separated by an illuvial Bs / Bt do NOT count toward the threshold.
qual_hyperalic()
Hyperalic qualifier (yl): argic horizon with Al saturation >= 50% in some layer of the argic part within 100 cm. Stronger version of Alic.
qual_hyperartefactic()
Hyperartefactic qualifier (yr): >= 80% artefacts (any type) in the upper 100 cm.
qual_hypercalcic()
Hypercalcic qualifier (yc): calcic horizon AND CaCO3 >= 50% in some calcic layer.
qual_hyperdystric()
Hyperdystric qualifier (yd): base saturation < 5% throughout the upper 100 cm (mineral soil layers only). Stronger than Dystric (BS < 50%).
qual_hypereutric()
Hypereutric qualifier (ye): base saturation >= 80% throughout the upper 100 cm. Stronger than Eutric (BS >= 50%).
qual_hypergypsic()
Hypergypsic qualifier (yg): gypsic horizon AND gypsum >= 60% in some gypsic layer.
qual_hypernatric()
Hypernatric supplementary qualifier (hyna): very high Na (>= 70% ESP)
qual_hyperorganic()
Hyperorganic supplementary qualifier (hyo): SOC >= 18% (peat-like) WRB 2022 Ch 5: "Containing organic carbon >= 18% by mass in any layer >= 10 cm thick." A stronger version of `Carbonic`.
qual_hypersalic()
Hypersalic qualifier (yz): EC (1:5 H2O extract) >= 30 dS/m in some layer within the upper 100 cm. Stronger than the Salic horizon (default >= 15 dS/m).
qual_hyperskeletic()
Hyperskeletic qualifier (hk): coarse fragments >= 90% throughout the upper 100 cm.
qual_hypersodic()
Hypersodic qualifier (yo): ESP >= 50% in some layer within 100 cm. Stronger than Sodic (default ESP >= 6%).
qual_hyperspodic()
Hyperspodic qualifier (hp): spodic horizon with very strong active Al + Fe accumulation (Al_ox + 0.5 * Fe_ox >= 1.5%) – twice the minimum spodic threshold per WRB Ch 3.1. v0.9.1 also requires p-retention >= 85% in the same layers when available.
qual_hypocalcic()
Hypocalcic qualifier (jc): CaCO3 >= 5% AND < 15% in some layer within 100 cm (between protocalcic 0.5% and the calcic-horizon 15% threshold). Marks the broad "carbonate-bearing" middle band that doesn't meet the Calcic horizon.
qual_hypogypsic()
Hypogypsic qualifier (jg): gypsum >= 1% AND < 5% in some layer within 100 cm (below the gypsic-horizon threshold but above the protogypsic-properties bare-detection bar).
qual_hyposalic()
Hyposalic qualifier (jz): EC (1:5 H2O extract) >= 4 dS/m AND < 15 dS/m in some layer within the upper 100 cm. Used for soils too weak to qualify as Solonchak but still carrying a salinity tag.
qual_hyposodic()
Hyposodic qualifier (jo): ESP >= 6% AND < 15% in some layer within 100 cm. Marginal sodicity tag.
qual_immissic()
Immissic supplementary qualifier (im): atmospheric immission
qual_inclinic()
Inclinic supplementary qualifier (in): tilted / inclined position WRB 2022 Ch 5: site has a slope >= 10% (relevo declivoso). Implementation: site$slope_pct (when populated) >= 10 OR parent_material / forma_relevo flagging steep terrain.
qual_irragric()
Irragric qualifier (ir): irragric horizon (irrigation-deposited surface).
qual_isolatic()
Isolatic qualifier (il): isolated technic material
qual_isopteric()
Isopteric supplementary qualifier (ip): termite / ant biogenesis
qual_kalaic()
Kalaic supplementary qualifier (ka): dry-season puffed surface layer
qual_lamellic()
Lamellic qualifier (ll): thin (\(<\) 5 cm) clay-enriched lamellae, typical of sandy Luvisols / Alisols / Acrisols. v0.9.3.B proxy: designation pattern lamell / E&Bt / &Bt / Bt(t)?\d?lam in any subsurface layer.
qual_lapiadic()
Lapiadic supplementary qualifier (lp): karren / lapies bedrock features
qual_laxic()
Laxic supplementary qualifier (lx): loose / non-cohesive surface WRB 2022 Ch 5: "Surface horizon with loose dry consistence and single-grain or massive structure."
qual_leptic()
Leptic qualifier (le): continuous rock <= 100 cm.
qual_lignic()
Lignic supplementary qualifier (lg): wood content in organic horizon WRB 2022 Ch 5: "Containing recognisable wood remains (>= 25% by volume or weight) in organic material." Implementation: woody_fragments_pct or layer_origin matching wood.
qual_limnic()
Limnic qualifier (lm): limnic material (lacustrine / marine subaquatic deposits) anywhere in the profile.
qual_linic()
Linic qualifier (li): continuous artificial geomembrane within 100 cm. v0.9.1 proxy: designation pattern (linic|geomemb|liner).
qual_lithic()
Lithic qualifier (lt): continuous rock starting within 10 cm. Tighter depth gate than Leptic (which is <= 100 cm) and Nudilithic (== 0 cm).
qual_litholinic()
Litholinic supplementary qualifier (ll): stratified soil on rock
qual_lixic()
Lixic qualifier (lx): argic + low CEC, low Al.
qual_loamic()
Loamic qualifier (lo): loam-class texture >= 30 cm in the upper 100 cm.
qual_luvic()
Luvic qualifier (lv): argic + high CEC, low Al saturation.
qual_magnesic()
Magnesic qualifier (mg): exchangeable Ca/Mg < 1 in upper 100 cm.
qual_mahic()
Mahic supplementary qualifier (mh): manure-derived dark surface WRB 2022 Ch 5: "Topsoil enriched by long-term manure / compost application; oc_pct >= 4%, base_saturation_pct >= 50%, and p_mehlich >= 100 mg/kg."
qual_mawic()
Mawic qualifier (mw): moss-fibre-dominant peat
qual_mazic()
Mazic qualifier (mz): structureless / massive surface horizon (Vertisol). Diagnostic of slaked, crusted Vertisol surfaces.
qual_melanic()
Melanic qualifier (me): andic + dark high-OC surface horizon. v0.9.1: thickness >= 30 cm within upper 50 cm, OC weighted >= 6%, Munsell value <= 2 and chroma <= 2 (moist). Melanic Index >= 1.7 (the canonical UV-OD ratio) is deferred to v0.9.2.
qual_mineralic()
Mineralic supplementary qualifier (mn): predominantly mineral WRB 2022 Ch 5: "Predominantly mineral material in upper 100 cm (oc_pct < 12% averaged over depth)."
qual_mochipic()
Mochipic supplementary qualifier (mp): mottled mochi-like pattern
qual_mollic()
Mollic qualifier (mo): mollic horizon.
qual_mulmic()
Mulmic qualifier (ml): mulmic material in upper 100 cm.
qual_murshic()
Murshic qualifier (mr): partly drained organic with strong decomposition
qual_muusic()
Muusic qualifier (mu): high-fibre peat (non-moss-specific)
qual_naramic()
Naramic supplementary qualifier (na): salt-crust morphology
qual_natric()
Natric qualifier (na): natric horizon <= 100 cm.
qual_nechic()
Nechic supplementary qualifier (ne): aeolian / loess deposit pattern
qual_neobrunic()
Neobrunic qualifier (nb): "young" cambic-like horizon
qual_neocambic()
Neocambic qualifier (nc): "young" cambic horizon with weak development
qual_nitic()
Nitic qualifier (ni): nitic horizon <= 100 cm.
qual_nudiargic()
Nudiargic qualifier (nu): argic horizon at the surface
qual_nudilithic()
Nudilithic qualifier (nt): continuous rock at the soil surface (top_cm == 0).
qual_nudinatric()
Nudinatric qualifier (nn): natric horizon at the surface
qual_ochric()
Ochric qualifier (oh): SOC >= 0.2% upper 10 cm + no mollic/umbric.
qual_ombric()
Ombric qualifier (om): rain-fed Histosol.
qual_organotechnic()
Organotechnic qualifier (ot): organotechnic material in upper 100 cm.
qual_ornithic()
Ornithic qualifier (oc): ornithogenic material (bird-influenced topsoil) in the upper 50 cm.
qual_orthofluvic()
Orthofluvic qualifier (of): fluvic material 50-100 cm
qual_ortsteinic()
Ortsteinic qualifier (os): cemented spodic horizon. v0.9.1: spodic horizon + cementation_class strongly OR indurated.
qual_oxyaquic()
Oxyaquic qualifier (oa): saturation regime without reduction
qual_oxygleyic()
Oxygleyic qualifier (og): gleyic regime with predominant oxidation
qual_pachic()
Pachic qualifier (pc): mollic OR umbric horizon >= 50 cm thick.
qual_pantofluvic()
Pantofluvic qualifier (pf): fluvic material throughout 0-100 cm
qual_pellic()
Pellic qualifier (pe): in the upper 30 cm, Munsell value <= 4 moist AND chroma <= 2 moist. Diagnostic of "black" (dark) Vertisols.
qual_pelocrustic()
Pelocrustic supplementary qualifier (pc): clayey surface crust
qual_petric()
Petric qualifier (pt): any petro-cemented horizon (petrocalcic / petroduric / petrogypsic / petroplinthic) within 100 cm.
qual_petrocalcic()
Petrocalcic qualifier (pc): petrocalcic horizon <= 100 cm.
qual_petroduric()
Petroduric qualifier (pd): petroduric horizon <= 100 cm.
qual_petrogypsic()
Petrogypsic qualifier (pg): petrogypsic horizon <= 100 cm.
qual_petroplinthic()
Petroplinthic qualifier (pp): petroplinthic horizon <= 100 cm.
qual_petrosalic()
Petrosalic qualifier (ptso): cemented salic horizon
qual_pisoplinthic()
Pisoplinthic qualifier (px): pisoplinthic horizon within 100 cm.
qual_placic()
Placic qualifier (pi): thin (<= 25 mm = 2.5 cm) cemented Fe pan, typically inside or just above a spodic horizon. v0.9.1: a layer with cementation_class strongly or indurated AND thickness <= 2.5 cm, anywhere in the upper 100 cm.
qual_plaggic()
Plaggic qualifier (pa): plaggic horizon (sod-amended surface).
qual_plinthic()
Plinthic qualifier (pl): plinthic horizon <= 100 cm.
qual_posic()
Posic qualifier (po): net positive permanent charge (pH_KCl > pH_H2O) in some layer at <= 100 cm. Diagnostic of the most weathered Ferralsols where free Fe / Al oxides dominate the surface charge.
qual_pretic()
Pretic qualifier (pt): pretic (pre-Columbian Amerindian dark earth) horizon.
qual_profondic()
Profondic qualifier (pf): argic horizon that continues, with no clay decrease, down to or below 150 cm. v0.9.3.B: requires argic to pass AND at least one argic layer with bottom_cm >= 150.
qual_profundihumic()
Profundihumic qualifier (ph): SOC >= 1.4% to depth >= 100 cm
qual_protic()
Protic qualifier (pr): Arenosol (or Regosol) with NO incipient subsurface horizon – i.e. an A-over-C profile where no cambic, no argic, no spodic, no ferralic, no nitic horizon is present in the upper 100 cm. v0.9.1 implements as the conjunction of the "no B horizon" diagnostics.
qual_protoandic()
Protoandic supplementary qualifier (pan): early-stage andic WRB 2022 Ch 5: "Andic-like properties below the strict threshold (oxalate Al+Fe 0.4-2.0%)."
qual_protoargic()
Protoargic supplementary qualifier (pra): early-stage argic WRB 2022 Ch 5: "Clay increase 2-6 percentage points (below the canonical argic threshold)."
qual_protocalcic()
Protocalcic qualifier (qc): protocalcic properties (incipient carbonate accumulation) within the upper 100 cm. Wraps protocalcic_properties.
qual_protogypsic()
Protogypsic qualifier (qg): protogypsic properties (incipient gypsum accumulation) within the upper 100 cm. Wraps protogypsic_properties.
qual_protospodic()
Protospodic supplementary qualifier (psp): early-stage spodic WRB 2022 Ch 5: "Spodic-like horizon meeting weakened criteria (Al+Fe oxalate < 0.5% but pyrophosphate > 0.05%)." Lacking pyrophosphate field; we proxy via spodic candidate horizons that fail strict spodic.
qual_protovertic()
Protovertic qualifier (qv): protovertic horizon (vertic-spectrum lower bound, no slickensides yet but the clay + structure / shrink-swell signal is already present) within the upper 100 cm. Wraps protovertic and is mutually exclusive with the strict Vertic qualifier.
qual_puffic()
Puffic supplementary qualifier (pf): puffed surface
qual_pyric()
Pyric supplementary qualifier (py): fire-affected horizon WRB 2022 Ch 5: "Containing layers with charcoal / soot / fire-baked material (visual or chemical evidence)." Implementation: layer_origin or designation matching fire-related text.
qual_raptic()
Raptic supplementary qualifier (rp): stratification break
qual_reductaquic()
Reductaquic qualifier (ra): aquic + reductive at depth
qual_reductic()
Reductic qualifier (rd): permanently reducing conditions caused by anthropogenic gas / liquid emissions (typical of Technosols on landfills). v0.9.1: reducing_conditions + Technic context.
qual_reductigleyic()
Reductigleyic qualifier (rg): gleyic + reductive
qual_relocatic()
Relocatic qualifier (rl): relocated material (Arenosols / Regosols)
qual_rendzic()
Rendzic qualifier (rz): mollic horizon directly over calcaric material (or limestone), shallow. Defined as Mollic + (Calcaric OR continuous rock with carbonate parent material).
qual_retic()
Retic qualifier (rt): retic properties <= 100 cm.
qual_rheic()
Rheic qualifier (rh): water-fed Histosol.
qual_rhodic()
Rhodic qualifier (ro): hue redder than 5YR + value < 4 + dry no more than 1 unit higher than moist (in upper subsoil 25-150 cm).
qual_rockic()
Rockic qualifier (rk): rock-dominated organic horizon
qual_rubic()
Rubic qualifier (rb): red Munsell hue \(\le\) 5YR AND chroma \(\ge\) 4 in some layer within the upper 100 cm. Less strict than Rhodic (which requires \(\le\) 2.5YR + value < 4); useful as a supplementary tag for tropical soils with reddish colours that don't reach the Rhodic threshold.
qual_rustic()
Rustic qualifier (rs): iron-dominated spodic illuviation. v0.9.1: spodic + OC < 1% AND active iron (Fe_ox) >= 0.5% in the same spodic layer (humus-poor, Fe-rich ortstein / Bs).
qual_salic()
Salic qualifier (sz): salic horizon <= 100 cm.
qual_sapric()
Sapric qualifier (sa): organic material whose dominant decomposition class in the upper 100 cm is sapric (rubbed fiber < 1/6). v0.9.1: thickness-weighted dominance via Oa designation.
qual_saprolithic()
Saprolithic supplementary qualifier (sp): saprolite parent material
qual_silandic()
Silandic qualifier (sn): andic properties + Si-dominant active component (Al / (Al + 0.5 Si) < 0.5 in mass; allophane-rich).
qual_siltic()
Siltic qualifier (sl): silt or silt-loam texture >= 30 cm in the upper 100 cm.
qual_skeletic()
Skeletic qualifier (sk): coarse fragments >= 40% averaged over 100 cm.
qual_sodic()
Sodic qualifier (so): ESP >= 6% (incl. SAR-derived).
qual_solimovic()
Solimovic qualifier (sv): solimovic material (mass-movement deposits).
qual_sombric()
Sombric qualifier (sm): sombric horizon (humus-illuviated layer at depth) within 200 cm. WRB excludes layers that simultaneously meet spodic or ferralic criteria from being Sombric – those have specific qualifiers of their own. v0.9.1 enforces both exclusions.
qual_someric()
Someric qualifier (sm): anthric epipedon over chernic / mollic
qual_spodic()
Spodic qualifier (sd): spodic horizon <= 200 cm.
qual_spolic()
Spolic qualifier (sp): >= 20% mineral spoil artefacts (mining / industrial-process slag) in the upper 100 cm. v0.9.1 proxy: designation pattern (Cspol|spoil|slag|mine) or rock_origin == "spoil". Hard schema column artefacts_spolic_pct scheduled for v0.9.2.
qual_stagnic()
Stagnic qualifier (st): stagnic properties <= 75 cm.
qual_subaquatic()
Subaquatic qualifier (sq): permanently under water. v0.9.1: site$drainage_class == "subaquatic" or "submerged".
qual_sulfatic()
Sulfatic supplementary qualifier (su): high sulfate content WRB 2022 Ch 5: "Containing >= 25% gypsum or >= 5% sulfate by mass."
qual_sulfidic()
Sulfidic qualifier (sf): hyper- OR hyposulfidic material in upper 100 cm (the WRB Sulfidic qualifier covers either acidification class).
qual_takyric()
Takyric qualifier (ty): takyric properties in upper 50 cm.
qual_technic()
Technic qualifier (tc): >= 20% artefacts in upper 100 cm OR equivalent geomembrane / technic-hard cover.
qual_tephric()
Tephric qualifier (tf): tephric material >= 30 cm in upper 100 cm.
qual_terric()
Terric qualifier (te): terric horizon (anthropogenic added mineral material on top of cultivated land).
qual_thionic()
Thionic qualifier (tn): thionic horizon within 100 cm.
qual_thixotropic()
Thixotropic supplementary qualifier (tx): thixotropic behavior
qual_thyric()
Thyric qualifier (ty): organic technic material in upper 100 cm
qual_tidalic()
Tidalic qualifier (td): subject to tidal flooding. v0.9.1: site$drainage_class contains "tidal".
qual_tonguic()
Tonguic qualifier (tg): tongues of A horizon penetrating into B
qual_toxic()
Toxic qualifier (tx): toxic concentration of organic or inorganic constituents.
qual_transportic()
Transportic qualifier (tr): transported material (Technosols / Regosols)
qual_turbic()
Turbic qualifier (tb): cryoturbation features within 100 cm. v0.9.1 proxy: cryic conditions + designation pattern (turb|jj|cryot) OR slickensides "common"/"many" in a cryic profile.
qual_umbric()
Umbric qualifier (um): umbric horizon.
qual_urbic()
Urbic qualifier (ub): >= 20% urbic artefacts (rubble, refuse) in the upper 100 cm.
qual_uterquic()
Uterquic supplementary qualifier (uq): bidirectional water regime
qual_vermic()
Vermic qualifier (vm): >= 50% bioturbation by worm casts / krotovinas in the upper 100 cm. v0.9.1: worm_holes_pct >= 50.
qual_vertic()
Vertic qualifier (vr): vertic horizon <= 100 cm.
qual_vetic()
Vetic qualifier (vt): CEC (1 N NH4OAc, pH 7) by clay does not exceed 6 cmol+/kg clay in some layer at <= 100 cm. Stronger than the ferralic-CEC threshold (<= 16 cmol+/kg clay).
qual_vitric()
Vitric qualifier (vi): vitric properties >= 30 cm within 100 cm.
qual_wapnic()
Wapnic qualifier (wp): soft, moist limnic material >= 80% CaCO3
qual_xanthic()
Xanthic qualifier (xa): ferralic + hue 7.5YR or yellower + value >= 4 + chroma >= 5.
qual_yermic()
Yermic qualifier (ye): yermic properties in upper 50 cm.

SiBCS 5ª ed. – atributos diagnósticos (Cap 1)

carater_acrico()
Carater acrico (SiBCS Cap 1, p 31)
carater_alitico()
Carater alitico (SiBCS Cap 1, p 32)
carater_arenico()
Carater arenico (SiBCS Cap 5)
carater_argiluvico()
Carater argiluvico (SiBCS Cap 1; Cap 6)
carater_cambissolico()
Carater cambissolico (SiBCS Cap 14)
carater_cambissolico_arg()
Carater cambissolico (Argissolos – Cap 5)
carater_carbonatico()
Carater carbonatico (SiBCS Cap 1, p 33)
carater_chernossolico()
Carater chernossolico (SiBCS Cap 5; A chernozemico + Ta alta)
carater_coeso()
Carater coeso (SiBCS Cap 1, pp 32-33)
carater_durico()
Carater durico (SiBCS Cap 1)
carater_ebanico()
Carater ebanico (SiBCS Cap 1; Cap 7 e Cap 17)
carater_espessarenico()
Carater espessarenico (SiBCS Cap 5)
carater_espodico()
Carater espodico (SiBCS Cap 1, p 35; Cap 8)
carater_espodico_profundo()
Carater B espodico profundo (SiBCS Cap 8)
carater_eutrico()
Carater eutrico (SiBCS Cap 1, p 35)
carater_ferrico()
Carater ferrico (SiBCS Cap 1, p 35; Cap 5 e Cap 10)
carater_fluvico()
Carater fluvico (SiBCS Cap 1, p 35-36): camadas estratificadas + distribuicao irregular de C organico. Reuso de fluvic_material (WRB).
carater_gleissolico()
Carater gleissolico (SiBCS Cap 5; horizonte_glei em posicao nao-Gleissolo)
carater_hidromorfico()
Carater hidromorfico (SiBCS Cap 8)
carater_hipocarbonatico()
Carater hipocarbonatico (SiBCS Cap 1, p 33): CaCO3 entre 50 e 150 g/kg.
carater_humico_espesso()
Carater espesso-humico (SiBCS Cap 5, p 119)
carater_latossolico()
Carater latossolico (SiBCS Cap 5)
carater_leptico()
Carater leptico (SiBCS Cap 5; contato litico em 50-100 cm)
carater_leptofragmentario()
Carater leptofragmentario (SiBCS Cap 5; Cr / fragmentary 50-100 cm)
carater_luvissolico()
Carater luvissolico (SiBCS Cap 5; Ta + S alta)
carater_nitossolico()
Carater nitossolico (SiBCS Cap 5)
carater_palico()
Carater palico (SiBCS Cap 11)
carater_perferrico()
Carater perferrico (SiBCS Cap 1; Cap 6 CX Perferricos)
carater_petroplintico()
Carater petroplintico (SiBCS Cap 5)
carater_placico()
Carater placico (SiBCS Cap 5; horizonte placico cementado por Fe/Mn)
carater_planossolico()
Carater planossolico (SiBCS Cap 5)
carater_plintico()
Carater plintico (SiBCS Cap 1, p 36): plintita >= 5% em quantidade insuficiente para horizonte plintico.
carater_psamitico()
Carater psamitico (SiBCS Cap 10)
carater_redoxico()
Carater redoxico (SiBCS Cap 1, p 36-37): feicoes redoximorficas em quantidade pelo menos comum, dentro da secao de controle. epirredoxico se dentro de 50 cm; endorredoxico se 50-150 cm.
carater_retratil()
Carater retratil (SiBCS Cap 1, p 33)
carater_rubrico()
Carater rubrico (SiBCS Cap 1; Cap 10 Latossolos Brunos)
carater_salico()
Carater salico (SiBCS Cap 1, p 38): CE >= 7 dS/m em alguma epoca.
carater_salino()
Carater salino (SiBCS Cap 1, p 39): 4 <= CE < 7 dS/m.
carater_saprolitico()
Carater saprolitico (SiBCS Cap 5)
carater_sodico()
Carater sodico (SiBCS Cap 1, p 39): saturacao por sodio (PST) >= 15%.
carater_solodico()
Carater solodico (SiBCS Cap 1, p 39): PST entre 6% e < 15%.
carater_sombrico()
Carater sombrico (SiBCS Cap 1; Cap 5 PV)
carater_terrico()
Carater terrico (SiBCS Cap 14)
carater_tionico()
Carater tionico (SiBCS Cap 9; Cap 1 thionic-related)
carater_vertissolico()
Carater vertissolico (SiBCS Cap 6)
atividade_argila_alta()
Atividade da fracao argila (SiBCS Cap 1, p 30)

SiBCS 5ª ed. – horizontes diagnósticos (Cap 2)

horizonte_A_antropico()
Horizonte A antropico (SiBCS) (SiBCS Cap 2, p 53)
horizonte_A_chernozemico()
Horizonte A chernozemico (SiBCS Cap 2, p 50-51)
horizonte_A_fraco()
Horizonte A fraco (SiBCS Cap 2, p 53): cor clara + estrutura grao simples/macica + OC < 6 g/kg; OR espessura < 5 cm.
horizonte_A_humico()
Horizonte A humico (SiBCS Cap 2, p 51-52)
horizonte_A_moderado()
Horizonte A moderado (SiBCS Cap 2, p 53-54): catch-all. Returns TRUE quando o solo tem horizonte superficial mas nao se enquadra nas demais classes diagnosticas superficiais.
horizonte_A_proeminente()
Horizonte A proeminente (SiBCS Cap 2, p 52-53)
horizonte_E_albico()
Horizonte E albico (SiBCS Cap 2, p 66-67; v0.7)
horizonte_calcico()
Horizonte calcico (SiBCS Cap 2, p 71-72; v0.7)
horizonte_concrecionario()
Horizonte concrecionario (SiBCS Cap 2, p 68-69; v0.7)
horizonte_glei()
Horizonte glei (SiBCS Cap 2, p 69-71; v0.7)
horizonte_histico()
Horizonte histico (SiBCS Cap 2, p 49-50)
horizonte_litoplintico()
Horizonte litoplintico (SiBCS Cap 2, p 69; v0.7)
horizonte_petrocalcico()
Horizonte petrocalcico (SiBCS Cap 2, p 72; v0.7)
horizonte_plintico()
Horizonte plintico (SiBCS Cap 2, p 67-68; v0.7)
horizonte_sulfurico()
Horizonte sulfurico (SiBCS Cap 2, p 72-73; v0.7)
horizonte_vertico()
Horizonte vertico (SiBCS Cap 2, p 73; v0.7)
B_textural()
Horizonte B textural (SiBCS Cap 2, p 54-57; v0.7 strict)
B_latossolico()
Horizonte B latossolico (SiBCS Cap 2, p 57-59; v0.7 strict)
B_nitico()
Horizonte B nitico (SiBCS Cap 2, p 61-62; v0.7)
B_espodico()
Horizonte B espodico (SiBCS Cap 2, p 62-65; v0.7)
B_incipiente()
Horizonte B incipiente (SiBCS Cap 2, p 59-61; v0.7)
B_planico()
Horizonte B planico (SiBCS Cap 2, p 65-66; v0.7)

SiBCS 5ª ed. – chave (1º–4º níveis, Caps 3–17)

Per-Ordem dispatchers walk Subordem -> Grande Grupo -> Subgrupo. Triggered by classify_sibcs(pedon).

argissolo()
Argissolos (SiBCS Cap 4, p 114; conceito Cap 3, p 86-88)
argissolo_acinzentado()
Argissolos Acinzentados (SiBCS Cap 5)
argissolo_amarelo()
Argissolos Amarelos (SiBCS Cap 5)
argissolo_bruno_acinzentado()
Argissolos Bruno-Acinzentados (SiBCS Cap 5)
argissolo_vermelho()
Argissolos Vermelhos (SiBCS Cap 5)
argissolo_vermelho_amarelo()
Argissolos Vermelho-Amarelos (catch-all dos Argissolos)
cambissolo()
Cambissolos (SiBCS Cap 4, p 113; conceito Cap 3, p 88-89)
cambissolo_fluvico()
Cambissolos Fluvicos (Cap 6): carater fluvico.
cambissolo_haplico()
Cambissolos Haplicos (catch-all).
cambissolo_histico()
Cambissolos Histicos (Cap 6): horizonte histico sem espessura para Organossolo.
cambissolo_humico()
Cambissolos Humicos (Cap 6): horizonte A humico.
chernossolo()
Chernossolos (SiBCS Cap 4, p 113; conceito Cap 3, p 89-90)
chernossolo_argiluvico()
Chernossolos Argiluvicos (Cap 7): B textural abaixo do A chernozemico.
chernossolo_ebanico()
Chernossolos Ebanicos (Cap 7): caracter ebanico em B. v0.7.1: detecta via Munsell em B - hue 7.5YR ou mais amarelo: V<4 + C<3 umido; OR hue mais vermelho 7.5YR: preto/cinza muito escuro.
chernossolo_haplico()
Chernossolos Haplicos (catch-all).
chernossolo_rendzico()
Chernossolos Rendzicos (Cap 7): A chernozemico + (calcico/petrocalcico OR carater carbonatico).
espodossolo()
Espodossolos (SiBCS Cap 4, p 112; conceito Cap 3, p 90-91)
espodossolo_ferri_humiluvico()
Espodossolos Ferri-humiluvicos (Cap 8): B espodico tipo Bhs OR catch-all dos espodossolos.
espodossolo_ferriluvico()
Espodossolos Ferriluvicos (Cap 8): B espodico tipo Bs (Fe + Al, baixo OC iluvial).
espodossolo_humiluvico()
Espodossolos Humiluvicos (Cap 8): B espodico tipo Bh (org. + Al, pouco/sem Fe).
gleissolo()
Gleissolos (SiBCS Cap 4, p 112-113; conceito Cap 3, p 91-93)
gleissolo_haplico()
Gleissolos Haplicos (catch-all).
gleissolo_melanico()
Gleissolos Melanicos (Cap 9): horizonte hístico < 40 cm OR A humico, proeminente, chernozemico.
gleissolo_salico()
Gleissolos Salicos (Cap 9): caracter salico em < 100 cm.
gleissolo_tiomorfico()
Gleissolos Tiomorficos (Cap 9): materiais sulfidricos OR horizonte sulfurico em < 100 cm.
latossolo()
Latossolos (SiBCS Cap 4, p 113; conceito Cap 3, p 93-94)
latossolo_amarelo()
Latossolos Amarelos (Cap 10): matiz \>= 7.5YR (mais amarelo).
latossolo_bruno()
Latossolos Brunos (Cap 10): matiz \>= 7.5YR + valor \<= 4 + croma \<= 5 (cores brunadas) OR caracter retratil.
latossolo_ki_kr()
Ki/Kr para Latossolos (SiBCS Cap 10, p 173-176)
latossolo_vermelho()
Latossolos Vermelhos (Cap 10): matiz \<= 2.5YR (mais vermelho).
latossolo_vermelho_amarelo()
Latossolos Vermelho-Amarelos (catch-all).
luvissolo()
Luvissolos (SiBCS Cap 4, p 113; conceito Cap 3, p 95-96)
luvissolo_cromico()
Luvissolos Cromicos (Cap 11): caracter cromico (cores fortes em B). Aplicado pela presenca de Munsell vermelho-amarelado em B com cromas altos.
luvissolo_haplico()
Luvissolos Haplicos (catch-all).
neossolo()
Neossolos (SiBCS Cap 4, p 111-112; conceito Cap 3, p 96-97)
neossolo_fluvico()
Neossolos Fluvicos (Cap 12): caracter fluvico em < 150 cm.
neossolo_litolico()
Neossolos Litolicos (Cap 12): contato litico ou litico fragmentario \<= 50 cm.
neossolo_quartzarenico()
Neossolos Quartzarenicos (Cap 12): textura areia/areia franca em todos os horizontes ate 150 cm + 95% quartzo.
neossolo_regolitico()
Neossolos Regoliticos (catch-all dos Neossolos).
nitossolo()
Nitossolos (SiBCS Cap 4, p 114; conceito Cap 3, p 97-98)
nitossolo_bruno()
Nitossolos Brunos (Cap 13): matiz \>= 7.5YR + valor <= 4 + croma <= 5.
nitossolo_haplico()
Nitossolos Haplicos (catch-all).
nitossolo_vermelho()
Nitossolos Vermelhos (Cap 13): matiz \<= 2.5YR.
organossolo()
Organossolos (SiBCS Cap 4, chave do 1o nivel; conceito Cap 3, p 99-101)
organossolo_folico()
Organossolos Folicos (Cap 14): horizonte O histico (drenado). Detectado via designation pattern \"^O\".
organossolo_haplico()
Organossolos Haplicos (catch-all).
organossolo_tiomorfico()
Organossolos Tiomorficos (Cap 14): materiais sulfidricos OR horizonte sulfurico em < 100 cm.
planossolo()
Planossolos (SiBCS Cap 4, p 112; conceito Cap 3, p 101-102)
planossolo_haplico()
Planossolos Haplicos (catch-all).
planossolo_natrico()
Planossolos Natricos (Cap 15): caracter sodico em \< 100 cm.
plintossolo()
Plintossolos (SiBCS Cap 4, p 113; conceito Cap 3, p 102-104)
plintossolo_argiluvico()
Plintossolos Argiluvicos (Cap 16): horizonte plintico + B textural OR carater argiluvico.
plintossolo_haplico()
Plintossolos Haplicos (catch-all).
plintossolo_petrico()
Plintossolos Petricos (Cap 16): horizonte concrecionario OR litoplintico (sem horizonte plintico precedendo).
vertissolo()
Vertissolos (SiBCS Cap 4, p 112; conceito Cap 3, p 105-106)
vertissolo_ebanico()
Vertissolos Ebanicos (Cap 17): caracter ebanico em B (cores escuras dominantes).
vertissolo_haplico()
Vertissolos Haplicos (catch-all).
vertissolo_hidromorfico()
Vertissolos Hidromorficos (Cap 17): horizonte glei OR caracter redoxico.

SiBCS 5ª ed. – Família (5º nível, Cap 18)

15 dimensões adjectivais ortogonais (grupamento textural, mineralogia, atividade da argila, óxidos, ândico, …).

familia_andico()
Familia: propriedades andicas (Cap 1, p 42-43)
familia_atividade_argila()
Familia: subgrupamento de atividade da fracao argila (Cap 18, p 287)
familia_constituicao_esqueletica()
Familia: constituicao esqueletica (Cap 1, p 48)
familia_distribuicao_cascalhos()
Familia: distribuicao de cascalhos no perfil (Cap 1, p 47-48)
familia_grupamento_textural()
Familia: grupamento textural (Cap 1, p 46)
familia_label()
Constroi label textual de Familia a partir de classify_sibcs_familia
familia_mineralogia_areia()
Familia: mineralogia da fracao areia (Cap 18, p 286)
familia_mineralogia_argila_geral()
Familia: mineralogia da fracao argila (geral, nao-Latossolos)
familia_mineralogia_argila_latossolo()
Familia: mineralogia da fracao argila para Latossolos (Cap 18, p 286-287)
familia_organossolo_espessura()
Familia: espessura > 100 cm de material organico em Organossolos (Cap 18, p 287)
familia_organossolo_lenhosidade()
Familia: lenhosidade em Organossolos (Cap 18, p 288)
familia_organossolo_material_subjacente()
Familia: material subjacente em Organossolos (Cap 18, p 287)
familia_oxidos_ferro()
Familia: teor de oxidos de ferro (Cap 1, p 42)
familia_prefixo_profundidade()
Familia: prefixo de profundidade epi-/meso-/endo- (Cap 18, p 284-285)
familia_saturacao_aluminio()
Familia: saturacao por aluminio – "alico" (Cap 18, p 285)
familia_saturacao_bases()
Familia: saturacao por bases (Cap 18, p 285)
familia_subgrupamento_textural()
Familia: subgrupamento textural (Cap 18, p 283; em validacao)
familia_tipo_horizonte_superficial()
Familia: tipo de horizonte diagnostico superficial (Cap 2)
classify_sibcs_familia()
Classifica um perfil no 5o nivel categorico do SiBCS (Familia)

USDA Soil Taxonomy 13ed – Path C (Order -> Subgroup)

Per-Order subgroup dispatchers; triggered by classify_usda(pedon).

acric_andisol_usda()
Acric Subgroup helper (Andisols Acrudoxic / Acraquoxic / Acrustoxic / etc.)
acric_oxisol_usda()
Acric Oxisol Suborder helper (Acroperox/Acrudox/Acrustox/Acraquox) Pass when oxic or kandic horizon has ECEC < 1.5 cmol/kg clay AND pH (KCl) >= 5.0.
aeric_oxisol_usda()
Aeric Subgroup (for Oxisols Aquox) – chroma-3 below epipedon Already defined for Aquods; here we add Oxisol-specific variant (any 10+ cm horizon below A with chroma >= 3 in 50%+ peds).
aeric_subgroup_usda()
Aeric Subgroup helper (Aquods) Pass when ochric epipedon is present (vs. histic/umbric/etc).
al_rich_spodic_usda()
Aluminum-rich spodic helper (Alaquods, Alorthods, KST Ch 14)
albaquult_qualifying_usda()
Albic-over-argillic qualifying (Albaquults) Pass when albic horizon overlies an argillic horizon directly.
albic_horizon_usda()
Albic horizon (USDA, KST 13ed Ch 3)
albic_subgroup_usda()
Albic Subgroup helper (Albaquultic / Albaquic)
alboll_qualifying_usda()
Albolls qualifier: mollic + albic + argillic.
alfic_subgroup_usda()
Alfic Subgroup helper (Spodosols): argillic or kandic with BS >= 35%
alfisol_qualifying_usda()
Alfisol Order qualifier Pass when argillic OR kandic horizon present + BS >= 35% in some part.
alfisol_usda()
Alfisols (USDA Cap 5): argillic/kandic/natric horizon + base saturation >= 35% at the implicit reference depth.
alic_andisol_usda()
Alic Subgroup helper (Andisols) Pass when al_kcl_cmol > 2.0 in a 10+ cm layer between 25 and 50 cm.
andic_soil_properties_usda()
Andic soil properties (USDA, KST 13ed Ch 3, p 32)
andic_subgroup_usda()
Andic Subgroup helper (USDA, KST 13ed)
andisol_qualifying_usda()
Andisol Order qualifier (USDA, KST 13ed Ch 3, p 7)
andisol_usda()
Andisols (USDA Cap 6): andic soil properties >= 60% of thickness.
anhydrous_conditions_usda()
Anhydrous conditions (USDA Soil Taxonomy, 13th edition)
anionic_subgroup_usda()
Anionic Subgroup helper (Oxisols)
annotate_wrb_from_usda()
Annotate KSSL/NASIS pedons with a derived WRB Reference Soil Group
aqualf_qualifying_usda()
Aqualf Suborder qualifier (aquic conditions in argillic Alfisol).
aquand_qualifying_usda()
Aquands Suborder qualifier (Cap 6, p 117) Pass when histic OR aquic conditions in 40-50 cm with redox features. Simplified: histic OR aquic_conditions(max_top=50).
aquandic_subgroup_usda()
Aquandic Subgroup helper (Spodosols / others) Aquic + Andic.
aquent_qualifying_usda()
Aquent Suborder qualifier (Entisol with aquic conditions <50 cm).
aquept_qualifying_usda()
Aquept Suborder qualifier
aquert_qualifying_usda()
Aquerts qualifier (Vertisols with aquic conditions) Pass when aquic_conditions within 50 cm.
aquic_conditions_usda()
Aquic conditions (USDA Soil Taxonomy, 13th edition)
aquic_subgroup_usda()
Aquic Subgroup helper (within 100 cm of mineral soil surface)
aquoll_qualifying_usda()
Aquolls qualifier (aquic conditions in mollic).
aquult_qualifying_usda()
Aquult Suborder qualifier Pass when aquic_conditions within 50 cm.
arenic_subgroup_usda()
Arenic / Grossarenic Subgroup helper (Spodosols)
argic_aridisol_usda()
Argic Aridisol helper – argillic-or-kandic in Argids/Cryids/etc.
argic_mollisol_usda()
Argic Mollisol Suborder helper – delegates argillic_within_usda.
argic_subgroup_usda()
Argic Subgroup helper (Endoaquods/Fragiaquods): argillic or kandic. Synonym of ultic at this level. Re-exported for naming clarity.
argillic_or_kandic_usda()
Argillic-or-Kandic helper (USDA, used in Spodosols Subgroups)
argillic_usda()
Argillic horizon (USDA Soil Taxonomy)
argillic_within_usda()
Argillic horizon helper (USDA, KST 13ed Ch 3)
aridisol_qualifying_usda()
Aridisol Order qualifier (USDA, KST 13ed, Ch 2) Pass when the soil has aridic SMR AND any one of: argillic, natric, kandic, calcic, petrocalcic, gypsic, petrogypsic, salic, duripan, cambic, sulfuric horizon. Also requires no other prior order match.
aridisol_usda()
Aridisols (USDA Cap 7): aridic moisture regime + ochric/anthropic + subsurface diagnostic. v0.8 simplification: detected via aridity proxies (low EC OR salic OR caracter combinations) + non-mollic surface + low OC (no organic accumulation).
benchmark_wrb_vs_usda()
Benchmark soilKey WRB predictions against a USDA-derived ground truth
calcic_horizon_usda()
Calcic horizon (USDA, delegates to WRB calcic).
calcic_subgroup_usda()
Calcic Subgroup helper – delegates to calcic_horizon_usda within max_top_cm.
classify_usda()
Classify a pedon under USDA Soil Taxonomy (13th edition)
cryoturbation_usda()
Cryoturbation (USDA Soil Taxonomy, 13th edition)
cumulic_subgroup_usda()
Cumulic Subgroup helper (Mollorthels / Umbrorthels)
densiaquept_qualifying_usda()
Densiaquept qualifying (densic contact within 100 cm)
duric_subgroup_usda()
Duric Subgroup helper (USDA Spodosols)
duripan_usda()
Duripan (USDA, KST 13ed Ch 3, pp 36-37)
dystric_subgroup_usda()
Dystric Subgroup helper (Vertisols Dystr*) Pass when BS (NH4OAc) < 50% in some part of the upper 100 cm.
entic_subgroup_usda()
Entic Subgroup helper (Spodosols)
entisol_usda()
Entisols (USDA Cap 8): catch-all for soils that don't match any other Order. Always passes.
episaturation_usda()
Episaturation helper (USDA, KST 13ed Ch 3, p 41) Pass when aquic conditions PLUS perched water (saturation type "episaturation").
eutric_inceptisol_usda()
Eutric Inceptisol Suborder helper (Eutrudepts) Pass when BS (NH4OAc) >= 60% in some part of upper 75 cm.
eutric_oxisol_usda()
Eutric Oxisol Suborder helper (Eutroperox/Eutrudox/etc.) Pass when BS (NH4OAc) >= 35% in all layers within 125 cm.
eutric_subgroup_usda()
Eutric Subgroup helper (Andisols) Pass when base_saturation (sum-of-cations) >= 50% in some part.
ferric_subgroup_usda()
Ferric Subgroup helper (Ferrudalfs) Pass when iron-rich (fe_dcb_pct >= 4%) horizon present in B.
fibric_predominant_usda()
Fibric_predominant_usda: Fibrists Suborder qualifier
fibric_subgroup_usda()
Fibric Subgroup helper (Haplohemists / Haplowassists / Sulfiwassists) Pass when fibric layers cumulative thickness >= 25 cm in control section below surface tier.
fluvaquentic_usda()
Fluvaquentic Subgroup helper (irregular OC decrease + aquic)
fluvent_qualifying_usda()
Fluvent Suborder qualifier (irregular OC decrease in 25-125 cm, OR layered alluvial designation).
fluventic_usda()
Fluventic Subgroup helper (irregular OC decrease, NO aquic req.)
folist_qualifying_usda()
Folists Suborder qualifier (KST 13ed, Ch 10, p 200)
folistic_epipedon_usda()
Folistic epipedon (USDA Soil Taxonomy, 13th edition)
folistic_subgroup_usda()
Folistic Subgroup helper (folistic_epipedon present)
fragipan_usda()
Fragipan (USDA, KST 13ed Ch 3, p 38)
frasic_qualifying_usda()
Frasiwassists Subgroup helper (Wassists)
fulvic_andisol_usda()
Fulvic Andisols: similar to melanic but with melanic_index > 1.70 (more humic acid). v0.8: detected via OC >= 6 in cumulative 30 cm but WITHOUT melanic_epipedon (since melanic requires index <= 1.70).
gelisol_usda()
Gelisols (USDA Cap 9): gelic conditions / permafrost.
glacic_layer_usda()
Glacic layer (USDA Soil Taxonomy, 13th edition)
glossic_subgroup_usda()
Glossic Subgroup helper (Glossaqualfs, Glossocryalfs, Glossudalfs) Pass when interfingering of albic materials into argillic horizon is detected. v0.8 proxy: albic + argillic + lateral chroma <= 2 on argillic boundary.
grossarenic_subgroup_usda()
Grossarenic Subgroup helper: sandy throughout, spodic >= 125 cm.
gypsic_horizon_usda()
Gypsic horizon (USDA, delegates to WRB gypsic).
gypsic_subgroup_usda()
Gypsic Subgroup helper – delegates to gypsic_horizon_usda.
halaquept_qualifying_usda()
Halic helper for Halaquepts Pass when EC >= 8 dS/m within 100 cm.
halic_subgroup_usda()
Halic Subgroup helper (Haplosaprists)
hemic_subgroup_usda()
Hemic Subgroup helper
histel_qualifying_usda()
Histels Suborder qualifier (USDA, KST 13ed)
histic_epipedon_usda()
Histic epipedon (USDA Soil Taxonomy, 13th edition)
histic_subgroup_usda()
Histic Subgroup helper (in Spodosols, Aquods) Pass when histic_epipedon_usda passes.
histosol_qualifying_usda()
Histosols Order qualifier (USDA, KST 13ed, Ch 2, p 7)
histosol_usda()
Histosols (USDA Cap 10): organic materials >= 40 cm in 0-100. Refined v0.8.4 – now uses histosol_qualifying_usda (40 cm threshold) instead of WRB histic_horizon (10 cm).
humic_andisol_usda()
Humic Andisols Subgroup helper Pass when mollic OR umbric epipedon present.
humic_inceptisol_usda()
Humic Inceptisol Suborder helper (Hum*) Pass when umbric or mollic epipedon present + thick (>= 25 cm).
humic_oxisol_usda()
Humic-Oxisol Subgroup helper Pass when cumulative organic carbon mass is >= 16 kg/m2 between surface and 100 cm (computed as SUM(OC% * bulk_density * dz)). v0.8 proxy: uses default bulk_density 1.0 g/cm3 if unavailable.
humic_spodic_usda()
Humic-spodic Suborder/GG check (>= 6% OC in 10+ cm of spodic)
humic_subgroup_usda()
Humic Subgroup helper (Humic Duricryods / Humic Placocryods) Pass when spodic horizon has >= 6% OC in 10+ cm.
humilluvic_subgroup_usda()
Humilluvic Subgroup helper (Luvihemists)
humult_qualifying_usda()
Humult Suborder qualifier (Ultisols with thick humus accumulation) Pass when 0.9% OC weighted average in 0-15 cm AND/OR organic carbon mass >= 12 kg/m2 in 0-100 cm (proxy via humic_oxisol_usda with lower threshold).
hydraquent_qualifying_usda()
Hydric Aquent helper (Hydraquents) Pass when surface 0-50 has high water content (n value high). v0.8 proxy: water_content_1500kpa >= 80% in surface.
hydric_andisol_usda()
Hydric (Andisols): 1500 kPa water retention >= 70% on undried samples throughout a 35+ cm layer within 100 cm.
hydric_subgroup_usda()
Hydric Subgroup helper (Histosols Cryofibrists / Sphagnofibrists / etc.)
inceptisol_qualifying_usda()
Inceptisol Order qualifier Pass when a cambic horizon is present (no argillic, no spodic, no mollic, etc. – enforced by prior order exclusion).
inceptisol_usda()
Inceptisols (USDA Cap 11): cambic horizon (or several alternative subsurface diagnostics: folistic/histic/mollic with thin sub, salic, sodium-affected sub).
kandic_horizon_usda()
Kandic horizon (USDA, KST 13ed Ch 3, p 45)
kandic_oxisol_usda()
Kandic Suborder helper for Oxisols (Kandiperox/Kandiudox/Kandiustox) Delegates to kandic_horizon_usda.
kanhapl_qualifying_usda()
Kanhapl qualifying helper (Kanhapludults / Kanhaplustults / etc.) Pass when kandic horizon present BUT NOT meeting Pale criteria (i.e. younger / less developed kandic).
lamellic_subgroup_usda()
Lamellic Subgroup helper (Spodosols Haplorthods)
limnic_usda()
Limnic Subgroup helper (Histels)
lithic_contact_usda()
Lithic contact within X cm of the surface (USDA Subgroup helper)
melanic_andisol_usda()
Melanic Andisols: melanic_epipedon present.
melanic_epipedon_usda()
Melanic epipedon (USDA Soil Taxonomy, 13th edition)
mollic_epipedon_usda()
Mollic epipedon (USDA Soil Taxonomy, 13th edition)
mollisol_qualifying_usda()
Mollisol Order qualifier (USDA, KST 13ed, Ch 12) Pass when mollic_epipedon AND BS (NH4OAc) >= 50% in upper 100 cm.
mollisol_usda()
Mollisols (USDA Cap 12): mollic epipedon + base saturation >= 50%.
natric_horizon_usda()
Natric horizon helper (USDA, KST 13ed Ch 3)
natric_subgroup_usda()
Natric Subgroup helper for Natraquerts.
nitric_subgroup_usda()
Nitric Subgroup helper (Anhyturbels / Anhyorthels)
normalise_febr_usda()
Normalise FEBR USDA taxon strings to USDA Soil Taxonomy Order
ochric_epipedon_usda()
Ochric epipedon (USDA Soil Taxonomy, 13th edition)
oxic_horizon_usda()
Oxic horizon (USDA, KST 13ed, Ch 3) Delegates to WRB ferralic.
oxic_usda()
Oxic horizon (USDA Soil Taxonomy)
oxisol_usda()
Oxisol (USDA Cap 13): oxic horizon, excluding profiles with an argillic horizon overlying the oxic.
oxyaquic_subgroup_usda()
Oxyaquic Subgroup helper (Spodosols, Mollisols, etc.)
pachic_subgroup_usda()
Pachic Subgroup helper (Andisols, Mollisols) Pass when mollic OR umbric epipedon is >= 50 cm thick.
pale_qualifying_usda()
Pale qualifying helper (Paleudults / Paleustults / Palexerults / Palehumults / Paleaquults)
paleargid_qualifying_usda()
Paleargid qualifying helper Pass when argillic horizon has continuous clay films AND clay >> 35% in upper 10 cm (proxy for old, well-developed argillic). v0.8 proxy: argillic + clay_pct >= 35 in upper 30 cm.
permafrost_within_usda()
Permafrost (USDA Soil Taxonomy, 13th edition)
petrocalcic_subgroup_usda()
Petrocalcic Subgroup helper (Aridisols Petrocalcids) Cemented calcic horizon with cementation_class >= "strongly".
petroferric_contact_usda()
Petroferric contact helper (USDA, KST 13ed Ch 3, p 48)
petrogypsic_horizon_usda()
Petrogypsic horizon helper (USDA)
petrogypsic_subgroup_usda()
Petrogypsic Subgroup helper – delegate to petrogypsic_horizon_usda
petronodic_subgroup_usda()
Petronodic Subgroup helper (Aridisols) Pass when 5%+ rock fragments cemented by carbonates within 100 cm. v0.8 proxy: caco3_pct >= 15 AND coarse_fragments_pct >= 5.
placic_horizon_usda()
Placic horizon (USDA, KST 13ed Ch 3, pp 47-48)
plinth_subgroup_usda()
Plinth qualifying helper (Plinth*ults) Pass when plinthite >= 5% in 50%+ of layers within 150 cm.
plinthaquox_qualifying_usda()
Plinthaquox qualifying helper (Aquox: continuous plinthite phase) Pass when plinthite >= 50% in some 10+ cm layer (continuous phase proxy).
plinthic_subgroup_usda()
Plinthic Subgroup helper (Oxisols) Pass when plinthite >= 5% in any horizon within 125 cm.
psamment_qualifying_usda()
Psamment Suborder qualifier (sandy texture: clay + 2*silt < 30 AND no clay films / argillic).
psammentic_subgroup_usda()
Psammentic Subgroup helper (Aquorthels)
quartzipsamment_qualifying_usda()
Quartzipsamment helper (Quartzipsamments: >= 95% resistant minerals)
rendoll_qualifying_usda()
Rendolls qualifier: shallow soil over carbonate parent material. Pass when CaCO3 >= 40% in subsurface AND profile depth < 100 cm to a contact.
rhodic_subgroup_usda()
Rhodic Subgroup helper (Oxisols, Mollisols, etc.) Pass when 50%+ colors have hue <= 2.5YR AND value <= 3 in B horizons 25-125 cm.
ruptic_histic_subgroup_usda()
Ruptic-Histic Subgroup helper
ruptic_subgroup_usda()
Ruptic Subgroup helper (Histoturbels / Historthels)
salic_horizon_usda()
Salic horizon (USDA, delegates to WRB salic).
salic_subgroup_usda()
Salic Subgroup helper Wraps salic_horizon_usda. Used for Salaquerts/Salitorrerts/etc.
sapric_predominant_usda()
Sapric_predominant_usda: Saprists Suborder qualifier Pass when thickness of sapric > thickness of fibric+hemic in 0-130 cm.
sapric_subgroup_usda()
Sapric Subgroup helper (Sphagnofibrists)
smr_aridic_usda()
Aridic soil moisture regime (USDA)
smr_torric_usda()
Torric soil moisture regime (USDA)
smr_udic_usda()
Udic soil moisture regime (USDA)
smr_ustic_usda()
Ustic soil moisture regime (USDA)
smr_xeric_usda()
Xeric soil moisture regime (USDA)
sodic_subgroup_usda()
Sodic Subgroup helper – delegate to natric_horizon (USDA)
soil_moisture_regime_usda()
Soil moisture regime helper (USDA, KST 13ed Ch 3, pp 50-52)
soil_temperature_regime_usda()
Soil temperature regime helper (USDA, KST 13ed Ch 3, pp 53-58)
sombric_subgroup_usda()
Sombric Subgroup helper (Oxisols Sombri-) Pass when sombric horizon (humus illuviation in tropics) is present. v0.8: detects via 'sombric' designation OR a B horizon with V<=4 + V<=4 + chroma<=2 + OC>1 in 50-150 cm.
sphagnic_usda()
Sphagnic Subgroup helper (Histels Fibristels)
spodic_andisol_usda()
Spodic-Andisols Subgroup helper Pass when albic horizon overlies a cambic OR spodic horizon, OR when a spodic horizon is present in 50%+ of the pedon.
spodic_horizon_usda()
Spodosols Order qualifier (USDA, KST 13ed)
spodic_subgroup_usda()
Spodic Subgroup helper for Psammorthels/Psammoturbels
spodosol_usda()
Spodosols (USDA Cap 14): spodic horizon (illuvial Al/Fe/OC).
str_cryic_usda()
Cryic soil temperature regime (USDA)
str_gelic_usda()
Gelic soil temperature regime (USDA)
sulfic_subgroup_usda()
Sulfic Subgroup helper (Haplowassists) Pass when sulfidic materials within 100 cm.
sulfidic_materials_usda()
Sulfidic materials helper (USDA, KST 13ed Ch 3, p 49)
sulfuric_horizon_usda()
Sulfuric horizon helper (USDA, KST 13ed Ch 3)
terric_usda()
Terric Subgroup helper (Histels)
thaptic_subgroup_usda()
Thaptic Subgroup helper (Andisols) Pass when, between 25 and 100 cm, a 10+ cm layer with OC > 3.0% and mollic colors exists, underlying lighter horizons.
thapto_humic_usda()
Thapto-Humic Subgroup helper
turbic_subgroup_usda()
Turbic Subgroup helper (Gelods) Pass when gelic materials are present within 200 cm. Implementation: cryoturbation + permafrost within 200 cm.
ultic_subgroup_usda()
Ultic Subgroup helper: argillic or kandic (any BS).
ultisol_qualifying_usda()
Ultisol Order qualifier (USDA, KST 13ed, Ch 2) Pass when argillic OR kandic horizon present + BS < 35% in some part of the upper 200 cm.
ultisol_usda()
Ultisols (USDA Cap 15): argillic/kandic horizon + base saturation < 35%.
umbric_epipedon_usda()
Umbric epipedon (USDA Soil Taxonomy, 13th edition)
umbric_subgroup_usda()
Umbric Subgroup helper (in Spodosols) Pass when umbric_epipedon_usda passes.
vermic_subgroup_usda()
Vermic Subgroup helper (Vermudolls / Vermustolls) Pass when worm_holes_pct >= 50% in some horizon (KST 13ed worm burrow criterion).
vertic_aridisol_usda()
Vertic Aridisols helper – delegates to vertic_subgroup_usda
vertic_subgroup_usda()
Vertic Subgroup helper (USDA, KST 13ed)
vertisol_qualifying_usda()
Vertisol Order qualifier (USDA, KST 13ed, Ch 2 / Ch 3 vertic horizon) Pass when a vertic horizon (clay >= 30, cracks, slickensides, LE) is present. Delegates to WRB vertic_horizon.
vertisol_usda()
Vertisols (USDA Cap 16): slickensides + cracks. Delegates to vertic_horizon.
vitrand_qualifying_usda()
Vitrands qualifier (Cap 6, pp 117-118) Pass when 1500 kPa water retention < 15% (air-dried) and < 30% (undried) throughout 60%+ of the thickness. v0.8 proxy: uses water_content_1500kpa < 15%.
vitrandic_subgroup_usda()
Vitrandic Subgroup helper (USDA, KST 13ed)
vitric_subgroup_usda()
Vitric Subgroup helper (Andisols) Pass when volcanic_glass_pct >= 30 in a 25+ cm layer within 100 cm.
wassent_qualifying_usda()
Wassent Suborder qualifier (subaqueous Entisol). Pass when site$water_table_cm_above_surface > 0 (water column permanently above the surface).
wassist_qualifying_usda()
Wassists Suborder qualifier (KST 13ed, Ch 10, p 203)
xanthic_subgroup_usda()
Xanthic Subgroup helper (Oxisols) Pass when 50%+ colors have hue >= 7.5YR AND value >= 6 in B horizons.

Module 2 – VLM extraction

Schema-validated multimodal extraction via ellmer. The VLM never classifies; every extracted value carries provenance = extracted_vlm.

vlm_provider()
Construct a VLM provider chat object
MockVLMProvider
Mock VLM provider for testing
extract_horizons_from_pdf()
Extract horizons from a soil description PDF
extract_munsell_from_photo()
Extract Munsell color from a profile photo
extract_site_from_fieldsheet()
Extract site metadata from a field-sheet image

Module 3 – Spatial prior

SoilGrids + Embrapa raster. Used as a sanity-check; never overrides the deterministic key.

spatial_prior()
Spatial prior over RSGs (or Orders) at a pedon's location
spatial_prior_soilgrids()
SoilGrids spatial prior
spatial_prior_embrapa()
Embrapa national soil-class spatial prior (Brazil only)
prior_consistency_check()
Check consistency between a deterministic RSG assignment and a spatial prior

Module 4 – OSSL spectroscopy

Vis-NIR / MIR gap-fill. Predicted attributes carry provenance = predicted_spectra, which downgrades the evidence grade from A to B.

preprocess_spectra()
Pre-process Vis-NIR or MIR spectra
predict_ossl_mbl()
Memory-based learning prediction against the OSSL library
predict_ossl_plsr_local()
Local PLSR prediction against the OSSL library
predict_ossl_pretrained()
Pre-trained OSSL prediction
fill_from_spectra()
Fill missing soil attributes from spectra via OSSL
pi_to_confidence()
Map a 95% prediction interval to a [0, 1] confidence score

Reporting

Render a complete pedologist-facing report from one or more ClassificationResult objects.

report()
Render a soilKey classification report
report_html()
Render a soilKey classification report as self-contained HTML
report_pdf()
Render a soilKey classification report as PDF
report_to_qgis()
Export a classification result + pedon to a QGIS GeoPackage

Layperson on-ramp

Zero-code Shiny GUI plus auto-detect helpers that remove the friction non-coders hit on a fresh install.

run_demo()
Launch the soilKey Shiny demo (one-screen GUI)
auto_set_proj_env()
Auto-detect PROJ_LIB and GDAL_DATA directories
vlm_pick_provider()
Pick the best available VLM provider
ollama_is_running()
Is the local Ollama HTTP API reachable?

Real-data benchmarks (v0.9.15+)

Loaders for the three external validation sets soilKey is benchmarked against in the v1.0 methods paper, plus FEBR / BDsolos label-normalisation helpers (v0.9.16).

load_kssl_pedons()
Load NCSS / KSSL pedons with reference USDA Soil Taxonomy classification
load_kssl_pedons_gpkg()
Load KSSL / NCSS pedons from the ncss_labdata GeoPackage
load_kssl_pedons_with_nasis()
Load KSSL pedons enriched with NASIS morphology
load_lucas_pedons()
Load EU-LUCAS / ESDB pedons with reference WRB classification
load_embrapa_pedons()
Load Embrapa dadosolos pedons with reference SiBCS classification
load_febr_pedons()
Load the Embrapa FEBR superconjunto into a list of PedonRecords
normalise_febr_sibcs()
Canonicalise FEBR SiBCS names to match soilKey rule outputs.
normalise_febr_wrb()
Normalise FEBR WRB taxon strings to RSG-only
normalise_febr_usda()
Normalise FEBR USDA taxon strings to USDA Soil Taxonomy Order
benchmark_run_classification()
Run a benchmark across one of the loaded pedon lists

Canonical fixtures

One-call constructors for the 31 canonical fixtures (one per WRB RSG, plus auxiliaries) used in the test suite.

make_acrisol_canonical()
Build the canonical Acrisol fixture
make_alisol_canonical()
Build the canonical Alisol fixture
make_andosol_canonical()
Build the canonical Andosol fixture
make_anthrosol_canonical()
Build the canonical Anthrosol fixture
make_arenosol_canonical()
Build the canonical Arenosol fixture
make_argissolo_canonical()
Perfil canonico de Argissolo (SiBCS 5a ed., Cap 5)
make_calcisol_canonical()
Build the canonical Calcisol fixture
make_cambisol_canonical()
Build the canonical Cambisol fixture
make_cambissolo_canonical()
Perfil canonico de Cambissolo (SiBCS 5a ed., Cap 6)
make_chernossolo_canonical()
Perfil canonico de Chernossolo (SiBCS 5a ed., Cap 7)
make_chernozem_canonical()
Build the canonical Chernozem fixture
make_cryosol_canonical()
Build the canonical Cryosol fixture
make_durisol_canonical()
Build the canonical Durisol fixture
make_espodossolo_canonical()
Perfil canonico de Espodossolo (SiBCS 5a ed., Cap 8)
make_ferralsol_canonical()
Build the canonical Ferralsol fixture
make_fluvisol_canonical()
Build the canonical Fluvisol fixture
make_gleissolo_canonical()
Perfil canonico de Gleissolo (SiBCS 5a ed., Cap 9)
make_gleysol_canonical()
Build the canonical Gleysol fixture
make_gypsisol_canonical()
Build the canonical Gypsisol fixture
make_histosol_canonical()
Build the canonical Histosol fixture
make_kastanozem_canonical()
Build the canonical Kastanozem fixture
make_latossolo_canonical()
Perfil canonico de Latossolo (SiBCS 5a ed., Cap 10)
make_leptosol_canonical()
Build the canonical Leptosol fixture
make_lixisol_canonical()
Build the canonical Lixisol fixture
make_luvisol_canonical()
Build the canonical Luvisol fixture
make_luvissolo_canonical()
Perfil canonico de Luvissolo (SiBCS 5a ed., Cap 11)
make_neossolo_canonical()
Perfil canonico de Neossolo Litolico (SiBCS 5a ed., Cap 12)
make_nitisol_canonical()
Build the canonical Nitisol fixture
make_nitossolo_canonical()
Perfil canonico de Nitossolo Vermelho (SiBCS 5a ed., Cap 13)
make_organossolo_canonical()
Perfil canonico de Organossolo (SiBCS 5a ed., Cap 14)
make_phaeozem_canonical()
Build the canonical Phaeozem fixture
make_planosol_canonical()
Build the canonical Planosol fixture
make_planossolo_canonical()
Perfil canonico de Planossolo (SiBCS 5a ed., Cap 15)
make_plinthosol_canonical()
Build the canonical Plinthosol fixture
make_plintossolo_canonical()
Perfil canonico de Plintossolo (SiBCS 5a ed., Cap 16)
make_podzol_canonical()
Build the canonical Podzol fixture
make_retisol_canonical()
Build the canonical Retisol fixture
make_solonchak_canonical()
Build the canonical Solonchak fixture
make_solonetz_canonical()
Build the canonical Solonetz fixture
make_stagnosol_canonical()
Build the canonical Stagnosol fixture
make_technosol_canonical()
Build the canonical Technosol fixture
make_umbrisol_canonical()
Build the canonical Umbrisol fixture
make_vertisol_canonical()
Build the canonical Vertisol fixture
make_vertissolo_canonical()
Perfil canonico de Vertissolo (SiBCS 5a ed., Cap 17)

Helpers and miscellaneous

run_classify_app()
Launch the soilKey interactive classification Shiny app
run_demo()
Launch the soilKey Shiny demo (one-screen GUI)
run_sibcs_grande_grupo()
Resolve o grande grupo (3o nivel) de um pedon classificado em uma subordem SiBCS
run_sibcs_key()
Roda a chave SiBCS 5a edicao sobre um pedon
run_sibcs_subgrupo()
Resolve o subgrupo (4o nivel) de um pedon classificado em um Grande Grupo SiBCS
run_sibcs_subordem()
Resolve a subordem de um pedon ja classificado em uma ordem SiBCS
run_taxa_list()
Iterate a flat taxa list and evaluate tests in canonical order
run_taxonomic_key()
Run a taxonomic key (system-agnostic engine)
run_usda_great_group()
Run the USDA Great Group key for a given Suborder
run_usda_key()
Run the USDA Soil Taxonomy Order key over a pedon
run_usda_subgroup()
Run the USDA Subgroup key for a given Great Group
run_usda_suborder()
Run the USDA Suborder key for a given Order
run_wrb_key()
Run the WRB 2022 key over a pedon
test_abrupt_textural_change()
Test for an abrupt textural change between adjacent horizons
test_al_saturation_above()
Test that aluminium saturation is at or above a threshold
test_al_saturation_below()
Test that aluminium saturation is below a threshold
test_andic_alfe()
Test the andic Al/Fe oxalate criterion: (al_ox + 0.5*fe_ox) >= 2.0%
test_artefacts_concentration()
Test that artefacts_pct >= threshold within the upper max_top_cm
test_bs_above()
Test that base saturation is at or above a threshold
test_bs_below()
Test that base saturation is below a threshold
test_bulk_density_below()
Test that bulk density is at or below a threshold
test_caco3_concentration()
Test for CaCO3 concentration above threshold (per layer)
test_carbonates_present()
Test for any layer with caco3_pct above a (low) threshold
test_caso4_concentration()
Test for CaSO4 (gypsum) concentration above threshold (per layer)
test_cec_per_clay()
Test CEC (1M NH4OAc, pH 7) per kg clay <= threshold
test_cec_per_clay_above()
Test that CEC per kg clay is at or above a threshold
test_chernic_color()
Test for chroma <= 2 (moist) within the upper part of the profile
test_clay_above()
Test that clay_pct is at or above a threshold
test_clay_increase_argic()
Test the argic / argillic clay-increase criterion
test_coarse_texture_throughout()
Test for coarse texture throughout the upper part of the profile
test_designation_pattern()
Test that a horizon designation matches a regex pattern
test_duripan_concentration()
Test that duripan_pct >= threshold (Si-cemented nodules)
test_ec_concentration()
Test for electrical conductivity above threshold (per layer)
test_ecec_per_clay()
Test effective CEC (sum of bases + Al) per kg clay <= threshold
test_esp_above()
Test exchangeable sodium percentage above threshold
test_fe_dcb_above()
Test for high free-iron content (fe_dcb_pct >= threshold)
test_ferralic_texture()
Ferralic texture: sandy loam or finer (same predicate as argic)
test_ferralic_thickness()
Ferralic minimum thickness >= 30 cm (WRB 2022)
test_fluvic_stratification()
Test for fluvic stratification: irregular OC pattern + texture variability across consecutive horizons
test_gleyic_features()
Test for gleyic redoximorphic features within top 50 cm
test_minimum_thickness()
Test minimum horizon thickness
test_mollic_base_saturation()
Mollic base-saturation test (NH4OAc, pH 7, default >= 50%)
test_mollic_color()
Mollic Munsell color test (WRB 2022)
test_mollic_organic_carbon()
Mollic organic-carbon test (WRB 2022, default >= 0.6%)
test_mollic_structure()
Mollic structure test (WRB 2022)
test_mollic_thickness()
Mollic thickness test (default >= 20 cm in v0.1)
test_oc_above()
Test that organic carbon is at or above a threshold
test_ph_below()
Test that ph_h2o is at or below a threshold
test_plinthite_concentration()
Test for plinthite concentration above threshold (per layer)
test_salic_product()
Test the salic horizon EC * thickness product (WRB 2022)
test_slickensides_present()
Test for slickensides at or above a presence level
test_spodic_aluminum_iron()
Test the spodic Al/Fe oxalate criterion: (al_ox + 0.5*fe_ox) >= threshold
test_stagnic_pattern()
Test for stagnic redox features (perched water signature)
test_texture_argic()
Test sandy-loam-or-finer texture (used by argic, ferralic)
test_top_at_or_above()
Test that a candidate layer starts at or above a top_cm threshold
compute_ki()
Ki (silica:alumina molar) – SiBCS Cap 1, p 32
compute_kr()
Kr (silica:sesquioxidos molar) – SiBCS Cap 1, p 32
contato_litico()
Contato litico (SiBCS Cap 1, p 40): rocha continua dura. Reuso de continuous_rock via designacao R / Cr.
contato_litico_fragmentario()
Contato litico fragmentario (SiBCS Cap 1, p 40): rocha fragmentada.
load_afsp_pedons()
Load Africa Soil Profiles (AfSP) v1.2 as PedonRecord objects
load_afsp_sample()
Load the bundled AfSP stratified sample (v0.9.77)
load_bdsolos_csv()
Load a BDsolos CSV export as a list of PedonRecord objects
load_embrapa_pedons()
Load Embrapa dadosolos pedons with reference SiBCS classification
load_febr_pedons()
Load the Embrapa FEBR superconjunto into a list of PedonRecords
load_kssl_nasis_sample()
Load the bundled KSSL + NASIS morphological-enriched sample (v0.9.75)
load_kssl_pedons()
Load NCSS / KSSL pedons with reference USDA Soil Taxonomy classification
load_kssl_pedons_gpkg()
Load KSSL / NCSS pedons from the ncss_labdata GeoPackage
load_kssl_pedons_with_nasis()
Load KSSL pedons enriched with NASIS morphology
load_kssl_sample()
Load the bundled KSSL/NCSS lab-data sample (v0.9.74)
load_lucas_pedons()
Load EU-LUCAS / ESDB pedons with reference WRB classification
load_lucas_soil_2018()
Load the LUCAS Soil 2018 Topsoil release as a list of PedonRecord objects
load_redape_pedons()
Load curated soil profiles from the Embrapa Redape GeoTab dataset
load_rules()
Load a soilKey rule set (YAML)
load_wosis_sample()
Load the bundled WoSIS South-America sample
load_wosis_stratified_sample()
Load the bundled WoSIS stratified RSG-balanced sample (v0.9.73)
save_ossl_models() load_ossl_models()
Save / load trained OSSL-backed PLSR models
format_wrb_name()
Format a WRB 2022 soil name with qualifiers
validate_pedon_json()
Validate a PedonRecord against the JSON schema
fibric_predominant_usda()
Fibric_predominant_usda: Fibrists Suborder qualifier
sapric_predominant_usda()
Sapric_predominant_usda: Saprists Suborder qualifier Pass when thickness of sapric > thickness of fibric+hemic in 0-130 cm.
albic_horizon_usda()
Albic horizon (USDA, KST 13ed Ch 3)
calcic_horizon_usda()
Calcic horizon (USDA, delegates to WRB calcic).
gypsic_horizon_usda()
Gypsic horizon (USDA, delegates to WRB gypsic).
kandic_horizon_usda()
Kandic horizon (USDA, KST 13ed Ch 3, p 45)
natric_horizon_usda()
Natric horizon helper (USDA, KST 13ed Ch 3)
oxic_horizon_usda()
Oxic horizon (USDA, KST 13ed, Ch 3) Delegates to WRB ferralic.
petrogypsic_horizon_usda()
Petrogypsic horizon helper (USDA)
placic_horizon_usda()
Placic horizon (USDA, KST 13ed Ch 3, pp 47-48)
salic_horizon_usda()
Salic horizon (USDA, delegates to WRB salic).
spodic_horizon_usda()
Spodosols Order qualifier (USDA, KST 13ed)
sulfuric_horizon_usda()
Sulfuric horizon helper (USDA, KST 13ed Ch 3)
leptic_features()
Leptic features (WRB 2022)
planic_features()
Planic features (WRB 2022)
technic_features()
Technic features (WRB 2022)
andic_properties()
Andic properties (WRB 2022)
gleyic_properties()
Gleyic properties (WRB 2022)
protocalcic_properties()
Protocalcic properties (WRB 2022 Ch 3.2.8)
protogypsic_properties()
Protogypsic properties (WRB 2022 Ch 3.2.9): visible secondary gypsum \>= 1% but below the gypsic gate.
retic_properties()
Retic properties (WRB 2022)
sideralic_properties()
Sideralic properties (WRB 2022 Ch 3.2.13)
stagnic_properties()
Stagnic properties (WRB 2022)
takyric_properties()
Takyric properties (WRB 2022 Ch 3.2.15) – per-pedon test wrapping test_takyric_surface.
vertic_properties()
Vertic properties (WRB 2022)
vitric_properties()
Vitric properties (WRB 2022 Ch 3.2.16)
yermic_properties()
Yermic properties (WRB 2022 Ch 3.2.17) – per-pedon test wrapping test_yermic_surface.
`%||%`
Default-value-for-NULL operator
arenic_texture()
Arenic texture (WRB 2022)
cerosidade()
Cerosidade quantitativa (SiBCS Cap 13, p 207; Cap 1)
combine_priors()
Combine multiple spatial priors via weighted geometric mean
cryic_conditions()
Cryic conditions (WRB 2022)
distrofico()
Solo distrofico (SiBCS Cap 1, p 30)
duripa()
Duripa (SiBCS Cap 2, p 74; v0.7)
eutrofico()
Solo eutrofico (SiBCS Cap 1, p 30)
evaluate_rsg_tests()
Evaluate the test block of a single RSG
fibrico()
Material organico fibrico (SiBCS Cap 14)
fragipa()
Fragipa (SiBCS Cap 2, p 73-74; v0.7)
hemico()
Material organico hemico (SiBCS Cap 14)
prompt_path()
Path to a packaged prompt template
schema_path()
Path to a packaged JSON schema file
default_model()
Default VLM model per provider
oxic_usda()
Oxic horizon (USDA Soil Taxonomy)
vertic_horizon()
Vertic horizon (WRB 2022 Ch 3.1)
protovertic()
Protovertic horizon (WRB 2022 Ch 3.1)
panpaic()
Panpaic horizon (WRB 2022 Ch 3.1)
tsitelic()
Tsitelic horizon (WRB 2022 Ch 3.1)
limonic()
Limonic horizon (WRB 2022 Ch 3.1)
make_synthetic_pedon_with_spectra()
Build a synthetic PedonRecord with attached spectra (testing aid)
mudanca_textural_abrupta()
Mudanca textural abrupta (SiBCS Cap 1, p 30-31)
ossl_library_template()
Canonical schema for an `ossl_library` object
clear_ossl_cache()
Clear the soilKey OSSL cache
download_ossl_subset()
Download an OSSL subset and return an `ossl_library` artefact
download_ossl_subset_with_labels()
Download an OSSL subset and attach WRB / SiBCS / USDA labels
familia_mineralogia_argila_geral()
Familia: mineralogia da fracao argila (geral, nao-Latossolos)
ossl_demo_sa
Synthetic OSSL South America demo subset
planosol()
Planosol RSG gate (WRB 2022 Ch 4, p 107)
posterior_classify()
Bayesian posterior classifier (optional)
resolve_wrb_qualifiers()
Resolve WRB 2022 qualifiers for a Reference Soil Group
saprico()
Material organico saprico (SiBCS Cap 14)
soilgrids_usda_lut()
SoilGrids -> USDA Soil Order lookup table (placeholder)
soilgrids_wrb_lut()
SoilGrids -> WRB code lookup table
subgrupo_planossolo_espessos()
Subgrupo "espessos" de Planossolos (B planico profundo, > 100 cm)
subgrupo_planossolo_mesicos()
Subgrupo "mesicos" de Planossolos (B planico topo em [50, 100] cm)
subgrupo_plintossolo_endico_concrecionario()
Subgrupo "endico" de Plintossolos Concrecionarios (topo de horizonte concrecionario >= 40 cm)
subgrupo_plintossolo_endico_litoplintico()
Subgrupo "endico" de Plintossolos Litoplinticos (topo de horizonte litoplintico >= 40 cm)
subgrupo_plintossolo_espessos()
Subgrupo "espessos" de Plintossolos (horizonte plintico topo > 100 cm)

RSG-level gates and other materials

ferralsol()
Ferralsol RSG gate (WRB 2022 Ch 4, p 110)
gleysol()
Gleysol RSG gate (WRB 2022 Ch 4, p 103)
vertisol()
Vertisol RSG gate (WRB 2022 Ch 4, p 101)
acrisol()
Acrisol RSG diagnostic (WRB 2022)
alisol()
Alisol RSG diagnostic (WRB 2022)
lixisol()
Lixisol RSG diagnostic (WRB 2022)
luvisol()
Luvisol RSG diagnostic (WRB 2022)
chernozem()
Chernozem RSG diagnostic (WRB 2022)
chernozem_strict()
Chernozem RSG gate (strengthened, WRB 2022 Ch 4, p 111)
kastanozem()
Kastanozem RSG diagnostic (WRB 2022)
kastanozem_strict()
Kastanozem RSG gate (strengthened, WRB 2022 Ch 4, p 112)
phaeozem()
Phaeozem RSG diagnostic (WRB 2022)
andosol()
Andosol RSG gate (WRB 2022 Ch 4, p 104)
calcaric_material()
Calcaric material (WRB 2022 Ch 3.3.3): \>= 2% CaCO3 throughout the fine earth, primary carbonates from the parent material.
dolomitic_material()
Dolomitic material (WRB 2022 Ch 3.3.5): \>= 2% Mg-rich carbonate, CaCO3/MgCO3 < 1.5. v0.3.3: detects via designation pattern kdo|do|magn as proxy when ratio data missing.
hypersulfidic_material()
Hypersulfidic material (WRB 2022 Ch 3.3.8): \>= 0.01% inorganic sulfidic S, pH \>= 4, capable of severe acidification on aerobic incubation.
hyposulfidic_material()
Hyposulfidic material (WRB 2022 Ch 3.3.9): same S and pH as hypersulfidic but does NOT consist of hypersulfidic (i.e. not capable of severe acidification). v0.3.3: returns sulfidic layers that don't meet hypersulfidic.
solimovic_material()
Solimovic material (WRB 2022 Ch 3.3.17): hetero genous mass-movement material on slopes / footslopes (formerly "colluvic"). v0.3.3: detects via rock_origin == "colluvial" OR layer_origin == "solimovic".
technic_hard_material()
Technic hard material (WRB 2022 Ch 3.3.18): consolidated human-made material (asphalt, concrete, worked stones).
tephric_material()
Tephric material (WRB 2022 Ch 3.3.19): \>= 30% volcanic glass in 0.02-2 mm fraction AND no andic / vitric properties.

Engine selection and dispatch (v0.9.65)

Per-pedon engine-selection heuristic, engine-aware dispatch (soilKey vs aqp), and side-by-side comparators.

pick_engine()
Choose the best diagnostic engine for a single pedon
pick_engine_batch()
Per-pedon batch engine recommendation
classify_with_engine_heuristic()
Classify a pedon with the engine chosen by `pick_engine()`
compare_engines()
Side-by-side comparison of soilKey vs aqp diagnostic engines
argic_aqp()
Argic / argillic horizon via aqp::getArgillicBounds()
cambic_aqp()
Cambic horizon via aqp::getCambicBounds()

Canonical references (v0.9.62 – v0.9.65)

Vendored WRB 2022 / KST 13 / Soil Taxonomy criteria and shared lookup helpers for pkg vs vendored data sources.

canonical_reference()
Load a canonical reference dataset from soilKey or SoilTaxonomy
wrb2022_canonical()
WRB 2022 canonical reference (parsed IUSS Working Group WRB 2022)
kst13_canonical()
Keys to Soil Taxonomy 13th edition canonical reference
kst13_codes()
Load the canonical KST 13ed code -> taxon-name lookup table
kst13_criteria()
Load the canonical KST 13ed criteria for a single taxon code
st_features_canonical()
USDA Soil Taxonomy diagnostic features canonical table
clear_kst13_cache()
Clear the in-memory KST13 cache

SmartSolos / Embrapa AgroAPI integration (v0.9.54)

Cross-validation against Embrapa’s PROLOG SiBCS classifier.

classify_via_smartsolos_api()
Classify a PedonRecord via Embrapa's SmartSolosExpert REST API
compare_smartsolos()
Cross-validate the local SiBCS classifier against the SmartSolosExpert API

BDsolos loader and benchmarks (v0.9.55 – v0.9.60)

benchmark_bdsolos()
Benchmark soilKey classifiers against BDsolos national reference labels
download_bdsolos()
Download the BDsolos consulta-publica CSV (experimental, requires chromote)
inspect_bdsolos_csv()
Diagnostic inspection of a BDsolos CSV before loading

Argic strong-films audit (v0.9.83)

Empirical audit of the SiBCS Cap 18 latossolic-vs-argic precedence rule. Extracts the strong-clay-films decision into a reusable helper so the rule can be validated on any benchmark dataset (BDsolos RJ: 0.9% Latossolo false-positive exclusion rate, 37.6% Argissolo correct retention rate).

argic_with_strong_clay_films()
Test whether a pedon's argic horizon has strong clay films
audit_argic_strong_films()
Audit the strong-clay-films exclusion across a list of pedons

Lazy-fetch benchmark caches (v0.9.94)

The four large benchmark caches (AfSP, KSSL, KSSL+NASIS, WoSIS stratified, ~1 MB each) are no longer bundled in the CRAN source tarball. They are downloaded on demand from a versioned GitHub Release into the user cache (~/Library/Application Support/…/soilKey/data on macOS) on first call.

download_extdata_cache()
Download one or more soilKey lazy-fetch caches from GitHub Release

FEBR loader (v0.9.57)

UFSM Free Brazilian Repository readers (~249 datasets, ~36k horizons).

read_febr_pedons()
Load FEBR datasets as a list of PedonRecord objects
febr_index_munsell()
Curated index of FEBR datasets that carry Munsell colors

Redape curated GeoTab dataset (v0.9.71)

Embrapa Redape repository (DOI 10.48432/PYKKA7) – 96 hand- reviewed Brazilian soil profiles, suitable as a gold-standard benchmark for SiBCS classification.

download_redape_dataset()
Download the curated Redape GeoTab dataset (Vaz et al 2023)
load_redape_pedons()
Load curated soil profiles from the Embrapa Redape GeoTab dataset
benchmark_redape()
Benchmark soilKey SiBCS predictions against the Redape gold standard

WoSIS stratified WRB benchmark (v0.9.73)

ISRIC WoSIS bundled cache, 130 profiles balanced across 26 WRB Reference Soil Groups (5 per RSG). The first WRB benchmark with profile depth (analog of Redape but for WRB), pulled via RSG-filtered GraphQL queries.

load_wosis_stratified_sample()
Load the bundled WoSIS stratified RSG-balanced sample (v0.9.73)

USDA Soil Taxonomy <-> WRB cross-walk (v0.9.74)

KSSL/NCSS Lab Data Mart benchmark via IUSS WRB 2022 Annex 6 USDA Order/Suborder -> WRB RSG correlation. Provides the richest WRB benchmark to date (CEC 65%, Ca/Mg/K/Na 40-56% vs WoSIS-stratified ~30%).

usda_to_wrb_rsg()
USDA Soil Taxonomy <-> WRB Reference Soil Group correlation table
annotate_wrb_from_usda()
Annotate KSSL/NASIS pedons with a derived WRB Reference Soil Group
benchmark_wrb_vs_usda()
Benchmark soilKey WRB predictions against a USDA-derived ground truth
load_kssl_sample()
Load the bundled KSSL/NCSS lab-data sample (v0.9.74)

KSSL + NASIS morphological-enriched sample (v0.9.75)

Joins KSSL lab gpkg with NASIS Morphological sqlite – adds Munsell colours, structure, clay films, slickensides (Munsell 0% -> 89.6% vs lab-only).

load_kssl_nasis_sample()
Load the bundled KSSL + NASIS morphological-enriched sample (v0.9.75)

Africa Soil Profiles (AfSP) WRB benchmark (v0.9.77)

ISRIC AfSP v1.2 (Leenaars et al. 2014) – 18,533 georeferenced African profiles, ~7000 with WRB 2006 RSG. Loader + bundled 120-pedon stratified sample (5 per RSG x 24 RSGs). Achieves 28% Order accuracy with strong Cambisol/Histosol (100%) and Ferralsol/Solonetz (80%) recall.

load_afsp_pedons()
Load Africa Soil Profiles (AfSP) v1.2 as PedonRecord objects
load_afsp_sample()
Load the bundled AfSP stratified sample (v0.9.77)
benchmark_afsp()
Benchmark soilKey WRB predictions against AfSP ground truth
wrb06_code_to_rsg()
WRB 2006 RSG code -> 2022 RSG name

LUCAS Soil 2018 (v0.9.49 – v0.9.50)

benchmark_lucas_2018()
Run the LUCAS Soil 2018 / ESDB WRB benchmark
attach_lucas_spectra()
Attach LUCAS 2018 Vis-NIR spectra to a list of PedonRecord objects

Unified benchmark and robustness (v0.9.61)

benchmark_unified()
Unified cross-dataset benchmark across SiBCS / WRB / USDA
benchmark_performance()
Run the soilKey performance benchmark
batch_robustness()
Batch robustness across many pedons
classification_robustness()
Robustness of classification under input perturbation

OSSL spectra: PLS training and prediction

Build PLS regressors from OSSL Vis-NIR/SWIR spectra and predict lab properties / Munsell / XYZ / generic targets.

train_pls_from_ossl()
Train pre-trained PLSR models from an OSSL library
predict_from_spectra()
Predict soil properties from spectra
predict_lab_from_spectra()
Predict CIE Lab from Vis-NIR reflectance spectra
predict_munsell_from_spectra()
Predict Munsell hue / value / chroma from Vis-NIR reflectance spectra
predict_xyz_from_spectra()
Predict CIE XYZ tristimulus values from Vis-NIR reflectance spectra
predict(<soilKey_pls_model>)
Predict from a soilKey_pls_model
print(<soilKey_pls_model>)
Print method for soilKey_pls_model
fill_munsell_from_spectra()
Fill missing Munsell colors on a PedonRecord from Vis-NIR spectra

Spatial / database lookups

ESDB attributes, SoilGrids and MapBiomas-Solos pulls.

available_esdb_attributes()
List ESDB Raster Library attributes available at a given root
lookup_esdb()
Look up an ESDB raster value at WGS84 coordinates
lookup_soilgrids()
Look up a SoilGrids 250m soil property at WGS84 coordinates
lookup_mapbiomas_solos()
Look up a MapBiomas Solos raster value at WGS84 coordinates

GlobalSoilMap depth harmonisation and aqp helpers

GSM_DEPTHS
Default GlobalSoilMap depth intervals (cm)
harmonize_to_gsm()
Harmonise pedons to GlobalSoilMap depth intervals
pedon_to_spc()
Convert a soilKey PedonRecord to an aqp SoilProfileCollection
pedon_json_schema()
JSON Schema for a soilKey PedonRecord
texture_class_from_pct()
NRCS texture-class shorthand from clay / silt / sand percent