diff --git a/DESCRIPTION b/DESCRIPTION index 32dfec8..fae1c61 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -3,8 +3,8 @@ Type: Package Encoding: UTF-8 Title: A Soil Survey Toolkit Description: Miscellaneous soil data management, summary, visualization, and conversion utilities to support soil survey. -Version: 2.2 -Date: 2024-04-03 +Version: 2.3 +Date: 2024-04-08 Authors@R: c( person(given="Dylan", family="Beaudette", role = c("cre", "aut"), email = "dylan.beaudette@usda.gov"), person(given="Jay", family="Skovlin", role = c("aut")), diff --git a/NAMESPACE b/NAMESPACE index a16e8b3..0eec857 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -40,7 +40,9 @@ importFrom(aqp, 'depths<-', 'site<-', slab, - shannonEntropy + shannonEntropy, + hzdesgnname, + 'hzdesgnname<-' ) importFrom(curl, diff --git a/NEWS.md b/NEWS.md index efcb557..7ce68b5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,14 +1,18 @@ -# sharpshootR 2.2 (2024-03-26) +# sharpshootR 2.3 (2024-04-08) + * CRAN release * `prepare_SSURGO_hydro_data()` now returns more soil property data * major updates to `monthlyWB()`: - mass balance check, reporting, and messages when not closed - new arguments which enable / modify the distribution of PPT and PET within k-bins / month * bug fix in `plotWB()` + * minor updates to `prepare_SSURGO_hydro_data()` + +# sharpshootR 2.2 (2024-08-24) + * CRAN release * added a few more soil hydraulic properties to `prepare_SSURGO_hydro_data()` * `plotGeomorphCrossSection()` now respects `aqp::plotSPC()` arguments via `options(.aqp.plotSPC.args = list(...))` * removing some hard-coded arguments passed through to `aqp::plotSPC()` * `SoilTaxonomyDendrogram()` gains argument to adjust taxon label font - * minor updates to `prepare_SSURGO_hydro_data()` # sharpshootR 2.1 (2023-03-21) * CRAN release diff --git a/R/monthlyWB.R b/R/monthlyWB.R index e66ea50..e40f6dc 100644 --- a/R/monthlyWB.R +++ b/R/monthlyWB.R @@ -50,16 +50,14 @@ #' #' @return a `data.frame` with the following elements: #' -#' \itemize{ -#' \item{PPT: }{monthly PPT (mm)} -#' \item{PET: }{monthly PET (mm)} -#' \item{U: }{monthly surplus (mm)} -#' \item{S: }{monthly soil moisture storage (mm)} -#' \item{ET: }{monthly AET (mm)} -#' \item{D: }{monthly deficit (mm)} -#' \item{month: }{month number} -#' \item{mo: }{month label} -#' } +#' * PPT: monthly PPT (mm) +#' * PET: monthly PET (mm) +#' * U: monthly surplus (mm) +#' * S: monthly soil moisture storage (mm) +#' * ET: monthly AET (mm) +#' * D: monthly deficit (mm) +#' * month: month number +#' * mo: month label #' monthlyWB <- function(AWC, PPT, PET, S_init = 1, starting_month = 1, rep = 1, keep_last = FALSE, distribute = FALSE, method = c('equal', 'random', 'gaussian'), k = 10) { diff --git a/man/monthlyWB.Rd b/man/monthlyWB.Rd index cadf3a7..ce4fa27 100644 --- a/man/monthlyWB.Rd +++ b/man/monthlyWB.Rd @@ -45,16 +45,15 @@ monthlyWB( } \value{ a \code{data.frame} with the following elements: - \itemize{ -\item{PPT: }{monthly PPT (mm)} -\item{PET: }{monthly PET (mm)} -\item{U: }{monthly surplus (mm)} -\item{S: }{monthly soil moisture storage (mm)} -\item{ET: }{monthly AET (mm)} -\item{D: }{monthly deficit (mm)} -\item{month: }{month number} -\item{mo: }{month label} +\item PPT: monthly PPT (mm) +\item PET: monthly PET (mm) +\item U: monthly surplus (mm) +\item S: monthly soil moisture storage (mm) +\item ET: monthly AET (mm) +\item D: monthly deficit (mm) +\item month: month number +\item mo: month label } } \description{ diff --git a/vignettes/sharpshootR-overview.Rmd b/vignettes/sharpshootR-overview.Rmd index d5f3eff..05896b1 100644 --- a/vignettes/sharpshootR-overview.Rmd +++ b/vignettes/sharpshootR-overview.Rmd @@ -28,26 +28,26 @@ options(width = 100, stringsAsFactors = FALSE, timeout = 600) ## Soil Color / Color Science * `aggregateColorPlot()`: unique visualization of soil color summaries generated by `aqp::aggregateColor()` * `colorMixtureVenn()`: simulated mixture of pigments displayed as a Venn diagram - * `huePositionPlot()`: + * `huePositionPlot()`: visualization of Munsell hue position in CIE {A,B} coordinates, with user-specified origin, value / chroma, and more ## Spatial Data - * `aspect.plot()`: + * `aspect.plot()`: graphical summary of aspect angle measurements - * `generateLineHash()`: - * `joinAdjacency()`: - * `polygonAdjacency()`: + * `generateLineHash()`: create a unique ID for line segments via murmur32 hash + * `joinAdjacency()`: join document adjacency helper function + * `polygonAdjacency()`: summary of spatial adjacency from a polygon fabric - * `LL2PLSS()`: - * `PLSS2LL()`: - * `formatPLSS()`: + * `LL2PLSS()`: convert geographic coordinates into PLSS notation + * `PLSS2LL()`: convert PLSS notation into geographic coordinates + * `formatPLSS()`: properly encode PLSS notation for use by `PLSS2LL()` ## Regional Climate and Soil Climate ### Data Interfaces - * `CDEC_StationInfo()`: - * `CDEC_query()`: - * `CDEC_snowQuery`: + * `CDEC_StationInfo()`: information on CDEC stations + * `CDEC_query()`: submit a generic query to CDEC web-service + * `CDEC_snowQuery`: submit a query to the CDEC web-service specifically for CA cooperative snow survey data ### Climate Summaries * `FFD()`: frost-free day estimation @@ -56,36 +56,36 @@ options(width = 100, stringsAsFactors = FALSE, timeout = 600) * `PCP_plot()`: graphical depiction of "percentiles of cumulative precipitation" ### Water Balance - * `prepareDailyClimateData()`: - * `prepare_SSURGO_hydro_data()`: - * `dailyWB_SSURGO()`: + * `prepareDailyClimateData()`: collect data required to run a simple water balance model at a daily time step + * `prepare_SSURGO_hydro_data()`: collect soil property data from SSURGO to parametrize water balance model + * `dailyWB_SSURGO()`: perform a daily water balance using SSURGO data - * `simpleWB()`: - * `dailyWB()`: - * `monthlyWB()`: - * `plotWB()`: - * `plotWB_lines()`: - * `estimateSoilMoistureState()`: - * `moistureStateProportions()`: - * `moistureStateThreshold()`: - * `plotAvailWater()`: + * `simpleWB()`: simple interface to the hydromad `bucket.sim` (leaky bucket) model + * `dailyWB()`: daily water balance via hydromad `bucket.sim` (leaky bucket) model + * `monthlyWB()`: monthly water balance via hydromad `bucket.sim` (leaky bucket) model + * `plotWB()`: bar graph style visualization of water balance simulation + * `plotWB_lines()`: line graph style visualization of water balance simulation + * `estimateSoilMoistureState()`: convert volumetric water content into approximate soil moisture status + * `moistureStateProportions()`: summarize soil moisture state via proportions over month, week, or Julian day + * `moistureStateThreshold()`: convert proportions into probability of exceedance based on given threshold + * `plotAvailWater()`: create a simplistic diagram of various fractions of water help within the soil pore-space ## Soil Survey Data - * `component.adj.matrix()`: - * `diagnosticPropertyPlot()`: - * `plotSoilRelationGraph()`: - * `plotSoilRelationChordGraph()`: - * `plotTransect()`: + * `component.adj.matrix()`: create an adjacency matrix from SSURGO component data + * `diagnosticPropertyPlot()`: multivariate summary of pedon diagnostic features + * `plotSoilRelationGraph()`: graphical representation of component adjacency via igraph package + * `plotSoilRelationChordGraph()`: graphical representation of component adjacency via circlize package + * `plotTransect()`: plot soil profile sketches along a cross-section ### Soil Series Summaries - * `vizAnnualClimate()`: - * `vizFlatsPosition()`: - * `vizGeomporphicComponent()`: - * `vizHillslopePosition`: - * `vizMountainPosition()`: - * `vizSurfaceShape()`: - * `vizTerracePosition()`: - * `reconcileOSDGeomorph()``: + * `vizAnnualClimate()`: visualization method for annual climate summaries via `soilDB::fetchOSD(..., extended = TRUE)` + * `vizFlatsPosition()`: visualization method for flat geomorphic types summaries via `soilDB::fetchOSD(..., extended = TRUE)` + * `vizGeomporphicComponent()`: visualization method for 3D geomorphic description summaries via `soilDB::fetchOSD(..., extended = TRUE)` + * `vizHillslopePosition`: visualization method for 2D geomorphic description summaries via `soilDB::fetchOSD(..., extended = TRUE)` + * `vizMountainPosition()`: visualization method for mountain geomorphic description summaries via `soilDB::fetchOSD(..., extended = TRUE)` + * `vizSurfaceShape()`: visualization method for surface shape (curvature) summaries via `soilDB::fetchOSD(..., extended = TRUE)` + * `vizTerracePosition()`: visualization method for terrace geomorphic description summaries via `soilDB::fetchOSD(..., extended = TRUE)` + * `reconcileOSDGeomorph()`: create a subset of `SoilProfileCollection` and extended records from `soilDB::fetchOSD(..., extended = TRUE)` such that no series are missing in either ### Geomorphic Data Summaries * `plotGeomorphCrossSection`: display soil profile sketches along a geomorphic cross-section