avstrat

Stratigraphic Data Processing and Section Plots

This package provides tools for data processing and generating stratigraphic sections for volcanic deposits and tephrastratigraphy. Package was developed for studies on Alaska volcanoes (“av”) where stratigraphic (“strat”) figures are needed for interpreting eruptive histories, but the methods are applicable to any sediment stratigraphy project. The primary outputs are ggplot figures of stratigraphic sections–ggstrat(), ggstrat_column(), ggstrat_sampleID()-but the data processing logic add_depths() and add_layer_widths() enable motivated users to create custom visualizations. Various load_data functions facilitate ingesting from stratigraphic layer data templates.

Installation

You can install avstrat from CRAN or from a downloaded source file off the GitLab approved repository (Code - Download source code - tar.gz). For option 2, you’ll need to download the source repo as a tar.gz and map the path to the location on your computer (replace “path/to” with the file path on your local computer where you save the download).

{r eval=FALSE}
# Option 1: Install from CRAN:
install.packages("avstrat")

# Option 2: Install from source file:
install.packages("path/to/avstrat_0.0.0.9000.tar.gz", repos = NULL, type = "source")

To install the development version, use the ‘devtools’ package.

devtools::install_gitlab("vsc/tephra/tools/avstrat", 
                        host = "code.usgs.gov", 
                        build_vignettes = TRUE)

You can also install the development version from a mirrored repo on Github.

devtools::install_github(
  "https://github.com/mwloewen/avstrat",
  build_vignettes = TRUE
)

Example

To upload data from GeoDIVA submission templates (Stations-Samples and Layers), you will need to have two excel files that match GeoDIVA upload templates. Examples can be found in this repo under inst/extdata/example_layers_upload_2024.xlsx and inst/extdata/example_samples_stations_upload_2024.xlsx. In the code chunk below, replace “path_layers.xlsx” with the file path and file name of your files.

library(readxl)
library(avstrat)

data_strat <- load_geodiva_forms(
   station_sample_upload = 
     readxl::read_excel("path/to/samples_stations_upload.xlsx", sheet = "Data"),
   layer_upload = 
     readxl::read_excel("path/to/layers_upload.xlsx", sheet = "Data")
 )

The GeoDIVA templates have some idiosyncrasies unique to Alaska Volcano Observatory projects and database history. Most people may find a more generic upload template more useful, and there is an upload function for that too! See inst/extdata/example_inputs.xlsx, which includes data tabs broken down into different data types: stations, sections, layers, and samples. These can be partially merged (e.g., “stations_sections”) or separate. Samples can be linked to layers as a nested list (similar to the GeoDIVA layer upload, “layers-sample”) or each sample linked to a single layer (“samples_layer”). Using the later option:

data_strat <- load_stratdata_indiv(
  stations_upload = readxl::read_xlsx("path/to/example_inputs.xlsx", 
                                      sheet = "stations"),
  sections_upload = readxl::read_xlsx("path/to/example_inputs.xlsx", 
                                      sheet = "sections"),
  layers_upload = readxl::read_xlsx("path/to/example_inputs.xlsx", 
                                      sheet = "layers"),
  samples_upload = readxl::read_xlsx("path/to/example_inputs.xlsx", 
                                      sheet = "samples_layer"),
)

Once you have the data in your environment, you can make a basic stratigraphic plot and use the avstrat theme:

library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.4.3
library(readxl)
#> Warning: package 'readxl' was built under R version 4.4.3
library(avstrat)
# Load data (this is a pre-loaded example dataset that is part of avstrat)
data_strat <- example_data_strat

# Set theme
theme_set(theme_avstrat())

# Produce a strat section
ggstrat(df = data_strat, section_name = '21LSHD02')

You can also plot sample identification along side the section. and combine them with the patchwork package.

library(patchwork)
#> Warning: package 'patchwork' was built under R version 4.4.3
p1 <- ggstrat(df = data_strat, section_name = '21LSHD02')
p2 <- ggstrat_label(df = data_strat, section_name = '21LSHD02')

p1 + p2
#> Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
#> font family not found in Windows font database

More examples and demonstration of how to create your own custom plots will be provided [eventually] in vignettes! Currently, a more detailed workflow can be accessed with the installed package at:

vignette("avstrat-workflow-examples", package = "avstrat")

Contributing

If you find problems with this package or have features you’d like to see, please open an issue or consider contributing yourself, I would love to have more contributors to the package!

License and Disclaimer

License: This project is in the public domain.

Disclaimer: This software is preliminary or provisional and is subject to revision.