Full Text View

Volume 34 Issue 2 (February 2024)

GSA Today

Article, p. 4-9 | Abstract | PDF

*Align*: A User-Friendly App for Numerical Stratigraphic Correlation

## Abstract

Stratigraphic correlation underpins all understanding of Earth’s history, yet few geoscientists have access
to, or expertise in, numerical codes that can generate reproducible, optimal (in a least-squares framework)
alignments between two stratigraphic time-series data sets. Here we introduce *Align*, a
user-friendly computer app that makes accessible a published dynamic time warping (DTW) algorithm that, in a
minute or less, catalogs a library of alignments between two time-series data sets by systematically
exploring assumptions about the temporal overlap and relative sedimentation rates between the two
stratigraphic sections. The *Align* app, written in the free, open-source R programming language,
utilizes a graphical user interface (e.g., drop-down menus for data upload and sliding bars for parameter
exploration) such that no coding is required. In addition to generating alignment libraries, a user can
employ *Align* to visualize, explore, and cull each alignment library according to thresholds on
Pearson’s correlation coefficient and/or temporal overlap. Here we demonstrate *Align* with
time-series records of carbonate stable carbon isotope composition, though *Align* can, in principle,
align any two quantitative stratigraphic time-series data sets.

*Cedric.Hagen@Colorado.edu

CITATION: Hagen, C.J., Creveling, J.R., and Huybers, P., 2024, *Align*: A User-Friendly App for
Numerical Stratigraphic Correlation: GSA Today, v. 34, p. 4–9, https://doi.org/10.1130/GSATG575A.1 © 2024 The Authors. Gold
Open Access: This paper is published under the terms of the CC-BY-NC license. Printed in USA.

Manuscript received 23 June 2023. Revised manuscript received 4 Oct. 2023. Manuscript accepted 11 Dec. 2023. Posted 16 Jan. 2024.

© The Geological Society of America, 2024. CC-BY-NC.

**Cover Image**

**Table of Contents**

- Introduction
- Uploading, Viewing, Storing, and Culling the Library of Stratigraphic Alignments
- How Dynamic Time Warping Produces a Library of Stratigraphic Alignments
- Summary
- Acknowledgments
- References Cited

**Search Google Scholar for**

**Search GSA Today**

## Introduction

Since William Smith’s iconic geological map of England and Wales in 1815 (Sharpe, 2015), stratigraphic correlation has become the integral method to decipher and contextualize Earth’s history. Stratigraphic correlation is now facilitated by sophisticated ancillary measurements of sedimentary rocks, including stable isotope composition (e.g., McKinney et al., 1950; Knoll et al., 1986), trace element concentration (e.g., Veizer and Compston, 1974; Elderfield, 1986), and properties such as gamma-ray spectrometry (e.g., Chamberlain, 1984; Cowan and Myers, 1988) and magnetostratigraphy (e.g., Opdyke, 1972; Løvlie, 1989). Computational advances have led to quantitative tools for time-series analysis of these ancillary measurements (e.g., Agterberg and Gradstein, 1988; Tipper, 1988), including software for the correlation of biostratigraphic (e.g., Kemple et al., 1995; Sadler, 2004; Sadler et al., 2009), paleomagnetic (e.g., Clark, 1985; Hagen et al., 2020), lithostratigraphic (e.g., Lewis et al., 2011), cyclostratigraphic (e.g., Meyers, 2014; Li et al., 2019), ice core (e.g., Bay et al., 2010; Hagen and Harper, 2023), and chemostratigraphic data (e.g., Lisiecki and Lisiecki, 2002; Hay et al., 2019). Many of these correlation tools utilize dynamic time warping (DTW), an objective, time normalization algorithm that achieves least-squares alignments between two time-series. These alignments are subject to penalties on the insertion of hiatuses that stretch and squeeze the stratigraphic height/time axis (hence the colloquial term “dynamic time warping”; Sakoe and Chiba, 1978). For two geoscience examples, Lisiecki and Raymo (2005) adopted the Match algorithm of Lisiecki and Lisiecki (2002) to generate the canonical “LR04” stack of 57 Pliocene–Pleistocene benthic oxygen isotope records (although, in this case, manual adjustments were made after applying the algorithm), and the well-resolved Ordovician and Silurian time scales arose from dynamic programming-based constrained optimization (CONOP) for the temporal sequencing (or “slotting”) of graptolite first/last appearance datums (Sadler, 2004; Sadler and Cooper, 2008).

