Skip to content

Releases: ncss-tech/soilDB

soilDB 2.9.1

03 Apr 14:39
7fbc855

Choose a tag to compare

soilDB 2.9.1 (2026-04-01)

  • ROSETTA() updates thanks to Todd Skaggs (USDA-ARS):
    • Now using version 2 of the ROSETTA API (https://www.handbook60.org/rosetta)
    • New argument est.type for selecting ensemble summary method and resulting units of measure
    • $Ko$ and $L$ parameters now included in model output
  • fetchGDB() now supports passing path to SSURGO GeoPackage file via dsn argument
  • Breaking change: sample SoilProfileCollection datasets (loafercreek, gopheridge, mineralKing) updated to 2.9.x fetchNASIS() schema
    • Deprecated columns have been removed, following the corresponding changes in 2.9.0

soilDB 2.9.0 (2026-01-22)

Breaking Changes

Documentation

  • New vignette with details on SoilWeb curated data sources, and related functions in soilDB (#435)
  • New vignette on Soil Data Access, SDA_query() and high-level wrapper functions for SDA queries in soilDB

Improvements

  • fetchOSD(..., extended = TRUE) gains geomorphon proportions via SoilWeb (#435)
  • get_SDA_property(method="weighted average") resolved efficiency issues and streamlined SQL Common Table Expressions for processing very large sets of map unit keys (#432)
  • OSDquery() gains remarks argument for searching the REMARKS section of OSDs

soilDB 2.8.14 (2025-12-04)

  • Added family mineralogy class grids
  • Added argument type for selecting the type of query; replaces deprecated formativeElement
  • SDA_query() now includes additional metadata (comment header in SQL) to inform usage metrics of various access points to SDA
  • fetchSDA() and related lower-level child functions now include nasiscoiid and nasischiid for relating to internal database record IDs

What's Changed

New Contributors

Full Changelog: 2.8.13...2.9.1

soilDB 2.8.13

27 Sep 04:48
90d6077

Choose a tag to compare

soilDB 2.8.13 (2025-09-26)

  • Added get_SDA_NASIS_key() for obtaining NASIS record IDs for component and component horizon data from Soil Data Access (#409)
  • SDA_spatialQuery() fixed a bug with new addFields argument and geomIntersection=TRUE (#414)
  • get_OSD() replace old base URL for result='html'
  • SDA_query() include soilDB package version in User-Agent string
  • Vignette updates
  • Validate SDA_spatialQuery what and as_Spatial inputs (@jslatane #411)
  • get_SDA_property() fixed a bug in SQL dialect syntax with local SQLite dsn

What's Changed

  • fix: get_SDA_property() SQLite dialect by @brownag in #408
  • Validate SDA_spatialQuery what and as_Spatial inputs by @jslatane in #411
  • fix: get_OSD base url for result='html' by @brownag in #413
  • fix: SDA_spatialQuery: addFields with geomIntersection=TRUE and feat* tables by @brownag in #414
  • Add get_SDA_NASIS_key() by @brownag in #409

New Contributors

Full Changelog: 2.8.12...2.8.13

soilDB 2.8.12

29 Aug 20:10

Choose a tag to compare

soilDB 2.8.12 (2025-08-29)

  • New Vignettes:
    • Added vignette for thematic maps of dominant ecological site using Soil Data Access via SDA_spatialQuery() and get_SDA_coecoclass()
    • Added vignette for creating and using local SSURGO databases via downloadSSURGO() and createSSURGO()
  • SDA_spatialQuery() now supports addFields argument to add columns to the result from other non-spatial tables.
    • You can now specify columns from:
      • "legend", "mapunit", and "muaggatt" tables for what equal to "mupolygon", "mupoint", "muline" or "mukey"
      • "legend" table for what equal to "areasymbol" or "sapolygon"
      • "featdesc" for what equal to "featpoint" or "featline"
  • createSSURGO():
    • Added append argument to fix overwrite behavior
    • Fixed bug in creating non-GeoPackage, non-spatial SQLite output
    • Improved handling of empty export files and overwrite logic for non-file-based RDBMS
  • fetchNASIS(): fixed bug when fill=TRUE and there are no horizons in the source data for any profile
  • get_component_from_SDA() fixed bug in join of "chorizon" and "chfrags" tables, now uses merge(incomparables=NA)
  • get_vegplot_tree_si_summary_from_NASIS_db() updated for new siteindexcurve table in NASIS data model version 7.4.3

What's Changed

Full Changelog: 2.8.11...2.8.12

soilDB 2.8.11

11 Jul 03:52

Choose a tag to compare

soilDB 2.8.11 (2025-07-10)

  • Update to NASIS metadata for data model version 7.4.3
  • fetchSDA_spatial() geom.src="mlrapolygon" uses a new URL on the DSHub S3 bucket
  • Added "projectsubtype" and "milestonetype" to the "project" set for get_NASIS_table_name_by_purpose()
  • Initial phase of syntax cleanup affecting many functions

soilDB 2.8.10 (2025-04-28)

  • fetchVegdata() add nullFragsAreZero argument (passed to get_site_data_from_NASIS_db())
  • Added soilDB_user_dir() for caching local copies of data for use in soilDB functions (#377)
  • Added fetchHWSD() and get_HWSD_path() for the FAO Harmonized World Soil Database (#391)
  • Added get_phroots_from_NASIS_db() for getting pedon horizon root information from NASIS (#393)

What's Changed

Full Changelog: 2.8.9...2.8.11

soilDB 2.8.9

05 Apr 04:45

Choose a tag to compare

soilDB 2.8.9 (2025-04-04)

  • soilDB now requires aqp >= 2.1.0
  • Added get_vegplot_groundsurface_from_NASIS_db() thanks to Greg Schmidt (@phytoclast; #373)
  • Added "transectgroundsurfcover" table to "vegetation" set for get_NASIS_table_name_by_purpose()
  • Added missing fetchNASIS("components") deprecation messages for maat_l, maat_r, maat_h, mast_r, ecosite_id, ecosite_name, othervegid, and othervegclass columns
  • fetchSDA_spatial(geom.src="mlrapolygon"): uses an AWS (S3) source and Seek-optimized ZIP file (thanks to @jneme910)
  • get_SDA_property() (method "weighted average" and "min/max"), get_SDA_hydric(), and get_SDA_interpretation() (method "weighted average") now use Common Table Expressions (CTEs) and therefore are compatible with local (SQLite or other) data sources

What's Changed

  • aqp usage cleanup by @brownag in #371
  • deprecate fetchSRI() and related low-level functions by @brownag in #372
  • Vegplot Transect: Add support for Transect Ground Surface Cover by @brownag in #373
  • fetchSDA_spatial(geom.src="mlrapolygon"): use S3 source from @jneme910 by @brownag in #379
  • get_SDA_property: CTEs for SQLite compatibility and query readability by @brownag in #381
  • get_SDA_hydric(): use CTEs by @brownag in #382
  • get_SDA_interpretation: method="weighted average" use CTEs by @brownag in #383
  • fetchSDA_spatial: geom.src="mlrapolygon" add support for query by other attributes by @brownag in #385
  • Add get_site_association_from_NASIS() by @brownag in #387
  • Add get_projectmilestone_from_NASIS() by @brownag in #390

Full Changelog: 2.8.8...2.8.9

soilDB 2.8.8

10 Feb 20:32

Choose a tag to compare

soilDB 2.8.8 (2025-02-10)

This is a patch release with several bug fixes.

  • fetchSCAN(): Bug fix in when sensor column contains all NA
  • ROSETTA() now uses HTTPS URL
  • fetchNASIS() bug fix for (now deprecated) pedon_id in horizon slot rather than site
  • Rebuilt SPC datasets: loafercreek, gopheridge, mineralKing
  • fetchNASISLabData(): use ncsspedonlabdataiid as unique pedon ID

Full Changelog: 2.8.7...2.8.8

soilDB 2.8.7

16 Jan 19:36

Choose a tag to compare

soilDB 2.8.7 (2025-01-16)

  • Several aliases of NASIS physical column names have been deprecated and will be removed in the next minor release (2.9.x). See https://ncss-tech.github.io/AQP/soilDB/bulletins/2025.01-1-soilDB-NASIS-column-aliases.html for details (#369)
  • fetchVegdata()
    • Added "ecostateid", "ecostatename", "commphaseid", "commphasename" to columns from site and siteobs joined into "vegplot" result.
    • Fixed "site" join used for "vegplot" table result. Now using LEFT join to add siteecositehistory information
    • Sites without vegetation plots are now excluded from the result
  • get_vegplot_trhi_from_NASIS_db() & get_vegplot_transect_from_NASIS_db() no longer join to the pedon table. Use the "siteobsiid" or vegetation plot "assocuserpedonid" to join to pedon records when necessary.
    • This change avoids issues with unintended duplication of records e.g. lab pedons that have multiple pedons per site observation. Thanks to Nathan Roe for suggestion.
  • get_vegplot_*() functions use INNER join to vegtransect table where applicable, so records are only returned for vegplots with an associated transect. Thanks to Zach Van Abbema for suggestion.
  • createSSURGO(): more informative error message when no export files found for import
  • Improved soilDBdata data sets used for unit tests of fetchNASIS() and fetchVegdata() when a local NASIS instance is not available
  • Updated NASIS SoilProfileCollection data sets (loafercreek, gopheridge, mineralKing)

soilDB 2.8.6 (2024-12-23)

  • fetchNASIS() and get_site_data_from_NASIS_db() now return Ecological Site State and Community Phase information (ecostatename, ecostateid, commphasename, commphaseid columns) from Site Observation table
  • createStaticNASIS() bug fixes
    • Removed workaround for {odbc}/nanoodbc VARCHAR(MAX) columns; now can directly use DBI::dbReadTable() for all tables via NASIS ODBC connection
    • Fixed error when output_path=NULL
  • fetchNASIS() changed default behavior to mixColors=FALSE which returns dominant condition for each moisture state rather than mixing LAB color coordinates
    • get_colors_from_NASIS_db() deprecate mixColors argument, add method argument with options "dominant", "mixed", and "none". New aggregation method "none" returns long format representation of color data from phcolor table with no aggregation applied.
  • createSSURGO() updates:
    • Added incremental write of tabular data by table and soil survey area, which is much more memory efficient
    • Added maxruledepth argument to allow filtering of cointerp table, and set default to 0.
      • This reduces number of cointerp rows by about 75% for published SSURGO. Generally, Web Soil Survey exports have maximum rule depth of 1, but custom NASIS exports can be "deeper"
    • Updated behavior of filename argument when conn DBIConnection is specified and improved overwrite logic
    • Added dissolve_field to facilitate creating aggregate geometries by "mukey" or other spatial attribute
    • Added include_tabular argument to support omitting tabular data when building a database
    • Now include_spatial and include_tabular are allowed to be a character vectors of table names
      • TRUE is all tables, FALSE is no tables. This allows for subsets of the SSURGO data model to be specified with finer user control over database contents.
    • Now a composite "soil_metadata" table is made with "areasymbol" column and one row per soil survey area, rather than one table per soil survey area. This is more compact and scales better to larger databases.

What's Changed

  • fetchVegdata: add siteobsiid to vegplot tables; activate vegbasalarea table by @natearoe in #366
  • get_NASIS_table_name_by_purpose: Add basal area tables by @natearoe in #367
  • createSSURGO() updates by @brownag in #370
  • Deprecate NASIS column name aliases by @brownag in #369

New Contributors

Full Changelog: 2.8.5...2.8.7

soilDB 2.8.5

05 Nov 15:58

Choose a tag to compare

soilDB 2.8.5 (2024-11-04)

  • fetchLDM() add support for area_type argument with local database connections (dsn argument)
  • fetchSCAN() updates:
    • Improved SCAN, CSCAN, SNOTEL, SNOWLITE station metadata (#61) via @jskovlin
    • Timezone support for hourly data requested by fetchSCAN() (#184)
    • All above-ground sensors are now returned, instead of just the first of each type (#359)
  • Added new help file on NASIS database sources; see ?NASISLocalDatabase (#360)
  • get_SDA_*() function updates related to consistent parameters for miscellaneous areas and minor components (#361)
  • fetchSOLUS(): New function for downloading data from Soil Landscapes of the United States 100-meter (SOLUS100) soil property maps project repository (#362)
  • fetchNASIS() more consistent QC messages and output for multiple site observations and lab samples
  • Updated SoilProfileCollection data sets (loafercreek, gopheridge, mineralKing) for aqp 2.1.x object definition and recent changes to fetchNASIS() (#363)

What's Changed

Full Changelog: 2.8.4...2.8.5

soilDB 2.8.4

19 Aug 14:24

Choose a tag to compare

soilDB 2.8.4 (2024-08-19)

  • createSSURGO() bug fixes following changes in 2.8.3
    • generating gpkg_contents for GeoPackage files failed to add entries for "features" data_type
    • filename argument not properly handled in some cases
  • SDA_query() handle another possible failure point in error handling code
  • createStaticNASIS() use odbc::dbListFields() instead of odbc::odbcConnectionColumns()
  • fetchNASIS Vignette

Full Changelog: 2.8.3...2.8.4

soilDB 2.8.3

11 Jun 22:00

Choose a tag to compare

soilDB 2.8.3 (2024-06-11)

  • Updates to SoilWeb web coverage services
    • ISSR800 authoritative grid system altered slightly
    • ISSR800.wcs() and soilColor.wcs() now set color table internally when possible
    • updated source data: ISSR800 (FY24) and soil color (FY23)
  • SDA_query() updates
    • Better messaging on error
    • Handle try-error result more gracefully in high-level functions (#352)
  • createSSURGO(): added support for creating DuckDB, PostgreSQL, and other DBI-compatible databases (#352) via conn argument
  • fetchSDA() and get_chorizon_from_SDA() concatenate multiple texcl using a comma when a texture group contains multiple texture classes (e.g. stratified textures) (fixes #353)
  • fetchNASIS()/.formatLandformString(): append geomfmod column to landscape, landform, and microfeature strings where present; thanks to Gabriel Benitez for suggestion
  • fetchNASIS()/get_extended_data_from_NASIS_db(): fix conversion of codes to labels for microrelief
  • fetchSCAN(): fix header format; thanks to @dschlaep for reporting and providing a fix

What's Changed

  • SDA_query: handle API failures with more grace by @brownag in #351
  • createSSURGO: add support for creating DuckDB and other DBI-compatible databases by @brownag in #352
  • get_chorizon_from_SDA: concatenate many:1 texcl, lieutex within RV chtexturegrp by @brownag in #353

Full Changelog: 2.8.2...2.8.3