The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
soilKey faz classificação automática de perfis de solo
nos três sistemas canônicos: WRB 2022 (4ª edição),
SiBCS 5ª ed. (Embrapa, 2018) e USDA Soil
Taxonomy 13ª ed. (USDA-NRCS, 2022). A chave taxonômica em si é
implementada como código R determinístico orientado por regras YAML
versionadas; extração via vision-language model, priors
espaciais (SoilGrids) e predição de atributos via OSSL ficam ao lado da
chave como módulos separados, nunca dentro dela.
Esta vinheta é uma adaptação para PT-BR de
v01_getting_started. O conteúdo cobre o mesmo material;
preferimos PT-BR aqui porque a comunidade brasileira de pedologia é
grande e quase toda a literatura SiBCS é escrita em português.
Se você só quer ver soilKey funcionando ponta-a-ponta em
um perfil real, sem escrever código R, há dois caminhos.
Faça upload de um CSV (uma linha por horizonte) ou edite manualmente, clique em Classify, e leia os nomes WRB / SiBCS / USDA junto com o key trace determinístico e a evidence grade.
library(soilKey)
pedon <- make_ferralsol_canonical() # Latossolo Vermelho canônico
classify_wrb2022(pedon, on_missing = "silent")$name
#> [1] "Geric Ferric Rhodic Chromic Ferralsol (Clayic, Humic, Dystric, Ochric, Rubic)"
classify_sibcs(pedon)$name
#> [1] "Latossolos Vermelhos Distroficos tipicos"
classify_usda(pedon, on_missing = "silent")$name
#> [1] "Rhodic Hapludox"É o pacote inteiro: PedonRecord entra, classificação
sai. As seções seguintes mostram como construir o seu próprio pedon e
como os módulos laterais (VLM, espacial, espectral) se conectam.
PedonRecord é a estrutura central de dados. Ele
agrupa:
horizon_column_spec() para a lista completa de
colunas)source ∈
{measured, predicted_spectra,
extracted_vlm, inferred_prior,
user_assumed}meu_pedon <- PedonRecord$new(
site = list(
id = "exemplo-001",
lat = -22.5,
lon = -43.7,
country = "BR",
parent_material = "gnaisse"
),
horizons = data.frame(
top_cm = c(0, 15, 65, 130),
bottom_cm = c(15, 65, 130, 200),
designation = c("A", "AB", "Bw1", "Bw2"),
munsell_hue_moist = rep("2.5YR", 4),
munsell_value_moist = c(3, 3, 4, 4),
munsell_chroma_moist = c(4, 6, 6, 6),
clay_pct = c(50, 55, 60, 60),
silt_pct = c(15, 10, 8, 8),
sand_pct = c(35, 35, 32, 32),
cec_cmol = c(8, 5.5, 5.0, 4.8),
bs_pct = c(24, 14, 13, 13),
ph_h2o = c(4.8, 4.7, 4.8, 4.9),
oc_pct = c(2.0, 0.6, 0.3, 0.2)
)
)Ao chamar qualquer classify_*() em cima desse pedon,
soilKey lê os dados, anda a chave taxonômica, e retorna um objeto
ClassificationResult com:
Latossolos Vermelhos Distroficos tipicos na SiBCS, por
exemplo)A interface é simétrica: um PedonRecord entra, um
ClassificationResult sai. As três funções aceitam um
argumento on_missing que controla o que fazer quando
atributos críticos não estão presentes:
"warn" (padrão): avisa, classifica com base no que
tem"silent": classifica silenciosamente"error": para com errores_wrb <- classify_wrb2022(meu_pedon, on_missing = "silent")
res_sibcs <- classify_sibcs(meu_pedon, include_familia = TRUE)
res_usda <- classify_usda(meu_pedon, on_missing = "silent")
res_wrb$name
#> [1] "Chromic Ferralsol (Clayic, Dystric, Ochric, Rubic)"
res_sibcs$name
#> [1] "Latossolos Vermelhos Distroficos tipicos, argilosa, moderado"
res_usda$name
#> [1] "Typic Hapludox"todos <- classify_all(meu_pedon, on_missing = "silent")
todos$summary
#> wrb
#> 1 Chromic Ferralsol (Clayic, Dystric, Ochric, Rubic)
#> sibcs usda
#> 1 Latossolos Vermelhos Distroficos tipicos, argilosa, moderado Typic Hapludoxclassify_all() retorna uma lista nomeada com
wrb, sibcs, usda (cada uma um
ClassificationResult completo) e um resumo
summary em data.frame de uma linha — útil para
tabular muitos pedons de uma vez só.
O trace da chave é o histórico determinístico da decisão. Cada RSG / Ordem / Sistema testado aparece com o resultado de cada diagnóstico envolvido:
res_wrb$trace
#> $HS
#> $HS$code
#> [1] "HS"
#>
#> $HS$name
#> [1] "Histosols"
#>
#> $HS$passed
#> [1] FALSE
#>
#> $HS$evidence
#> $HS$evidence[[1]]
#> $HS$evidence[[1]]$test_name
#> [1] "histic_horizon"
#>
#> $HS$evidence[[1]]$passed
#> [1] FALSE
#>
#> $HS$evidence[[1]]$layers
#> integer(0)
#>
#> $HS$evidence[[1]]$missing
#> character(0)
#>
#> $HS$evidence[[1]]$evidence
#> $HS$evidence[[1]]$evidence$contiguous
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$passed
#> [1] FALSE
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$layers
#> integer(0)
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$missing
#> character(0)
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`1`
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`1`$idx
#> [1] 1
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`1`$oc_pct
#> [1] 2
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`1`$threshold
#> [1] 12
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`1`$passed
#> [1] FALSE
#>
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`2`
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`2`$idx
#> [1] 2
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`2`$oc_pct
#> [1] 0.6
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`2`$threshold
#> [1] 12
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`2`$passed
#> [1] FALSE
#>
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`3`
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`3`$idx
#> [1] 3
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`3`$oc_pct
#> [1] 0.3
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`3`$threshold
#> [1] 12
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`3`$passed
#> [1] FALSE
#>
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`4`
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`4`$idx
#> [1] 4
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`4`$oc_pct
#> [1] 0.2
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`4`$threshold
#> [1] 12
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$details$`4`$passed
#> [1] FALSE
#>
#>
#>
#> $HS$evidence[[1]]$evidence$contiguous$organic_carbon$notes
#> [1] NA
#>
#>
#> $HS$evidence[[1]]$evidence$contiguous$at_surface
#> $HS$evidence[[1]]$evidence$contiguous$at_surface$passed
#> [1] FALSE
#>
#> $HS$evidence[[1]]$evidence$contiguous$at_surface$layers
#> integer(0)
#>
#> $HS$evidence[[1]]$evidence$contiguous$at_surface$missing
#> character(0)
#>
#> $HS$evidence[[1]]$evidence$contiguous$at_surface$details
#> list()
#>
#> $HS$evidence[[1]]$evidence$contiguous$at_surface$notes
#> [1] NA
#>
#>
#> $HS$evidence[[1]]$evidence$contiguous$thickness
#> $HS$evidence[[1]]$evidence$contiguous$thickness$passed
#> [1] FALSE
#>
#> $HS$evidence[[1]]$evidence$contiguous$thickness$layers
#> integer(0)
#>
#> $HS$evidence[[1]]$evidence$contiguous$thickness$missing
#> character(0)
#>
#> $HS$evidence[[1]]$evidence$contiguous$thickness$details
#> NULL
#>
#> $HS$evidence[[1]]$evidence$contiguous$thickness$notes
#> [1] NA
#>
#>
#>
#> $HS$evidence[[1]]$evidence$cumulative
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$passed
#> [1] FALSE
#>
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$layers
#> integer(0)
#>
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$missing
#> character(0)
#>
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$details
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$details$cumulative_thickness_cm
#> [1] 0
#>
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$details$min_thickness_cm
#> [1] 40
#>
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$details$max_depth_cm
#> [1] 80
#>
#>
#> $HS$evidence[[1]]$evidence$cumulative$cumulative_oc$notes
#> [1] NA
#>
#>
#>
#>
#> $HS$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 3, Histic horizon"
#>
#> $HS$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $HS$missing
#> character(0)
#>
#> $HS$notes
#> NULL
#>
#>
#> $AT
#> $AT$code
#> [1] "AT"
#>
#> $AT$name
#> [1] "Anthrosols"
#>
#> $AT$passed
#> [1] FALSE
#>
#> $AT$evidence
#> $AT$evidence[[1]]
#> $AT$evidence[[1]]$test_name
#> [1] "anthric_horizons"
#>
#> $AT$evidence[[1]]$passed
#> [1] FALSE
#>
#> $AT$evidence[[1]]$layers
#> integer(0)
#>
#> $AT$evidence[[1]]$missing
#> character(0)
#>
#> $AT$evidence[[1]]$evidence
#> $AT$evidence[[1]]$evidence$designation
#> $AT$evidence[[1]]$evidence$designation$anthric_designation
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$passed
#> [1] FALSE
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$layers
#> integer(0)
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$missing
#> character(0)
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`1`
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`1`$idx
#> [1] 1
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`1`$designation
#> [1] "A"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`1`$pattern
#> [1] "hortic|irragric|plaggic|pretic|terric"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`1`$passed
#> [1] FALSE
#>
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`2`
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`2`$idx
#> [1] 2
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`2`$designation
#> [1] "AB"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`2`$pattern
#> [1] "hortic|irragric|plaggic|pretic|terric"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`2`$passed
#> [1] FALSE
#>
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`3`
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`3`$idx
#> [1] 3
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`3`$designation
#> [1] "Bw1"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`3`$pattern
#> [1] "hortic|irragric|plaggic|pretic|terric"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`3`$passed
#> [1] FALSE
#>
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`4`
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`4`$idx
#> [1] 4
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`4`$designation
#> [1] "Bw2"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`4`$pattern
#> [1] "hortic|irragric|plaggic|pretic|terric"
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$details$`4`$passed
#> [1] FALSE
#>
#>
#>
#> $AT$evidence[[1]]$evidence$designation$anthric_designation$notes
#> [1] NA
#>
#>
#>
#> $AT$evidence[[1]]$evidence$property_based
#> $AT$evidence[[1]]$evidence$property_based$anthric_props
#> $AT$evidence[[1]]$evidence$property_based$anthric_props$passed
#> [1] FALSE
#>
#> $AT$evidence[[1]]$evidence$property_based$anthric_props$layers
#> integer(0)
#>
#> $AT$evidence[[1]]$evidence$property_based$anthric_props$missing
#> character(0)
#>
#> $AT$evidence[[1]]$evidence$property_based$anthric_props$details
#> NULL
#>
#> $AT$evidence[[1]]$evidence$property_based$anthric_props$notes
#> [1] NA
#>
#>
#>
#>
#> $AT$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 5, Anthrosols"
#>
#> $AT$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $AT$missing
#> character(0)
#>
#> $AT$notes
#> NULL
#>
#>
#> $TC
#> $TC$code
#> [1] "TC"
#>
#> $TC$name
#> [1] "Technosols"
#>
#> $TC$passed
#> [1] NA
#>
#> $TC$evidence
#> $TC$evidence[[1]]
#> $TC$evidence[[1]]$test_name
#> [1] "technic_features"
#>
#> $TC$evidence[[1]]$passed
#> [1] NA
#>
#> $TC$evidence[[1]]$layers
#> integer(0)
#>
#> $TC$evidence[[1]]$missing
#> [1] "artefacts_pct" "geomembrane_present"
#> [3] "technic_hardmaterial_pct"
#>
#> $TC$evidence[[1]]$evidence
#> $TC$evidence[[1]]$evidence$artefacts
#> $TC$evidence[[1]]$evidence$artefacts$artefacts
#> $TC$evidence[[1]]$evidence$artefacts$artefacts$passed
#> [1] NA
#>
#> $TC$evidence[[1]]$evidence$artefacts$artefacts$layers
#> integer(0)
#>
#> $TC$evidence[[1]]$evidence$artefacts$artefacts$missing
#> [1] "artefacts_pct"
#>
#> $TC$evidence[[1]]$evidence$artefacts$artefacts$details
#> list()
#>
#> $TC$evidence[[1]]$evidence$artefacts$artefacts$notes
#> [1] NA
#>
#>
#>
#> $TC$evidence[[1]]$evidence$geomembrane
#> $TC$evidence[[1]]$evidence$geomembrane$geomembrane
#> $TC$evidence[[1]]$evidence$geomembrane$geomembrane$passed
#> [1] NA
#>
#> $TC$evidence[[1]]$evidence$geomembrane$geomembrane$layers
#> integer(0)
#>
#> $TC$evidence[[1]]$evidence$geomembrane$geomembrane$missing
#> [1] "geomembrane_present"
#>
#> $TC$evidence[[1]]$evidence$geomembrane$geomembrane$details
#> NULL
#>
#> $TC$evidence[[1]]$evidence$geomembrane$geomembrane$notes
#> [1] NA
#>
#>
#>
#> $TC$evidence[[1]]$evidence$hardmaterial
#> $TC$evidence[[1]]$evidence$hardmaterial$hardmaterial
#> $TC$evidence[[1]]$evidence$hardmaterial$hardmaterial$passed
#> [1] NA
#>
#> $TC$evidence[[1]]$evidence$hardmaterial$hardmaterial$layers
#> integer(0)
#>
#> $TC$evidence[[1]]$evidence$hardmaterial$hardmaterial$missing
#> [1] "technic_hardmaterial_pct"
#>
#> $TC$evidence[[1]]$evidence$hardmaterial$hardmaterial$details
#> NULL
#>
#> $TC$evidence[[1]]$evidence$hardmaterial$hardmaterial$notes
#> [1] NA
#>
#>
#>
#>
#> $TC$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 5, Technosols"
#>
#> $TC$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $TC$missing
#> [1] "artefacts_pct" "geomembrane_present"
#> [3] "technic_hardmaterial_pct"
#>
#> $TC$notes
#> NULL
#>
#>
#> $CR
#> $CR$code
#> [1] "CR"
#>
#> $CR$name
#> [1] "Cryosols"
#>
#> $CR$passed
#> [1] NA
#>
#> $CR$evidence
#> $CR$evidence[[1]]
#> $CR$evidence[[1]]$test_name
#> [1] "cryic_conditions"
#>
#> $CR$evidence[[1]]$passed
#> [1] NA
#>
#> $CR$evidence[[1]]$layers
#> integer(0)
#>
#> $CR$evidence[[1]]$missing
#> [1] "permafrost_temp_C"
#>
#> $CR$evidence[[1]]$evidence
#> $CR$evidence[[1]]$evidence$permafrost_temp
#> $CR$evidence[[1]]$evidence$permafrost_temp$permafrost
#> $CR$evidence[[1]]$evidence$permafrost_temp$permafrost$passed
#> [1] NA
#>
#> $CR$evidence[[1]]$evidence$permafrost_temp$permafrost$layers
#> integer(0)
#>
#> $CR$evidence[[1]]$evidence$permafrost_temp$permafrost$missing
#> [1] "permafrost_temp_C"
#>
#> $CR$evidence[[1]]$evidence$permafrost_temp$permafrost$details
#> NULL
#>
#> $CR$evidence[[1]]$evidence$permafrost_temp$permafrost$notes
#> [1] NA
#>
#>
#>
#> $CR$evidence[[1]]$evidence$designation
#> $CR$evidence[[1]]$evidence$designation$frozen_designation
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$passed
#> [1] FALSE
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$layers
#> integer(0)
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$missing
#> character(0)
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`1`
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`1`$idx
#> [1] 1
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`1`$designation
#> [1] "A"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`1`$pattern
#> [1] "^[A-Z][a-z]*f($|[0-9])|^Cf|perma"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`1`$passed
#> [1] FALSE
#>
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`2`
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`2`$idx
#> [1] 2
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`2`$designation
#> [1] "AB"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`2`$pattern
#> [1] "^[A-Z][a-z]*f($|[0-9])|^Cf|perma"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`2`$passed
#> [1] FALSE
#>
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`3`
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`3`$idx
#> [1] 3
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`3`$designation
#> [1] "Bw1"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`3`$pattern
#> [1] "^[A-Z][a-z]*f($|[0-9])|^Cf|perma"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`3`$passed
#> [1] FALSE
#>
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`4`
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`4`$idx
#> [1] 4
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`4`$designation
#> [1] "Bw2"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`4`$pattern
#> [1] "^[A-Z][a-z]*f($|[0-9])|^Cf|perma"
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$details$`4`$passed
#> [1] FALSE
#>
#>
#>
#> $CR$evidence[[1]]$evidence$designation$frozen_designation$notes
#> [1] NA
#>
#>
#> $CR$evidence[[1]]$evidence$designation$within_depth
#> $CR$evidence[[1]]$evidence$designation$within_depth$passed
#> [1] FALSE
#>
#> $CR$evidence[[1]]$evidence$designation$within_depth$layers
#> integer(0)
#>
#> $CR$evidence[[1]]$evidence$designation$within_depth$missing
#> character(0)
#>
#> $CR$evidence[[1]]$evidence$designation$within_depth$details
#> list()
#>
#> $CR$evidence[[1]]$evidence$designation$within_depth$notes
#> [1] NA
#>
#>
#>
#>
#> $CR$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 5, Cryosols"
#>
#> $CR$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $CR$missing
#> [1] "permafrost_temp_C"
#>
#> $CR$notes
#> NULL
#>
#>
#> $LP
#> $LP$code
#> [1] "LP"
#>
#> $LP$name
#> [1] "Leptosols"
#>
#> $LP$passed
#> [1] NA
#>
#> $LP$evidence
#> $LP$evidence[[1]]
#> $LP$evidence[[1]]$test_name
#> [1] "leptic_features"
#>
#> $LP$evidence[[1]]$passed
#> [1] NA
#>
#> $LP$evidence[[1]]$layers
#> integer(0)
#>
#> $LP$evidence[[1]]$missing
#> [1] "coarse_fragments_pct"
#>
#> $LP$evidence[[1]]$evidence
#> $LP$evidence[[1]]$evidence$designation
#> $LP$evidence[[1]]$evidence$designation$rock_designation
#> $LP$evidence[[1]]$evidence$designation$rock_designation$passed
#> [1] FALSE
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$layers
#> integer(0)
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$missing
#> character(0)
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`1`
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`1`$idx
#> [1] 1
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`1`$designation
#> [1] "A"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`1`$pattern
#> [1] "^R$|^Cr|^R[a-z]"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`1`$passed
#> [1] FALSE
#>
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`2`
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`2`$idx
#> [1] 2
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`2`$designation
#> [1] "AB"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`2`$pattern
#> [1] "^R$|^Cr|^R[a-z]"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`2`$passed
#> [1] FALSE
#>
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`3`
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`3`$idx
#> [1] 3
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`3`$designation
#> [1] "Bw1"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`3`$pattern
#> [1] "^R$|^Cr|^R[a-z]"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`3`$passed
#> [1] FALSE
#>
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`4`
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`4`$idx
#> [1] 4
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`4`$designation
#> [1] "Bw2"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`4`$pattern
#> [1] "^R$|^Cr|^R[a-z]"
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$details$`4`$passed
#> [1] FALSE
#>
#>
#>
#> $LP$evidence[[1]]$evidence$designation$rock_designation$notes
#> [1] NA
#>
#>
#> $LP$evidence[[1]]$evidence$designation$shallow
#> $LP$evidence[[1]]$evidence$designation$shallow$passed
#> [1] FALSE
#>
#> $LP$evidence[[1]]$evidence$designation$shallow$layers
#> integer(0)
#>
#> $LP$evidence[[1]]$evidence$designation$shallow$missing
#> character(0)
#>
#> $LP$evidence[[1]]$evidence$designation$shallow$details
#> list()
#>
#> $LP$evidence[[1]]$evidence$designation$shallow$notes
#> [1] NA
#>
#>
#>
#> $LP$evidence[[1]]$evidence$coarse_fragments
#> $LP$evidence[[1]]$evidence$coarse_fragments$coarse_at_surface
#> $LP$evidence[[1]]$evidence$coarse_fragments$coarse_at_surface$passed
#> [1] NA
#>
#> $LP$evidence[[1]]$evidence$coarse_fragments$coarse_at_surface$layers
#> integer(0)
#>
#> $LP$evidence[[1]]$evidence$coarse_fragments$coarse_at_surface$missing
#> [1] "coarse_fragments_pct"
#>
#> $LP$evidence[[1]]$evidence$coarse_fragments$coarse_at_surface$details
#> NULL
#>
#> $LP$evidence[[1]]$evidence$coarse_fragments$coarse_at_surface$notes
#> [1] NA
#>
#>
#>
#> $LP$evidence[[1]]$evidence$engine
#> [1] "soilkey"
#>
#>
#> $LP$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 5, Leptosols "
#>
#> $LP$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $LP$missing
#> [1] "coarse_fragments_pct"
#>
#> $LP$notes
#> NULL
#>
#>
#> $SN
#> $SN$code
#> [1] "SN"
#>
#> $SN$name
#> [1] "Solonetz"
#>
#> $SN$passed
#> [1] FALSE
#>
#> $SN$evidence
#> $SN$evidence[[1]]
#> $SN$evidence[[1]]$test_name
#> [1] "natric_horizon"
#>
#> $SN$evidence[[1]]$passed
#> [1] FALSE
#>
#> $SN$evidence[[1]]$layers
#> integer(0)
#>
#> $SN$evidence[[1]]$missing
#> character(0)
#>
#> $SN$evidence[[1]]$evidence
#> $SN$evidence[[1]]$evidence$argic
#>
#> ── DiagnosticResult: argic
#> Status: failed
#> Sub-tests:
#> [fail] clay_increase
#> [fail] thickness
#> [fail] texture
#> [PASS] not_albeluvic
#> Reference: IUSS Working Group WRB (2022), Chapter 3, Argic horizon
#> Notes: No layer satisfied the clay-increase precondition
#>
#>
#> $SN$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 3, Natric horizon"
#>
#> $SN$evidence[[1]]$notes
#> [1] "Profile lacks an argic horizon -- natric inapplicable"
#>
#>
#>
#> $SN$missing
#> character(0)
#>
#> $SN$notes
#> NULL
#>
#>
#> $VR
#> $VR$code
#> [1] "VR"
#>
#> $VR$name
#> [1] "Vertisols"
#>
#> $VR$passed
#> [1] NA
#>
#> $VR$evidence
#> $VR$evidence[[1]]
#> $VR$evidence[[1]]$test_name
#> [1] "vertisol"
#>
#> $VR$evidence[[1]]$passed
#> [1] NA
#>
#> $VR$evidence[[1]]$layers
#> integer(0)
#>
#> $VR$evidence[[1]]$missing
#> [1] "slickensides"
#>
#> $VR$evidence[[1]]$evidence
#> $VR$evidence[[1]]$evidence$vertic_horizon
#>
#> ── DiagnosticResult: vertic_horizon
#> Status: NA (insufficient data)
#> Missing attributes (1): slickensides
#> Sub-tests:
#> [PASS] clay
#> [ NA ] slickensides
#> [fail] cracks
#> [fail] thickness
#> [ NA ] cole_le_path
#> [ NA ] designation_inference
#> [ NA ] chroma_clay_inference
#> Reference: IUSS Working Group WRB (2022), Chapter 3.1, Vertic horizon; KST 13ed
#> Ch 16 LE alternative
#>
#>
#> $VR$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 4, Vertisols (p. 101)"
#>
#> $VR$evidence[[1]]$notes
#> [1] "Failed/NA because vertic_horizon test did not pass"
#>
#>
#>
#> $VR$missing
#> [1] "slickensides"
#>
#> $VR$notes
#> NULL
#>
#>
#> $SC
#> $SC$code
#> [1] "SC"
#>
#> $SC$name
#> [1] "Solonchaks"
#>
#> $SC$passed
#> [1] NA
#>
#> $SC$evidence
#> $SC$evidence[[1]]
#> $SC$evidence[[1]]$test_name
#> [1] "salic"
#>
#> $SC$evidence[[1]]$passed
#> [1] NA
#>
#> $SC$evidence[[1]]$layers
#> integer(0)
#>
#> $SC$evidence[[1]]$missing
#> [1] "ec_dS_m"
#>
#> $SC$evidence[[1]]$evidence
#> $SC$evidence[[1]]$evidence$ec
#> $SC$evidence[[1]]$evidence$ec$passed
#> [1] NA
#>
#> $SC$evidence[[1]]$evidence$ec$layers
#> integer(0)
#>
#> $SC$evidence[[1]]$evidence$ec$missing
#> [1] "ec_dS_m"
#>
#> $SC$evidence[[1]]$evidence$ec$details
#> list()
#>
#> $SC$evidence[[1]]$evidence$ec$notes
#> [1] NA
#>
#>
#> $SC$evidence[[1]]$evidence$thickness
#> $SC$evidence[[1]]$evidence$thickness$passed
#> [1] FALSE
#>
#> $SC$evidence[[1]]$evidence$thickness$layers
#> integer(0)
#>
#> $SC$evidence[[1]]$evidence$thickness$missing
#> character(0)
#>
#> $SC$evidence[[1]]$evidence$thickness$details
#> NULL
#>
#> $SC$evidence[[1]]$evidence$thickness$notes
#> [1] NA
#>
#>
#> $SC$evidence[[1]]$evidence$product
#> $SC$evidence[[1]]$evidence$product$passed
#> [1] FALSE
#>
#> $SC$evidence[[1]]$evidence$product$layers
#> integer(0)
#>
#> $SC$evidence[[1]]$evidence$product$missing
#> character(0)
#>
#> $SC$evidence[[1]]$evidence$product$details
#> list()
#>
#> $SC$evidence[[1]]$evidence$product$notes
#> [1] NA
#>
#>
#>
#> $SC$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 3.1.20, Salic horizon (p. 49)"
#>
#> $SC$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $SC$missing
#> [1] "ec_dS_m"
#>
#> $SC$notes
#> NULL
#>
#>
#> $GL
#> $GL$code
#> [1] "GL"
#>
#> $GL$name
#> [1] "Gleysols"
#>
#> $GL$passed
#> [1] FALSE
#>
#> $GL$evidence
#> $GL$evidence[[1]]
#> $GL$evidence[[1]]$test_name
#> [1] "gleysol"
#>
#> $GL$evidence[[1]]$passed
#> [1] FALSE
#>
#> $GL$evidence[[1]]$layers
#> integer(0)
#>
#> $GL$evidence[[1]]$missing
#> [1] "redoximorphic_features_pct"
#>
#> $GL$evidence[[1]]$evidence
#> $GL$evidence[[1]]$evidence$gleyic_properties
#>
#> ── DiagnosticResult: gleyic_properties
#> Status: NA (insufficient data)
#> Missing attributes (1): redoximorphic_features_pct
#> Sub-tests:
#> [fail] gleyic_features
#> [ NA ] stagnic_pattern
#> [ NA ] designation_inference
#> Reference: IUSS Working Group WRB (2022), Chapter 3, Gleyic properties
#>
#> $GL$evidence[[1]]$evidence$reducing_conditions
#>
#> ── DiagnosticResult: reducing_conditions
#> Status: failed
#> Sub-tests:
#> [fail] redox
#> Reference: IUSS Working Group WRB (2022), Chapter 3.2.10
#>
#> $GL$evidence[[1]]$evidence$path1_layers
#> integer(0)
#>
#> $GL$evidence[[1]]$evidence$path1_ok
#> [1] FALSE
#>
#> $GL$evidence[[1]]$evidence$path3_ok
#> [1] FALSE
#>
#>
#> $GL$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 4, Gleysols (p. 103)"
#>
#> $GL$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $GL$missing
#> [1] "redoximorphic_features_pct"
#>
#> $GL$notes
#> NULL
#>
#>
#> $AN
#> $AN$code
#> [1] "AN"
#>
#> $AN$name
#> [1] "Andosols"
#>
#> $AN$passed
#> [1] FALSE
#>
#> $AN$evidence
#> $AN$evidence[[1]]
#> $AN$evidence[[1]]$test_name
#> [1] "andosol"
#>
#> $AN$evidence[[1]]$passed
#> [1] FALSE
#>
#> $AN$evidence[[1]]$layers
#> integer(0)
#>
#> $AN$evidence[[1]]$missing
#> [1] "al_ox_pct" "fe_ox_pct"
#> [3] "phosphate_retention_pct" "volcanic_glass_pct"
#>
#> $AN$evidence[[1]]$evidence
#> $AN$evidence[[1]]$evidence$andic
#>
#> ── DiagnosticResult: andic_properties
#> Status: failed
#> Missing attributes (3): al_ox_pct, fe_ox_pct, phosphate_retention_pct
#> Sub-tests:
#> [ NA ] oc_bd_proxy
#> Reference: IUSS Working Group WRB (2022), Chapter 3, Andic properties
#>
#> $AN$evidence[[1]]$evidence$vitric
#>
#> ── DiagnosticResult: vitric_properties
#> Status: NA (insufficient data)
#> Missing attributes (1): volcanic_glass_pct
#> Sub-tests:
#> [ NA ] volcanic_glass
#> [fail] alfe_ox
#> [fail] phosphate_ret
#> Reference: IUSS Working Group WRB (2022), Chapter 3.2.16
#>
#>
#> $AN$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 4, Andosols (p. 104)"
#>
#> $AN$evidence[[1]]$notes
#> [1] "No andic or vitric layers"
#>
#>
#>
#> $AN$missing
#> [1] "al_ox_pct" "fe_ox_pct"
#> [3] "phosphate_retention_pct" "volcanic_glass_pct"
#>
#> $AN$notes
#> NULL
#>
#>
#> $PZ
#> $PZ$code
#> [1] "PZ"
#>
#> $PZ$name
#> [1] "Podzols"
#>
#> $PZ$passed
#> [1] NA
#>
#> $PZ$evidence
#> $PZ$evidence[[1]]
#> $PZ$evidence[[1]]$test_name
#> [1] "spodic"
#>
#> $PZ$evidence[[1]]$passed
#> [1] NA
#>
#> $PZ$evidence[[1]]$layers
#> integer(0)
#>
#> $PZ$evidence[[1]]$missing
#> [1] "al_ox_pct" "fe_ox_pct"
#>
#> $PZ$evidence[[1]]$evidence
#> $PZ$evidence[[1]]$evidence$alfe_oxalate
#> $PZ$evidence[[1]]$evidence$alfe_oxalate$passed
#> [1] NA
#>
#> $PZ$evidence[[1]]$evidence$alfe_oxalate$layers
#> integer(0)
#>
#> $PZ$evidence[[1]]$evidence$alfe_oxalate$missing
#> [1] "al_ox_pct" "fe_ox_pct"
#>
#> $PZ$evidence[[1]]$evidence$alfe_oxalate$details
#> list()
#>
#> $PZ$evidence[[1]]$evidence$alfe_oxalate$notes
#> [1] NA
#>
#>
#> $PZ$evidence[[1]]$evidence$ph
#> $PZ$evidence[[1]]$evidence$ph$passed
#> [1] FALSE
#>
#> $PZ$evidence[[1]]$evidence$ph$layers
#> integer(0)
#>
#> $PZ$evidence[[1]]$evidence$ph$missing
#> character(0)
#>
#> $PZ$evidence[[1]]$evidence$ph$details
#> list()
#>
#> $PZ$evidence[[1]]$evidence$ph$notes
#> [1] NA
#>
#>
#> $PZ$evidence[[1]]$evidence$illuvial_signature
#> $PZ$evidence[[1]]$evidence$illuvial_signature$passed
#> [1] FALSE
#>
#> $PZ$evidence[[1]]$evidence$illuvial_signature$layers
#> integer(0)
#>
#> $PZ$evidence[[1]]$evidence$illuvial_signature$missing
#> character(0)
#>
#> $PZ$evidence[[1]]$evidence$illuvial_signature$details
#> $PZ$evidence[[1]]$evidence$illuvial_signature$details$designation_match
#> integer(0)
#>
#> $PZ$evidence[[1]]$evidence$illuvial_signature$details$albic_above_match
#> integer(0)
#>
#>
#> $PZ$evidence[[1]]$evidence$illuvial_signature$notes
#> [1] NA
#>
#>
#> $PZ$evidence[[1]]$evidence$thickness
#> $PZ$evidence[[1]]$evidence$thickness$passed
#> [1] FALSE
#>
#> $PZ$evidence[[1]]$evidence$thickness$layers
#> integer(0)
#>
#> $PZ$evidence[[1]]$evidence$thickness$missing
#> character(0)
#>
#> $PZ$evidence[[1]]$evidence$thickness$details
#> NULL
#>
#> $PZ$evidence[[1]]$evidence$thickness$notes
#> [1] NA
#>
#>
#>
#> $PZ$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 3, Spodic horizon"
#>
#> $PZ$evidence[[1]]$notes
#> [1] "v0.9.19: + morphological inference path when Al/Fe oxalate missing"
#>
#>
#>
#> $PZ$missing
#> [1] "al_ox_pct" "fe_ox_pct"
#>
#> $PZ$notes
#> NULL
#>
#>
#> $PT
#> $PT$code
#> [1] "PT"
#>
#> $PT$name
#> [1] "Plinthosols"
#>
#> $PT$passed
#> [1] NA
#>
#> $PT$evidence
#> $PT$evidence[[1]]
#> $PT$evidence[[1]]$test_name
#> [1] "plinthic"
#>
#> $PT$evidence[[1]]$passed
#> [1] NA
#>
#> $PT$evidence[[1]]$layers
#> integer(0)
#>
#> $PT$evidence[[1]]$missing
#> [1] "plinthite_pct"
#>
#> $PT$evidence[[1]]$evidence
#> $PT$evidence[[1]]$evidence$plinthite
#> $PT$evidence[[1]]$evidence$plinthite$passed
#> [1] NA
#>
#> $PT$evidence[[1]]$evidence$plinthite$layers
#> integer(0)
#>
#> $PT$evidence[[1]]$evidence$plinthite$missing
#> [1] "plinthite_pct"
#>
#> $PT$evidence[[1]]$evidence$plinthite$details
#> list()
#>
#> $PT$evidence[[1]]$evidence$plinthite$notes
#> [1] NA
#>
#>
#> $PT$evidence[[1]]$evidence$thickness
#> $PT$evidence[[1]]$evidence$thickness$passed
#> [1] FALSE
#>
#> $PT$evidence[[1]]$evidence$thickness$layers
#> integer(0)
#>
#> $PT$evidence[[1]]$evidence$thickness$missing
#> character(0)
#>
#> $PT$evidence[[1]]$evidence$thickness$details
#> NULL
#>
#> $PT$evidence[[1]]$evidence$thickness$notes
#> [1] NA
#>
#>
#> $PT$evidence[[1]]$evidence$designation_inference
#> $PT$evidence[[1]]$evidence$designation_inference$passed
#> [1] NA
#>
#> $PT$evidence[[1]]$evidence$designation_inference$layers
#> integer(0)
#>
#> $PT$evidence[[1]]$evidence$designation_inference$source
#> [1] "off"
#>
#>
#>
#> $PT$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 3, Plinthic horizon "
#>
#> $PT$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $PT$missing
#> [1] "plinthite_pct"
#>
#> $PT$notes
#> NULL
#>
#>
#> $PL
#> $PL$code
#> [1] "PL"
#>
#> $PL$name
#> [1] "Planosols"
#>
#> $PL$passed
#> [1] FALSE
#>
#> $PL$evidence
#> $PL$evidence[[1]]
#> $PL$evidence[[1]]$test_name
#> [1] "planosol"
#>
#> $PL$evidence[[1]]$passed
#> [1] FALSE
#>
#> $PL$evidence[[1]]$layers
#> integer(0)
#>
#> $PL$evidence[[1]]$missing
#> character(0)
#>
#> $PL$evidence[[1]]$evidence
#> $PL$evidence[[1]]$evidence$abrupt_textural_difference
#>
#> ── DiagnosticResult: abrupt_textural_difference
#> Status: failed
#> Sub-tests:
#> Reference: IUSS Working Group WRB (2022), Chapter 3.2.1
#>
#>
#> $PL$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 4, Planosols (p. 107)"
#>
#> $PL$evidence[[1]]$notes
#> [1] "No abrupt textural difference within profile"
#>
#>
#>
#> $PL$missing
#> character(0)
#>
#> $PL$notes
#> NULL
#>
#>
#> $ST
#> $ST$code
#> [1] "ST"
#>
#> $ST$name
#> [1] "Stagnosols"
#>
#> $ST$passed
#> [1] NA
#>
#> $ST$evidence
#> $ST$evidence[[1]]
#> $ST$evidence[[1]]$test_name
#> [1] "stagnic_properties"
#>
#> $ST$evidence[[1]]$passed
#> [1] NA
#>
#> $ST$evidence[[1]]$layers
#> integer(0)
#>
#> $ST$evidence[[1]]$missing
#> [1] "redoximorphic_features_pct"
#>
#> $ST$evidence[[1]]$evidence
#> $ST$evidence[[1]]$evidence$stagnic_pattern
#> $ST$evidence[[1]]$evidence$stagnic_pattern$passed
#> [1] NA
#>
#> $ST$evidence[[1]]$evidence$stagnic_pattern$layers
#> integer(0)
#>
#> $ST$evidence[[1]]$evidence$stagnic_pattern$missing
#> [1] "redoximorphic_features_pct"
#>
#> $ST$evidence[[1]]$evidence$stagnic_pattern$details
#> NULL
#>
#> $ST$evidence[[1]]$evidence$stagnic_pattern$notes
#> [1] NA
#>
#>
#>
#> $ST$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 3, Stagnic properties"
#>
#> $ST$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $ST$missing
#> [1] "redoximorphic_features_pct"
#>
#> $ST$notes
#> NULL
#>
#>
#> $NT
#> $NT$code
#> [1] "NT"
#>
#> $NT$name
#> [1] "Nitisols"
#>
#> $NT$passed
#> [1] FALSE
#>
#> $NT$evidence
#> $NT$evidence[[1]]
#> $NT$evidence[[1]]$test_name
#> [1] "nitic_horizon"
#>
#> $NT$evidence[[1]]$passed
#> [1] FALSE
#>
#> $NT$evidence[[1]]$layers
#> integer(0)
#>
#> $NT$evidence[[1]]$missing
#> character(0)
#>
#> $NT$evidence[[1]]$evidence
#> $NT$evidence[[1]]$evidence$ferralic
#>
#> ── DiagnosticResult: ferralic
#> Status: PASSED
#> Layers satisfying: 2, 3, 4
#> Sub-tests:
#> [PASS] texture
#> [PASS] cec_per_clay
#> [PASS] thickness
#> Reference: IUSS Working Group WRB (2022), Chapter 3.1.10, Ferralic horizon (p.
#> 44)
#> Notes: v0.3.1: ECEC/clay <= 12 test removed; not part of WRB 2022 ferralic.
#> v0.9.67 engine=soilkey threshold = 16 cmol_c/kg clay.
#>
#>
#> $NT$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 3, Nitic horizon"
#>
#> $NT$evidence[[1]]$notes
#> [1] "Excluded -- profile has a ferralic horizon (Ferralsol path)"
#>
#>
#>
#> $NT$missing
#> character(0)
#>
#> $NT$notes
#> NULL
#>
#>
#> $FR
#> $FR$code
#> [1] "FR"
#>
#> $FR$name
#> [1] "Ferralsols"
#>
#> $FR$passed
#> [1] TRUE
#>
#> $FR$evidence
#> $FR$evidence[[1]]
#> $FR$evidence[[1]]$test_name
#> [1] "ferralsol"
#>
#> $FR$evidence[[1]]$passed
#> [1] TRUE
#>
#> $FR$evidence[[1]]$layers
#> [1] 2 3 4
#>
#> $FR$evidence[[1]]$missing
#> character(0)
#>
#> $FR$evidence[[1]]$evidence
#> $FR$evidence[[1]]$evidence$ferralic
#>
#> ── DiagnosticResult: ferralic
#> Status: PASSED
#> Layers satisfying: 2, 3, 4
#> Sub-tests:
#> [PASS] texture
#> [PASS] cec_per_clay
#> [PASS] thickness
#> Reference: IUSS Working Group WRB (2022), Chapter 3.1.10, Ferralic horizon (p.
#> 44)
#> Notes: v0.3.1: ECEC/clay <= 12 test removed; not part of WRB 2022 ferralic.
#> v0.9.67 engine=soilkey threshold = 16 cmol_c/kg clay.
#>
#> $FR$evidence[[1]]$evidence$argic
#>
#> ── DiagnosticResult: argic
#> Status: failed
#> Sub-tests:
#> [fail] clay_increase
#> [fail] thickness
#> [fail] texture
#> [PASS] not_albeluvic
#> Reference: IUSS Working Group WRB (2022), Chapter 3, Argic horizon
#> Notes: No layer satisfied the clay-increase precondition
#>
#>
#> $FR$evidence[[1]]$reference
#> [1] "IUSS Working Group WRB (2022), Chapter 4, Ferralsols (p. 110)"
#>
#> $FR$evidence[[1]]$notes
#> [1] NA
#>
#>
#>
#> $FR$missing
#> character(0)
#>
#> $FR$notes
#> NULLIsso é a feature distintiva do soilKey vs. um classificador “caixa-preta” baseado em LLM: cada classificação carrega o motivo. Se você discorda do resultado, o trace mostra exatamente em qual diagnóstico a chave se desviou da sua expectativa.
Cada valor que entra na chave tem uma tag de proveniência:
meu_pedon$add_measurement(
horizon_idx = 4,
attribute = "clay_pct",
value = 60,
source = "predicted_spectra",
confidence = 0.85,
notes = "Vis-NIR PLSR-local, OSSL South-America library",
overwrite = TRUE
)O evidence_grade do ClassificationResult é
a regra do “pior provenance entre os atributos que foram decisivos para
a classificação”:
measured (laboratório)predicted_spectra
decisivoextracted_vlm
decisivoinferred_prior ou
user_assumed decisivoIsso garante que um perfil classificado a partir de chemistry de laboratório recebe A, mas o mesmo perfil com um valor de argila chave preenchido por VLM ou predição espectral é honestamente B ou C, mesmo que o nome final seja idêntico.
todos <- classify_all(meu_pedon, on_missing = "silent")
data.frame(
Sistema = c("WRB 2022", "SiBCS 5ª ed.", "USDA ST 13"),
Nome = c(todos$wrb$name, todos$sibcs$name, todos$usda$name)
)
#> Sistema Nome
#> 1 WRB 2022 Chromic Ferralsol (Clayic, Dystric, Ochric, Rubic)
#> 2 SiBCS 5ª ed. Latossolos Vermelhos Distroficos tipicos, argilosa, moderado
#> 3 USDA ST 13 Typic HapludoxPara um Latossolo Vermelho típico do Cerrado / Mata Atlântica brasileira, esperamos:
Geric Ferric Rhodic Chromic Ferralsol (...)Latossolos Vermelhos Distroficos tipicosRhodic HapludoxA correspondência entre os três sistemas (Schad 2023, Annex Table 1)
está documentada no pacote — veja
vignette("v03_cross_system_correlation", package = "soilKey").
| Vinheta | Tópico |
|---|---|
v02_classify_wrb_end_to_end |
WRB 2022 com nome canônico do Cap. 6 (qualifiers + suplementares + specifiers) |
v03_cross_system_correlation |
Correspondência WRB ↔︎ SiBCS ↔︎ USDA |
v04_vlm_extraction |
Extração multimodal (PDF, foto) via VLM com schema validation |
v05_spatial_spectra_pipeline |
Prior espacial (SoilGrids) + gap-filling com OSSL |
v06_wosis_benchmark |
Protocolo de validação contra a base WoSIS (ISRIC) |
v07_end_to_end_pipeline |
Pipeline completo (Gemma 4 + espacial + espectral + chave + relatório) |
v08_kssl_nasis_multilevel |
Benchmark USDA Soil Taxonomy 13ed em quatro níveis (Order/Suborder/Great Group/Subgroup) na base KSSL+NASIS |
Para a comunidade brasileira: o caminho mais natural é começar aqui
(v01_getting_started_pt), depois ir para
v03_cross_system_correlation para entender a
correspondência SiBCS ↔︎ WRB ↔︎ USDA, e finalmente
v06_wosis_benchmark se você quiser validar contra dados
reais.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.