Wavelet Analysis: A Tutorial
Woodburn High School in the northern Willamette Valley, Oregon, contains evidence of an extensive peat bog as well as evidence of extinct Pleistocene megafauna. In October of 2015, sediment cores were extracted from the site in order to better understand the underlying sediment at the site, and find the sediment that is of the right age and type to possibly contain evidence of human occupation.
Aerial photo of the study area, with sample locations marked with orange dots.
In order to further explore the project, a better understanding of wavelet analysis must be established. By testing a sample of geochemical data extracted from a core.
The Question:
Is wavelet analysis an appropriate tool for geochemically identifying stratigraphic breaks in sediment cores?
The Tools:
To conduct this analysis, I used R as well as the R ‘WaveletComp’ package for the wavelet analysis, and ‘ggplot2’ in order to graph the geochemical data.
‘WaveletComp” takes any form of continuous data, typically time-series data, spatial data in this case, and uses a small waveform called a wavelet to run variance calculations along the dataset. The resulting output is a power diagram, which shows (in red) the locations along the dataset where there is a great change in variance. A cross-wavelet power diagram can also be generated. This can indicate when two different variables are experiencing rises and/or drops at the same time.
Example of a wavelet.
There are two equations used when generating a wavelet power diagram…
The above equation uses the dataset to calculate the appropriate size of the wavelet according to the number of points in the dataset.
The above equation uses the wavelet to run variance calculations across the dataset and output the power diagram.
The Steps:
After the appropriate package is loaded into R, and the dataset is uploaded, and the generation of the power diagram and cross-power diagram consists of just a small block of code…
Code snippet for the power diagram:
Fewhs010101 = analyze.wavelet(WHS010101, “Fe”, loess.span = 0, # Detrending (Kept defaults) dt = 1, #Time series (Kept defaults) dj = 1/250 # Resolution along period axis (kept defaults) make.pval = T, # Draws white lines that indicate significance (true or false) n.sim = 10 # number of simulations wt.image(Fewhs010101, color.key = “quantile”, n.levels = 250, legend.params = list(lab = “WHS 010101 Wavelet Power Fe”, mar = 4.7))
|
Code Snippet for a cross-power diagram:
AlFewhs010101 = analyze.coherency(WHS010101, c(“Al”,”Fe”), loess.span = 0, dt = 1, dj = 1/100, make.pval = T, n.sim = 10)
wc.image(AlFewhs010101, n.levels = 250, legend.params = list(lab = “WHS 010101 cross-wavelet power levels – Al/Fe”))
|
The output of the power diagram was then compared to line graphs generated using the ggplot2 package.
The Results:
The results were quite interesting, as you can clearly see three different geochemical breaks, as illustrated with the three red plumes that are rising from the bottom of the diagram. The color red indicates that at that particular “time,” there is a significant edge or change in the waveform. This is illustrated by comparing to the line graph that is below. There are “red plumes” present at all of the significant changes in the waveforms on the graph. This tells us that these locations along the transect should be considered “hotspots” for stratigraphic change.
Wavelet power diagram of Aluminum.
Example of graphed aluminum and Sulphur data for the core.
Was this useful?
For my project, the analysis seemed to show that it is very possible to spot major changes in geochemistry across a transect. This will be further explored in my forthcoming final analysis post.
As for other projects, this method could be used to spot unseen patterns in the changes of sea surface temperature over time, or changes in frequencies of oxygen isotopes, or any other data that is presented in a time-series or in equidistant measures across a landscape.