% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/wosis-cache.R
\name{load_kssl_nasis_sample}
\alias{load_kssl_nasis_sample}
\title{Load the bundled KSSL + NASIS morphological-enriched sample (v0.9.75)}
\usage{
load_kssl_nasis_sample()
}
\value{
A list with \code{pedons}, \code{pulled_on}, \code{source},
  \code{join_helper}, \code{cross_walk}.
}
\description{
Returns a 99-profile snapshot built by joining the NCSS Lab Data
Mart (\code{ncss_labdata.gpkg}) with the companion NASIS
Morphological sqlite (\code{NASIS_Morphological_*.sqlite}) via
\code{\link{load_kssl_pedons_with_nasis}}. Pre-annotated with
derived WRB Reference Soil Group via \code{\link{usda_to_wrb_rsg}}.
}
\details{
Compared to \code{\link{load_kssl_sample}} (KSSL lab tables only),
this sample carries the morphological evidence that several WRB
diagnostic horizons need:

| Field | KSSL-only | KSSL + NASIS |
|-------|----------:|-------------:|
| munsell_hue_moist     | 0% | **89.6%** |
| munsell_value_moist   | 0% | **89.6%** |
| munsell_chroma_moist  | 0% | **89.6%** |
| munsell_hue_dry       | 0% | **65.2%** |
| structure_grade       | 0% | **53.8%** |
| structure_type        | 0% | **79.2%** |
| clay_films_amount     | 0% | 8.2% |
| slickensides          | 0% | 1.7% |

First-ever benchmark on this enriched sample (soilKey v0.9.75,
full v0.9.69-72 fallback stack):
\itemize{
  \item Top-1 baseline: 19.1\\% (vs 15.6\\% on KSSL-only -- a
        **+3.5pp lift purely from NASIS morphology**)
  \item Top-1 full stack: 20.6\\% (vs 20.1\\%)
  \item Phaeozem: 1/33 -> 2/33 (Munsell-driven mollic detection)
  \item Podzol:   0/15 -> 1/15
}

Remaining ceiling driven by attributes neither dataset preserves:
Solonetz needs Na/ESP, Vertisols need slickensides + cracks
(NASIS records 1.7% / 0%), Kastanozems need mollic + chroma
on subsoil samples NASIS often lacks.
}
\section{Reference}{

Beaudette, D., Skovlin, J., Roecker, S., Brown, A. (2024). aqp:
Algorithms for Quantitative Pedology. R package version 2.x.
\url{https://github.com/ncss-tech/aqp}.
}

\examples{
\donttest{
s <- try(load_kssl_nasis_sample(), silent = TRUE)
if (!inherits(s, "try-error")) {
  length(s$pedons)
  # Munsell now populated (KSSL-only sample had 0\%):
  mean(vapply(s$pedons,
              function(p) any(!is.na(p$horizons$munsell_hue_moist)),
              logical(1)))
}
}

}