Despite the ubiquitous application of chemostratigraphy for stratigraphic correlation across the geological
time scale, and this rich archive of algorithms, the stratigraphy community lacks an open-source code for a free
programming environment to facilitate quantitative chemostratigraphic alignment that is operable by users
without prior coding experience. Here we present *Align* (Fig. 1), a new free and open-source computer
app that utilizes the DTW algorithm of Hay et al. (2019). *Align* is available to download from the
GitHub data repository^{1} and was written in R v.4.2.2 (R Core Team, 2022) using the *Shiny*
open-source package (Chang et al., 2017). *Align* utilizes the Hay et al. (2019) DTW algorithm
(originally written in MATLAB), rewritten in R to run seamlessly with the app (Hagen, 2023). We chose to make
the DTW algorithm of Hay et al. (2019) accessible for three reasons. First, this routine efficiently aligns
every individual data point, rather than blocks of data (as the Match algorithm does). Second, the code
generates a library of optimal alignments (in a least-squares sense) between two univariate stratigraphic
time-series data sets. These alignments are subject to systematic assumptions about the total temporal overlap
between the two time-series and the extent to which they can be stretched or squeezed (“time-warped”) to align
with one another (see mathematical description below). This type of analysis is impossible to achieve with the
human eye. Third, the code can be applied to any numerical (though not categorical) stratigraphic time-series
data set (see GitHub repository for a description of how to upload and review data with *Align*). The
*Align* interface utilizes intuitive design features such as drop-down menus, slider control elements,
and toggle buttons for the execution of the underlying DTW code without any coding. Here we present a guide for
applying the *Align* app to time-uncertain chemostratigraphic correlation by demonstrating the alignment
of stable carbon isotope data from carbonate rocks (δ^{13}C_{carb}). We provide a description of
the underlying mathematics of DTW.

-------

^{1} The *Align* code archive, which includes detailed documentation and three separate example
data sets, is included in the data repository on GitHub: https://github.com/CedricHagen/Align. The R version of the Hay
et al. (2019) algorithm is freely available through CRAN: https://cran.r-project.org/package=align.

## Uploading, Viewing, Storing, and Culling the Library of Stratigraphic Alignments

