← Back to all sparks
S

soilDB

ANALYTICS
Velocity0.0

R package soilDB by ncss-tech — release notes from GitHub.

The R front door to USDA soil data finishes a long deprecation cleanup and turns local-first.

soil-datausda-nasisssurgospatial-queriesr-packageoffline-workflows
Current state
soilDB is the R access layer for USDA-NRCS soil data: NASIS local databases, Soil Data Access, SoilWeb coverage services, and a widening set of curated national grids. The 2.9.x line closed out a multi-release deprecation cycle — column aliases and stringsAsFactors are gone, R 4.1 is the floor, and the bundled sample profile collections were rebuilt against the new schema. Recent work has shifted from adding query functions to making existing ones faster and usable against local SQLite or GeoPackage copies.
Where it's heading
The arc points at offline and local-first workflows. downloadSSURGO() and createSSURGO() keep gaining arguments for building and querying local SSURGO databases, and the query internals were rewritten as common table expressions so identical code runs against the remote service or a local file. Coverage is widening in parallel: FY26 SoilWeb maps now reach most OCONUS surveys, while fetchHWSD() and fetchSOLUS() pull in datasets outside the core NASIS/SSURGO pair. Federal URL churn — EDIT, SoilWeb, S3-hosted geometry — is a recurring maintenance tax the package absorbs on users' behalf.
Prediction
Expect the next releases to keep extending parallel and offline SSURGO handling, since LAPPLY.FUN has just opened the door to arbitrary parallel backends, and to fold more curated SoilWeb and FAO datasets behind fetch* wrappers.

Recent moves

  1. 1mo ago

    FY26 soil maps reach OCONUS; SSURGO downloads go parallel

    The annual SoilWeb map refresh lands with a real coverage expansion — most OCONUS surveys (Alaska, Hawaii, Puerto Rico, Palau, Guam, American Samoa, Northern Marianas) are now served by the color, ISSR800 and mukey coverage services. downloadSSURGO() picks up include_spatial/include_tabular switches and a LAPPLY.FUN hook for arbitrary parallel or progress backends, continuing the local-database push. The EDIT functions were repointed at a new USDA-managed host, the kind of upstream churn this package routinely absorbs.

    View source ↗
  2. 4mo ago

    ROSETTA v2 lands as the deprecated NASIS aliases are removed

    ⚡ SPARK

    This is the release where the 2.9 cleanup becomes real for users: deprecated NASIS column aliases and stringsAsFactors are gone, R 4.1 is required, and the bundled sample collections were rebuilt so old scripts break loudly rather than drift. Alongside it, ROSETTA moves to the v2 API with a new ensemble-summary argument and Ko/L parameters in the output, and fetchGDB() learns to read a local SSURGO GeoPackage.

    View source ↗
  3. 10mo ago

    NASIS record IDs now retrievable through Soil Data Access

    get_SDA_NASIS_key() closes a gap between the two access paths: component and horizon records pulled from Soil Data Access can now be tied back to their NASIS record IDs. The rest is bug repair around the addFields argument added the release before, plus a base URL swap for OSD HTML output — steady maintenance on a widening query surface.

    View source ↗
  4. 11mo ago

    Spatial queries can pull columns from non-spatial tables

    SDA_spatialQuery() gains an addFields argument so a spatial result can carry legend, mapunit or muaggatt columns without a second round trip — a practical shortcut for thematic mapping. createSSURGO() gets an append argument and fixes to its overwrite behavior, more groundwork for the local-database workflow the package has been building toward.

    View source ↗
  5. 1y ago

    NASIS 7.4.3 metadata, plus HWSD and a local cache in 2.8.10

    Metadata catches up to NASIS data model 7.4.3 and a geometry source moves to a new bucket URL. The rolled-in 2.8.10 notes carry the more interesting work: fetchHWSD() adds the FAO Harmonized World Soil Database and soilDB_user_dir() establishes a local cache directory — both early signs of the offline and beyond-NASIS direction the 2.9 line pursues.

    View source ↗
  6. 1y ago

    Query internals rewritten as CTEs for local SQLite support

    Rewriting get_SDA_property(), get_SDA_hydric() and get_SDA_interpretation() as common table expressions is the structural move that made local data sources viable: the same query text now runs against Soil Data Access or a SQLite copy. Read next to the later createSSURGO() work, this is where the offline path stopped being a special case.

    View source ↗