---
title: "An Overview of the sharpshootR Package"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{An Overview of the sharpshootR Package}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, echo=FALSE, results='hide', warning=FALSE}
knitr::opts_chunk$set(
  message = FALSE,
  warning = FALSE,
  background = '#F7F7F7',
  fig.align = 'center',
  dev = 'png',
  comment = "#>"
)

options(width = 100, stringsAsFactors = FALSE, timeout = 600)
```




# Index by Topic

## 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()`: visualization of Munsell hue position in CIE {A,B} coordinates, with user-specified origin, value / chroma, and more

## Spatial Data
  * `aspect.plot()`: graphical summary of aspect angle measurements
  
  * `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()`: 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()`: 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
  * `FFDplot()`: visualization of frost-free day summary
  * `HenryTimeLine()`: graphical summary of sensor data from the Henry Soil and Water Database
  * `PCP_plot()`: graphical depiction of "percentiles of cumulative precipitation"

### Water Balance
  * `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()`: 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()`: 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()`: 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
  * `hydOrder()`: hydrologic ordering of a geomorphic proportion matrix

### Soil Taxonomy / Numerical Classification
  * `plotProfileDendrogram()`: "hang" soil profile sketches from a dendrogram
  * `SoilTaxonomyDendrogram()`: arrange soil profile sketches according to subgroup level classification in Soil Taxonomy

## Misc.
  * `isMineralSoilMaterial()`: mineral soil criteria from 12th edition of the Keys to Soil Taxonomy

