Skip to contents

Keys a PedonRecord to the trunks and divisions of the Russian soil classification, in the version of its Field Guide (Polevoi opredelitel' pochv Rossii, Dokuchaev Soil Science Institute, 2008). Experimental: this release keys the five trunks (key 2.2: the organogenic, synlithogenic, postlithogenic and weakly developed soils, and trunk E, not a soil: rock outcrops, technogenic surface formations, or a deposit that is not humified over a buried soil) and the 27 divisions (key 2.3), and the types of every division (the profile formulas of chapter 4: CA to CJ in v0.9.338, CK to CT in v0.9.339, trunks A, B and D in v0.9.342). The chemozems CU have no types: their name is built from the pollutants and the soil they were (v0.9.342). The subtypes of every division's list follow the type (v0.9.345).

Usage

classify_kidpr2008(
  pedon,
  rules = NULL,
  on_missing = c("warn", "silent", "error"),
  gapfill = FALSE,
  subtypes = TRUE,
  species = subtypes
)

Arguments

pedon

A PedonRecord.

rules

Optional pre-loaded rule set (load_rules("kidpr2008")).

on_missing

One of "warn" (default), "silent", "error".

gapfill

Opt-in within-pedon gap-fill, as in classify_usda.

subtypes

Name the subtypes after the type (default TRUE); FALSE stops at the type.

species

Name the species of chapter 5.1 after the subtypes (default: as subtypes).

Value

A ClassificationResult with system_id "kidpr2008", the deepest class assigned in name (the type with its subtypes, else the division, else the trunk), the trunk in rsg_or_order, the trunk, division, type, subtypes and species in levels (with name_native, the Russian name), the key trace, the notes on a profile that is not a soil or whose combination of horizons the Field Guide does not provide for in warnings, and provisional_because (classes before the assigned one that could not be decided).

Details

The keys read the diagnostic horizons of the profile: the Russian notation where the profile is written in it (declared with site$designation_system = "kidpr", or recognised by an index only it writes: AY, EL, BEL, BHF, BCA, PU, TUR ...), otherwise the key to horizons 2.1 run on the recorded data (see identify_horizons). From them the keys read whether a horizon is present, whether it starts the profile (at the surface, or under a deposit of 40 cm or less), whether it lies directly over another, whether the profile consists of one horizon only, the depth of hard rock, a deposit at the surface (TPO and the deposits the key to horizons finds on the data included), the peat body of trunk A (more than 50 cm, the agro-peat horizons included) and the thickness of a turbated horizon; of the site, a river floodplain on modern alluvium (landform, landform_element, layer_origin, rock_origin, parent_material, the alluvial mark of the notation; a terrace is no floodplain) and the contaminated horizon X (contamination_hazard). The ochre horizon BAN is formed in volcanic ash, so it makes the volcanic soils alone. With several organic and humus horizons at the surface the thickest is the diagnostic one (p. 37), for step 5 of the key to trunks as for the divisions; FAO and WRB transitions (AB, BC, E/B) in which the key on the data finds no diagnostic horizon are transitions, as those of the Russian notation; a missing depth leaves the step that needs it undecided.

The keys are branching trees; soilKey flattens them into ordered lists in which each gate is the conjunction of the conditions of the book's path to the class, and repairs only the gaps the book's own types prove; the other combinations the key leaves without an exit are "not provided by the Field Guide of 2008": the trunk is assigned and the division left unassigned, with a note. Names: an English gloss in name, the Russian of the book in levels$name_native. The readings where the text is silent are listed in system.file("rules", "kidpr2008", "readings.yaml", package = "soilKey").

The type is named by the formula of its profile: the profile is matched against every formula of its division (see kidpr2008_types), closed on the horizons the division's formulas write, most specific first and agro before natural. A profile no formula matches keeps its division, the type unassigned, with the nearest formulas in the warnings and in the trace (phase types_nearest).

A chemozem (CU, an X horizon: pollutants of the extremely hazardous category within 30 cm) is named, as p. 134 asks, by the kind of pollution and the original soil: the pollutants of the layers of the X horizon, and the soil the profile keys to with the X masked (the X overlays and the contamination records removed), down to its type. The type level is soilKey's "[CU:<code of the original soil>]", named "Chemozems polluted with Cu, Ni, Co; original soil: Sod-podzolic"; the original soil keyed is in the trace (phase chemozem), and an original soil left undecided makes the name provisional.

The subtypes (v0.9.345): each division has one list of subtypes in chapter 4 (26 lists, 558 entries; the chemozems have none), each the index of a genetic feature of section 3.2, read by the feature tests (the recorded data first, the Russian notation where they say nothing). The soil is named by its type and every subtype of the list that passes, in the order of the list, comma-separated and in the plural as printed ("Podzolistye gleevatye, yazykovatye"): the subtypes are the rows of level "subtype" of levels (code: soilKey's key of the entry; name the English gloss, name_native the Russian), the full name in English in name and in Russian in qualifiers$name_native. When every entry is FALSE the soil is of the typical subtype, soilKey's "[tipichnye]" ("[typical]", code NA); when some are undecided the name is provisional, the undecided entries in provisional_because ("subtype:<key>") and in a warning. A feature the formula of the type already writes (the g of the gley types, the BF of CB05, the permafrost sign of the cryozems ...) is not named again, and a sentence of 3.2 that names a single type restricts its subtype to it. Each entry, with its evidence, is in the trace (phase subtype). A soil whose type is unassigned gets no subtypes. The lists are in system.file("rules", "kidpr2008", "subtypes.yaml", package = "soilKey").

The species (v0.9.347): the twelve tables of chapter 5.1, the classes of the thickness of the humus, peat and agro horizons, of the depth and place of gleying, of the lower boundary of the bleached horizon, of the layer over the solonetzic horizon, of the depth of the carbonates and of the soluble salts and, in the organogenic trunk, of the decomposition, the botanical composition (peat_botanical_composition) and the thickness of the peat. Each table that applies to the type is read, and its class follows the subtypes in the name, in the order of the tables ("Dernovo-podzolistye [tipichnye], srednemoshchnye, glubokoelyuvial'nye"; the bleached species in the prefix form of p. 136): rows of level "species" of levels (code "<table>:<class>"), qualifiers$species and species_native. A depth not recorded, an undecided layer at the edge of a horizon, or a horizon that reaches the bottom of the description when a deeper class is possible, leaves the table undecided: it is not named, it is listed in qualifiers$species_undecided and in a note, and the name stays as it is. The tables are in system.file("rules", "kidpr2008", "species.yaml", package = "soilKey"); the varieties and ranks (5.2, 5.3) are not keyed.

The 1977 analogue (v0.9.347): when the type is assigned, the rows of the correlation table of chapter 6 that stand for it are added as a note (a line in warnings) and as qualifiers$analogue_1977 (the 2004 name and formula, the page, whether the soils were distinguished in 1977 and the units of 1977 with their level and extent), never changing the classification; where the table says the soils were not distinguished or has no row for the type, the note says so. The table is in system.file("rules", "kidpr2008", "correlation_1977.yaml", package = "soilKey").

References

Polevoi opredelitel' pochv Rossii [Field Guide of Russian Soils] (2008). Dokuchaev Soil Science Institute, Moscow.

Examples

res <- classify_kidpr2008(make_kidpr2008_example("CA"), on_missing = "silent")
res$name
#> [1] "Sod-podzolic [typical], medium-thick, deep-eluvial"
res$levels
#>       level               code                         name
#> 1    trunks                  C         Postlithogenic soils
#> 2 divisions                 CA Texture-differentiated soils
#> 3     types             [CA04]                 Sod-podzolic
#> 4   subtype               <NA>                    [typical]
#> 5   species humus_light:medium                 medium-thick
#> 6   species      bleached:deep                 deep-eluvial
#>                          name_native
#> 1               Постлитогенные почвы
#> 2 Текстурно-дифференцированные почвы
#> 3                Дерново-подзолистые
#> 4                         [типичные]
#> 5                       среднемощные
#> 6                 глубокоэлювиальные