The *Align* interface allows a user to upload spreadsheets of up to three univariate candidate
time-series data sets and a single univariate target time-series data set against which to align the
candidate(s) (formatting details are in the *Align* documentation on GitHub). Figure 1 illustrates how
the algorithm aligns a synthetic δ^{13}C_{carb} data set with a –5‰ excursion followed by a –1‰
excursion, both from a background value of 0‰ (Fig. 1A, target; from Trampush and Hajek [2017]), and a synthetic
δ^{13}C_{carb} data set made by randomly subsampling the target (at 20% completeness) and adding
noise (Fig. 1A, candidate) to represent a realistic record that a stratigrapher might correlate. A button
generates a plot of the uploaded δ^{13}C_{carb} time-series records to verify accurate data
upload and to cache necessary files for the DTW algorithm (Fig. 1A). At this stage, the user slides bars to set
the range of *edge* and *g* values (which control the temporal overlap and relative accumulation
rate, respectively, as discussed below) that determine the size of the alignment library (# of alignments = # of
*edge* values × # of *g* values). After plotting verification, the user clicks the “Run DTW
algorithm” button to command the underlying R code to generate the alignment library.

*Align*app for stratigraphic time-series alignment. (A) A screenshot of the

*Align*graphical user interface (tab 1) where menus (on left) prompt the user to upload, plot, and align a target and a candidate time-series data set using the underlying dynamic time-warping (DTW) algorithm. The example target data set “Synthetic TH17” (adopted from Trampush and Hajek, 2017) and candidate data set “Noisy subsample” (see GitHub repository [text footnote 1]) are plotted with a click button (on right) to visually confirm accurate data upload. (B) A screenshot of the

*Align*culling interface (tab 2) where sliding scales (on left) allow a user to narrow the resulting alignment libraries by the Pearson correlation coefficient (“xc cutoff”) and/or overlap percent cutoffs. The example criteria (xc cutoff = 0.9; overlap cutoff = 90%) narrow the full library of 60 alignments down to nine alignments. The user can use a drop-down menu to plot one of these alignments at a time (on right).

The *Align* app allows the user to vary the *g* and *edge* parameter in any continuous
range between 0.95 and 1.05 and 0.01 and 0.25, respectively, with any increment; following Hay et al. (2019),
the default *g* value range is set to 0.98–1.01 and the default *edge* value range is set to
0.01–0.15, both in increments of 0.01. As the underlying code runs through the default parameter space, it
generates 60 alignments (60 *g-edge* pairings for each candidate-target time-series correlation), which
are visually presented as x-y scatterplots of δ^{13}C_{carb}-stratigraphic height (Fig. 1B) and
corresponding spreadsheets containing the meterage that every candidate time-series
δ^{13}C_{carb} value was aligned to on the target time-series (i.e., the y-axis values for the
aligned candidate). A different parameter range and increment will change the number of alignments in the
alignment library, and the associated output images/files (see GitHub repository for additional discussion about
*g* and *edge* values, as well as hiatal surfaces and data types). Output files are saved to the
user’s computer in a folder named Output with sub-directories named for the candidate-target alignment pair.
Each alignment can be viewed in the underlying Output_Images folder (or plotted in an external application using
the .csv files in the underlying Output_Data folder). A subset of output alignments can be viewed in the
separate alignment library viewer tab (Fig. 1B).

When a stratigrapher wants to focus on a subset of alignments that adhere to a shared criterion, a separate tab
in the *Align* app gives the user the option to manually sort (and narrow) the alignment library
according to thresholds for the Pearson’s correlation coefficient and the overlap between the aligned
time-series (Fig. 1B). Figure 1B shows the *Align* interface for culling an alignment library, here
displayed to cull the alignment library to show only those alignments with a Pearson correlation coefficient
≥0.9 (“xc cutoff”) and an overlap of the candidate to the target of ≥90% “overlap cutoff”. When the user clicks
the “Narrow Alignment Library” button (Fig. 1B), *Align* saves those alignments that adhere to the cutoff
criteria (a “culled library”) in a new folder named for the user’s inputted name for these culling criteria
(e.g., 0.9,90%). For this scenario, the culled alignment library includes nine of the original 60 alignments
(the culled alignments can be viewed independently by selecting their name in the drop-down menu; Fig. 1B).

Relative temporal constraints on stratigraphic sections (e.g., biostratigraphy, litho-stratigraphic markers,
etc.) can be used in conjunction with the time-series data to evaluate an alignment library. For one, the user
can restrict the target/candidate time-series to a certain biozone or lithostratigraphic unit (effectively
aligning δ^{13}C_{carb} data presumed to be temporally equivalent). Alternatively, these
constraints can be used to evaluate the alignment libraries post analysis.

## How Dynamic Time Warping Produces a Library of Stratigraphic Alignments

Figure 2 illustrates a simple stratigraphic correlation using DTW with two short, synthetic carbon isotope
(δ^{13}C_{carb}) time-series: a seven-sample target sequence composed of a 3.5‰
δ^{13}C_{carb} excursion over 6 m of stratigraphy (Fig. 2H) and a four-sample candidate sequence
with a 4.5‰ excursion over 3 m (Fig. 2H). First, target (Figs. 1A and 2A) and candidate (Figs. 1A and 2B)
matrices are constructed whose number of rows (*n* = 7) and columns (*m* = 4) equal the length of
the target and candidate δ^{13}C_{carb} sequences, respectively. The seven
δ^{13}C_{carb} values from the target section fill target matrix column 1 (Fig. 2A, red column)
and are replicated *m*-1 times to fill all remaining columns. The four δ^{13}C_{carb}
values from the candidate section are transposed to fill candidate matrix row 1 and replicated *n*-1
times to fill the remaining rows (Fig. 2B). The next step is to construct an *n*-by-*m* matrix of
all of the possible δ^{13}C_{carb} pairings from the target and candidate sequences. Each matrix
element is computed as the difference between an index in the target (*tn*) and the candidate
(*cm*) sequences: C(*n*,*m*) = (*tn* – *cm*; Fig. 2C) and squared to give a
squared-difference matrix (Fig. 2D; Sakoe and Chiba, 1978). Comparison of the 3‰ excursion peak in the target
(Fig. 2A, row 4) and candidate sequences (Fig. 2B, column 2) gives a strong constraint because it alone gives a
squared difference of 0 (Fig. 2D, cell (4,2)).

^{13}C

_{carb}sequences. (A–G) Step-by-step matrix operations to align the two synthetic δ

^{13}C

_{carb}sequences (target, original candidate) shown in frame (H). The target and original candidate δ

^{13}C

_{carb}sequences populate the columns and rows of the target (A) and candidate (B) matrices, respectively; subtracting the candidate matrix from the target matrix yields the difference matrix (C). Squaring the values in the difference matrix generates the squared-difference matrix (D), a measure of the similarity of all pairs of δ

^{13}C

_{carb}from the target and candidate sections. Multiplying the edges of the squared-difference matrix by the adopted value of the edge parameter yields the

*edge*-modified matrix (E). The cumulative difference matrix (F) incorporates the accumulation of cost arising from the adopted value of the

*g*parameter. The alignment path, which reveals the temporally equivalent target and candidate strata/δ

^{13}C

_{carb}values, begins in the lower right corner of the cumulative difference matrix and proceeds to the lowest cost cell looking two steps ahead (G). For these synthetic data, the alignment path shifts the aligned candidate section stratigraphically higher on the target sequence relative to the original candidate meterage (H). Abbreviations: Difference = the difference matrix; Sq. Diff. = the squared-difference matrix; min(aug. 8 preceding) = the minimum value of the eight preceding cumulative difference matrix cells;

*Edge*= the

*edge*-modified matrix.

An alignment takes the form of a “warping path” that assigns each candidate index *m* to an index
*n* of the target sequence by minimizing the sum of the squared differences (“cost”) across all
*m* (Sakoe and Chiba, 1978). This path is achieved through successive diagonal, horizontal, and vertical
steps across the squared-difference matrix, each of which implies a bed-to-bed alignment (Hay et al., 2019). A
warping path that begins in the lower-right corner of the squared-difference matrix (Fig. 2D, cell (7,4))
implies that the stratigraphically highest δ^{13}C_{carb} value from both the target and
candidate sections are time equivalent. A warping path that exits the upper-left corner of the
squared-difference matrix (Fig. 2D, cell (1,1)) aligns the lowermost values of the two sequences, implying that
accumulation began concurrently at both sections. Thus, a warping path that enters and exits both corners of the
squared-difference matrix indicates that sediment accumulation at the two sections spans the same interval of
geological time. In contrast, when a warping path meets an edge of the squared-difference matrix, this implies
that the two sections do not span the same total temporal duration.

Once the warping path enters the matrix, the DTW algorithm objectively finds an optimal pathway in terms of a
sequence of diagonal, vertical, and horizontal steps that minimize the associated sum of squared residuals. A
diagonal step implies an equivalent rate of *relative* sediment accumulation between the candidate and
target time-series. A vertical or horizontal step instead inserts a hiatus in deposition at the candidate or
target sections, respectively.

When aligning δ^{13}C_{carb} sequences, stratigraphers have little or no *a priori*
information about the total temporal overlap with the target section, nor the relative rates of sediment
accumulation between target and candidate sections. To address these uncertainties, the algorithm explores
various optimal warping paths across the squared-difference matrix (e.g., Fig. 2G) conditional on the systematic
application of the *edge* and *g* penalty functions (see below) that alter the values of the
squared-difference matrix (Fig. 2D) and thereby favor specific stratal pairings.

The edge penalty function explores whether the two sequences span the same total interval of time and is so
named because the right and bottom squared-difference matrix edges align the stratigraphically highest
(youngest) target and candidate δ^{13}C_{carb} values whereas the left and top edges align the
lowest (oldest) δ^{13}C_{carb} values. The *edge* value is a coefficient that modifies
all squared-difference matrix edge cells in clockwise fashion, beginning with the first row and ending with the
first column (Fig. 2E; yellow ellipsoids). *Edge* values >1 increase the value of the squared
difference for a specific stratal pairing, discouraging their alignment, whereas when 0 < *edge* <
1,
stratal pairings are encouraged. For example, an (arbitrarily adopted) *edge* value of 0.1 modifies
squared-difference matrix element (3,4) = 9 (Fig. 2D) to the lower value of 0.9 (Fig. 2E, cell (3,4)). In this
formulation, matrix corners are modified twice (once per edge; see Fig. 2E, cell (1,1)). While Figure 2
illustrates the adoption of a *single* (arbitrary) *edge* value (*edge* = 0.1; Fig. 2E), in
practice the DTW algorithm systematically varies *edge* values across a user-identified range to discover
alternative start/end cells for warping pathways, generating multiple δ^{13}C_{carb} alignments.

The *g* penalty function is useful for enforcing various levels of similarity of sediment accumulation
rate(s) at the two stratigraphic sections throughout their shared deposition history using a range of *g*
values. Values of *g* > 1 penalize stretching or squeezing by increasing the augmented cost of all
off-diagonal matrix cells, and the opposite is true for *g* < 1; a *g*-value equal to 1 does
not augment the cost matrix. For this illustration, we adopt *g* = 1. First, *edge*-modified
matrix cell (1,1; Fig. 2E) is replicated to fill the corresponding cell of the cumulative difference matrix
(CDM; Fig. 2F). Next, moving right across CDM row 1, every cell value is computed as the sum of values of the
corresponding *edge*-modified matrix cell plus all preceding *edge*-modified matrix cells in the
row (Fig. 2F; horizontal black arrow). For example, CDM (1,4; Fig. 2F) is calculated as the sum of
*edge*-modified matrix (1,4), (1,3), (1,2), and (1,1), equal to 0.01, 0, 1.225, and 0.0025, respectively,
or 1.2375 (Fig. 2F). This process is repeated vertically for CDM column 1, summing down the column (Fig. 2F;
vertical black arrow).

Next, the algorithm calculates the accumulation of cost in each unfilled cell of row 2 and in each unfilled
cell of column 2 (Fig. 2F; yellow arrows). These values are computed as the sum of the value in the
corresponding *edge*-modified matrix cell (Fig. 2E) and the minimum value of the three preceding
g-modified cells of the CDM computed as: *g**(*n*, *m*-1), (*n*-1, *m*-1),
and *g**(*n*-1, m) (Fig. 2F; note that three preceding cells are considered only for cell
calculations in row 2 and column 2, whereas cell calculations in all subsequent rows and columns consider eight
preceding cells). For example, the algorithm computes CDM cell (7,2) as the sum of *edge*-modified matrix
(7,2) = 1.6 (Fig. 2E) and the minimum of the three preceding CDM cells, in this case element (6,1) = 3.1275,
yielding 4.7275 (Fig. 2F). Figure 2 adopts *g* = 1 for mathematical ease; had we adopted any *g* ≠
1, this selection would have modified cell (7,1)—calculated as *g**(*n*, *m*-1)—to be a
value less than cell (6,1)—unmodified by *g* based on its diagonal position—and thereby changed the final
value for CDM cell (7,2). Like the *edge* parameter, the DTW algorithm systematically varies *g*
values
across a user-defined range to discover alternative warping paths between given start/end cells.

To complete the CDM, the algorithm fills the remaining empty cells in rows 3–7 and columns 3–4 (Fig. 2F; gray
arrows). These calculations proceed by summing the corresponding *edge*-modified matrix value and the
minimum value of the *eight* preceding CDM cells (looking two steps forward is preferred, considering the
eight preceding cells, but this is not possible in row 2 and column 2 due to the dimensions of the matrix and
there being no 0th row or column, hence the consideration of only three preceding cells representing one step
forward in row 2 and column 2). The CDM cells are modified by *g* as follows: (*n*-1, m) and
(*n*, *m*-1) are multiplied by g; (*n*-1, *m*-2) and (*n*-2, *m*-1)
are multiplied by 1.05**g*; (*n*-2, m) and (*n*, *m*-2) are multiplied by
1.1**g* (Fig. 2F). Diagonal preceding cells (*n*-1, *m*-1) and (*n*-2, *m*-2)
are not modified by g. For example, CDM cell (3,4) is computed as *edge*-modified matrix (3,4) = 0.9
(Fig. 2E) plus CDM (1,2) = 1.2275 (because this cell has the minimum value of the eight preceding cells in the
CDM: (3,2), (3,3), (2,2), (2,3), (2,4), (1,2), (1,3), and (1,4)), summing to 2.1275 (Fig. 2F).

Every possible pairing of *g* and *edge* values from the input ranges produces a CDM, and the
warping path across the CDM begins at the lower-right corner and progressively steps horizontally, diagonally,
or vertically (see the illustrative alignment in Fig. 2) to the minimum value of the eight adjacent cells,
always looking two steps ahead (Fig. 2G, black cells, with values replicated from Fig. 2F). For each CDM, the
corresponding δ^{13}C_{carb} alignment begins with the stratigraphically lowest cell of the
starting edge (the right column or bottom row)—here cell (6,4; Fig. 2G)—and terminates upon meeting an end edge
(the left column/top row), here cell (2,1). Note when the algorithm encounters equivalent values, such as cells
(6,1) and (7,1), the diagonal is adopted to maximize temporal correspondence by minimizing the insertion of
hiatuses. For the adopted *edge* and *g* parameter values, the warping path specifies the globally
optimal alignment of each δ^{13}C_{carb} value of the candidate sequence with the target
sequence (black cells), with empty rows representing target δ^{13}C_{carb} values with no
time-equivalent at the candidate section (an imposed hiatus). Figure 2H visualizes the target-candidate
δ^{13}C_{carb} alignment arising from the alignment path in Figure 2G (i.e., for *edge*
and *g* values of 0.1 and 1, respectively). By repeating this process for a range of *edge* and
*g* values, the algorithm systematically generates alignments that encapsulate a spectrum of assumptions
about the shared temporal history (via *edge*) and relative rates of sediment accumulation (via
*g*) at the target
and candidate stratigraphic sections (see Hay et al., 2019). A different pairing of *edge* and *g*
values can produce a visually distinct alignment from that shown in Figure 2H (e.g., choosing a *g* value
greater than 1, which encourages dissimilar relative sedimentation rates, could increase the overlap of the
shoulders of the synthetic excursion). Together, we present the objective alignments arising from all
*edge* and *g* pairings as a correlation library for further parsing by statistical analyses and
geological insight (see GitHub repository for a brief discussion of computation time and dynamic programming).

## Summary

The user-friendly *Align* app makes freely available the proven DTW algorithm for objective,
reproducible, and optimal stratigraphic time-series correlation (Hay et al., 2019) to anyone conducting
stratigraphic research by eliminating the need for command-line coding. The *Align* app efficiently (~1
minute run time) and systematically generates a library of stratigraphic alignments for the stratigrapher to
evaluate, a task otherwise impossible with the human eye. *Align* allows the user to cull an alignment
library and saves all outputs in common file formats easily read into figure-design software, making
*Align* a powerful new stratigraphy research tool. We welcome collaborations to incorporate additional
features into *Align* to grow the capacity of this community tool.

## Acknowledgments

We thank the DTW algorithm creators (C. Hay and E. Haam), app beta-testers (S. Herz, M. Schwarz, A. Martin, and R. Jones), and P. Reynolds and K. Jay for feedback. Financial support from the NSF GRFP, ARCS Foundation, Agouron Institute Geobiology Fellowship, and NSF EAR-2025735 made this work possible. We thank James Schmitt for editorial handling, as well as Benjamin Gill and an anonymous reviewer whose constructive feedback greatly improved this manuscript.

## References Cited

- Agterberg, F.P., and Gradstein, F.M., 1988, Recent developments in quantitative stratigraphy: Earth-Science Reviews, v. 25, p. 1–73, https://doi.org/10.1016/0012-8252(88)90099-2.
- Bay, R.C., Rohde, R.A., Price, P.B., and Bramall, N.E., 2010, South Pole paleowind from automated synthesis of ice core records: Journal of Geophysical Research: Atmospheres, v. 115, https://doi.org/10.1029/2009JD013741.
- Chamberlain, A.K., 1984, Surface gamma-ray logs: A correlation tool for frontier areas: AAPG Bulletin, v. 68, p. 1040–1043, https://doi.org/10.1306/AD4616C4-16F7-11D7-8645000102C1865D.
- Chang, W., Cheng, J., Allaire, J., Xie, Y., and McPherson, J., 2017,
*Shiny*: Web application framework for R: R package version, v. 1, https://CRAN.R-project.org/package=shiny. - Clark, R.M., 1985, A FORTRAN program for constrained sequence-slotting based on minimum combined path length: Computers & Geosciences, v. 11, p. 605–617, https://doi.org/10.1016/0098-3004(85)90089-5.
- Cowan, D.R., and Myers, K.J., 1988, Surface gamma-ray logs: A correlation tool for frontier areas: Discussion: AAPG Bulletin, v. 72, p. 634–636.
- Elderfield, H., 1986, Strontium isotope stratigraphy: Palaeogeography, Palaeoclimatology, Palaeoecology, v. 57, p. 71–90, https://doi.org/10.1016/0031-0182(86)90007-6.
- Hagen, C.J., 2023,
*Align*: A Modified DTW Algorithm for Stratigraphic Time-Series Alignment: https://cran.r-project.org/package=align (accessed 30 June 2023). - Hagen, C.J., and Harper, J.T., 2023, Dynamic time warping to quantify age distortion in firn cores impacted by melt processes: Annals of Glaciology, https://doi.org/10.1017/aog.2023.52.
- Hagen, C.J., Reilly, B.T., Stoner, J.S., and Creveling, J.R., 2020, Dynamic time warping of palaeomagnetic secular variation data: Geophysical Journal International, v. 221, p. 706–721, https://doi.org/10.1093/gji/ggaa004.
- Hay, C.C., Creveling, J.R., Hagen, C.J., Maloof, A.C., and Huybers, P., 2019, A library of early Cambrian chemostratigraphic correlations from a reproducible algorithm: Geology, v. 47, p. 457–460, https://doi.org/10.1130/G46019.1.
- Kemple, W.G., Sadler, P.M., and Strauss, D.J., 1995, Extending Graphic Correlation to Many Dimensions: Stratigraphic Correlation as Constrained Optimization: https://archives.datapages.com/data/sepm_sp/SP53/Extending_Graphic_Correlation_to_Many_Dimensions.htm (accessed February 2023).
- Knoll, A.H., Hayes, J.M., Kaufman, A.J., Swett, K., and Lambert, I.B., 1986, Secular variation in carbon isotope ratios from Upper Proterozoic successions of Svalbard and East Greenland: Nature, v. 321, p. 832–838, https://doi.org/10.1038/321832a0.
- Lewis, K.W., Keeler, T.L., and Maloof, A.C., 2011, New software for plotting and analyzing stratigraphic data: Eos, v. 92, p. 37–38, https://doi.org/10.1029/2011EO050002.
- Li, M., Hinnov, L., and Kump, L., 2019,
*Acycle*: Time-series analysis software for paleoclimate research and education: Computers & Geosciences, v. 127, p. 12–22, https://doi.org/10.1016/j.cageo.2019.02.011. - Lisiecki, L.E., and Lisiecki, P.A., 2002, Application of dynamic programming to the correlation of paleoclimate records: Paleoceanography, v. 17, p. 1-1–1-12,https://doi.org/10.1029/2001PA000733.
- Lisiecki, L.E., and Raymo, M.E., 2005, A Pliocene-Pleistocene stack of 57 globally distributed benthic
δ
_{18}O records: Paleoceanography, v. 20, https://doi.org/10.1029/2004PA001071. - Løvlie, R., 1989, Paleomagnetic stratigraphy: A correlation method: Quaternary International, v. 1, p. 129–149, https://doi.org/10.1016/1040-6182(89)90012-8.
- McKinney, C.R., McCrea, J.M., Epstein, S., Allen, H.A., and Urey, H.C., 1950, Improvements in mass spectrometers for the measurement of small differences in isotope abundance ratios: The Review of Scientific Instruments, v. 21, p. 724–730, https://doi.org/10.1063/1.1745698.
- Meyers, S.R., 2014, Astrochron: An R package for astrochronology: https://cran.r-project.org/package=astrochron.
- Opdyke, N.D., 1972, Paleomagnetism of deep-sea cores: Reviews of Geophysics, v. 10, p. 213–249, https://doi.org/10.1029/RG010i001p00213.
- Sadler, P.M., 2004, Quantitative biostratigraphy: Achieving finer resolution in global correlation: Annual Review of Earth and Planetary Sciences, v. 32, p. 187–213, https://doi.org/10.1146/annurev.earth.32.101802.120428.
- Sadler, P.M., and Cooper, R.A., 2008, Best-fit intervals and consensus sequences,
*in*Harries, P.J., ed., High-Resolution Approaches in Stratigraphic Paleontology: Dordrecht, Netherlands, Springer, p. 49–94, https://doi.org/10.1007/978-1-4020-9053-0_2. - Sadler, P.M., Cooper, R.A., and Melchin, M., 2009, High-resolution, early Paleozoic (Ordovician-Silurian) time scales: Geological Society of America Bulletin, v. 121, p. 887–906, https://doi.org/10.1130/B26357.1.
- Sakoe, H., and Chiba, S., 1978, Dynamic programming algorithm optimization for spoken word recognition: IEEE Transactions on Acoustics, Speech, and Signal Processing, v. 26, p. 43–49, https://doi.org/10.1109/TASSP.1978.1163055.
- Sharpe, T., 2015, The birth of the geological map: Science, v. 347, p. 230–232, https://doi.org/10.1126/science.aaa2330.
- Team, R.C., 2022, R: A language and environment for statistical computing: R Foundation for Statistical Computing, https://www.R-project.org/.
- Tipper, J.C., 1988, Techniques for quantitative stratigraphic correlation: A review and annotated bibliography: Geological Magazine, v. 125, p. 475–494, https://doi.org/10.1017/S0016756800013224.
- Trampush, S.M., and Hajek, E.A., 2017, Preserving proxy records in dynamic landscapes: Modeling and examples from the Paleocene-Eocene Thermal Maximum: Geology, v. 45, p. 967–970, https://doi.org/10.1130/G39367.1.
- Veizer, J., and Compston, W., 1974,
^{87}Sr/^{86}Sr composition of seawater during the Phanerozoic: Geochimica et Cosmochimica Acta, v. 38, p. 1461–1484, https://doi.org/10.1016/0016-7037(74)90099-4.