retrack_wt_MC {WaverideR} | R Documentation |
Re-track cycles using a Monte-Carlo simulation
Description
When analyzing multi-proxy records an age-model can be created for each proxy. These age-models can be in general agreement but might also indicate conflicting deposition rates. Picking one age-model out of the all multi-proxy age-models and stating that, that age-model is the best overlooks the information contained within the other proxies and hence a degree of error remains the age-model exists.To combine the multiple age-models all the age models can be averaged out and the uncertainty can be calculated by means of the standard deviation. The result is an age-model which takes into account all the age-models from the proxy records. The averaged out age-model does not take into account any small user errors during the creation of the individual age-models nor does the averaging take into account the differences between the age-models and how the initial age-model of a certain proxy might be off in certain intervals. the link[WaverideR]retrack_wt_MC mitigates these problems by re-tracking periods of astronomical cycles in the wavelet spectra. The re-tracking is based on the information provided by the age-models constructed from the different proxy records. First a synthetic tracked curve is created by adding up fractions (0-1) of the tracked periods of the different proxy records. This synthetic curve is then used to re-track the period/spectral peaks of an astronomical cycle in a randomly select wavelet scalogram. This process is repeated x times. The result x tracked curves which take into account all the original age-models. From the re-tracked curves one can calculate the mean period and the standard deviation. The resulting standard deviation is a good indicator of the quality of the imprint of of astronomical cycles in the proxy records. A small standard deviation indicates that given the input of the different tracked cycles similar periods keep on being tracked indicating the an astronomical is well recorded in the proxy records and as such the age-model is very reliable in set interval. A high standard deviation on the other hand means that the tracking results in vastly different periods of the tracked astronomical cycle, as such the quality of the imprint of the astronomical cycle proxy records is poor and hence the age-model is less-reliable in this interval.
Usage
retrack_wt_MC(
wt_list = NULL,
data_track = NULL,
x_axis = NULL,
nr_simulations = 50,
seed_nr = 1337,
verbose = FALSE,
genplot = FALSE,
keep_editable = FALSE,
create_GIF = FALSE,
plot_GIF = FALSE,
width_plt = 600,
height_plt = 450,
period_up = 1.5,
period_down = 0.5,
plot.COI = TRUE,
n.levels = 100,
palette_name = "rainbow",
color_brewer = "grDevices",
periodlab = "Period (metres)",
x_lab = "depth (metres)",
add_avg = FALSE,
time_dir = TRUE,
file_name = NULL,
run_multicore = FALSE,
output = 1,
n_imgs = 50,
plot_horizontal = TRUE,
empty_folder = FALSE
)
Arguments
wt_list |
a list containing all the wavelet objects created using the link[WaverideR]analyze_wavelet wavelet function To create a list use the link[base]list function |
data_track |
a matrix containing all the tracked period values. To create the matrix use the link[base]cbind function and only add the tracked period values so do not add the depth axis. When combining the tracked period values make sure that all curves have a similar depth spacing. |
x_axis |
The x-axis of the tracked period values |
nr_simulations |
The number of Monte-Carlo simulations which are to be
conducted |
seed_nr |
The seed number of the Monte-Carlo simulations.
|
verbose |
Print text when running the function |
genplot |
Plot a plot with the mean period and + and - standard
deviation |
keep_editable |
Keep option to add extra features after plotting
|
create_GIF |
Create a GIF with the re-tracked lines in the wavelet
scalograms |
plot_GIF |
Plot a GIF with the re-tracked lines in the wavelet
scalograms |
width_plt |
width of the re-tracked plot |
height_plt |
width of the re-tracked plot |
period_up |
The period_up parameter is the factor with which the linear interpolated tracked_curve
curve is multiplied by. This linear interpolated tracked_curve multiplied by the period_up factor is
the upper boundary which is used for detecting the spectral peak nearest to the linear interpolated tracked_curve
curve. If no spectral peak is detected within the specified boundary the interpolated
value is used instead. between spectral peaks |
period_down |
The period_down parameter is the factor with which the linear interpolated tracked_curve
curve is multiplied by. This linear interpolated tracked_curve multiplied by the period_down factor is
the lower boundary which is used for detecting the spectral peak nearest to the linear interpolated tracked_curve
curve. If no spectral peak is detected within the specified boundary the interpolated
value is used instead. between spectral peaks |
plot.COI |
Option to plot the cone of influence |
n.levels |
Number of color levels |
palette_name |
Name of the color palette which is used for plotting.
The color palettes than can be chosen depends on which the R package is specified in
the color_brewer parameter. The included R packages from which palettes can be chosen
from are; the 'RColorBrewer', 'grDevices', 'ColorRamps' and 'Viridis' R packages.
There are many options to choose from so please
read the documentation of these packages |
color_brewer |
Name of the R package from which the color palette is chosen from.
The included R packages from which palettes can be chosen
are; the RColorBrewer, grDevices, ColorRamps and Viridis R packages.
There are many options to choose from so please
read the documentation of these packages. " |
periodlab |
Label for the y-axis |
x_lab |
Label for the x-axis |
add_avg |
Plot the average wavelet spectral power to the side of the wavelet |
time_dir |
The direction of the proxy record which is assumed for tuning if time increases with increasing depth/time values
(e.g. bore hole data which gets older with increasing depth ) then time_dir should be set to TRUE
if time decreases with depth/time values (eg stratospheric logs where 0m is the bottom of the section)
then time_dir should be set to FALSE |
file_name |
Name of the images created using this function. Each file gets a number added to it which corresponds to which number of simulation it was the files are saved in a folder with a similar name created in the current directory |
run_multicore |
Run function using multiple cores |
output |
#'If output = 1, output is a list which contain 3 objects.
object 1 is a matrix with the x-axis and the mean tracked frequency and
standard deviation. #'object 2 is a matrix with all the tracked periods.
Object 3 is a GIF in which #'all the tracked periods are plotted.
If output = 2, output is a list which contain 2 objects. object 1 is a matrix
with the x-axis and the mean tracked frequency and standard deviation.
object 2 is a matrix with all the tracked periods.
If output = 3, output is a list which contain 2 objects. object 1 is a matrix
with the x-axis and the mean tracked frequency and standard deviation.
Object 2 is a GIF in which
all the tracked periods are plotted.
If output = 4, output is a list which contain 3 objects. Object 1 is a matrix
with all the tracked periods. Object 2 is a GIF in which all the tracked
periods are plotted.
If output = 4 output is a list which contain 3 objects. Object 1 is a matrix
with all the tracked periods. Object 2 is a GIF in which all the tracked
periods are plotted.
If output = 5 a matrix with the x-axis and the mean tracked frequency and
standard deviation is returned.
If output = 6, a matrix with all the tracked periods is returned.
If output = 7, a GIF in which all the tracked periods are plotted is returned.
|
n_imgs |
Number images used in creating the GIF a high number of images
is computationally intensive and will create a large sized GIF |
plot_horizontal |
plot the wavelet horizontal or vertical eg y axis
is depth or y axis power |
empty_folder |
Empty the folder in which the images created using
this function are saved |
Value
The output depends on the output setting If genplot = TRUE a plot will be generated in which the mean period and standard deviation is plotted if plot_GIF = TRUE a GIF with n number of n_imgs will be plotted in which the retraced curve is plotted in a wavelet scalogram If output = 1, output is a list which contain 3 objects. object 1 is a matrix with the x-axis and the mean tracked frequency and standard deviation. object 2 is a matrix with all the tracked periods. Object 3 is a GIF in which all the tracked periods are plotted. If output = 2, output is a list which contain 2 objects. object 1 is a matrix with the x-axis and the mean tracked frequency and standard deviation. object 2 is a matrix with all the tracked periods. If output = 3, output is a list which contain 2 objects. object 1 is a matrix with the x-axis and the mean tracked frequency and standard deviation. Object 2 is a GIF in which all the tracked periods are plotted. If output = 4, output is a list which contain 3 objects. Object 1 is a matrix with all the tracked periods. Object 2 is a GIF in which all the tracked periods are plotted. If output = 4 output is a list which contain 3 objects. Object 1 is a matrix with all the tracked periods. Object 2 is a GIF in which all the tracked periods are plotted. If output = 5 a matrix with the x-axis and the mean tracked period and standard deviation is returned. If output = 6, a matrix with all the tracked periods is returned. If output = 7, a GIF in which all the tracked periods are plotted is returned
Examples
# Re-track the 110kyr eccentricity cycle in the wavelet scalogram
# from the XRF record of the Bisciaro data set of Arts (2014)
Bisciaro_al <- Bisciaro_XRF[, c(1, 61)]
Bisciaro_al <- astrochron::sortNave(Bisciaro_al,verbose=FALSE,genplot=FALSE)
Bisciaro_al <- astrochron::linterp(Bisciaro_al, dt = 0.01,verbose=FALSE,genplot=FALSE)
Bisciaro_al <- Bisciaro_al[Bisciaro_al[, 1] > 2, ]
Bisciaro_al_wt <-
analyze_wavelet(
data = Bisciaro_al,
dj = 1 /200 ,
lowerPeriod = 0.01,
upperPeriod = 50,
verbose = FALSE,
omega_nr = 8
)
# Bisciaro_al_wt_track <-
# track_period_wavelet(
# astro_cycle = 110,
# wavelet = Bisciaro_al_wt,
# n.levels = 100,
# periodlab = "Period (metres)",
# x_lab = "depth (metres)"
# )
#
# Bisciaro_al_wt_track <- completed_series(
# wavelet = Bisciaro_al_wt,
# tracked_curve = Bisciaro_al_wt_track,
# period_up = 1.2,
# period_down = 0.8,
# extrapolate = TRUE,
# genplot = FALSE,
# keep_editable = FALSE
# )
#
# Bisciaro_al_wt_track <-
# loess_auto(
# time_series = Bisciaro_al_wt_track,
# genplot = FALSE,
# print_span = FALSE,
# keep_editable = FALSE
# )
Bisciaro_ca <- Bisciaro_XRF[, c(1, 55)]
Bisciaro_ca <- astrochron::sortNave(Bisciaro_ca,verbose=FALSE,genplot=FALSE)
Bisciaro_ca <- astrochron::linterp(Bisciaro_ca, dt = 0.01,verbose=FALSE,genplot=FALSE)
Bisciaro_ca <- Bisciaro_ca[Bisciaro_ca[, 1] > 2, ]
Bisciaro_ca_wt <-
analyze_wavelet(
data = Bisciaro_ca,
dj = 1 /200 ,
lowerPeriod = 0.01,
upperPeriod = 50,
verbose = FALSE,
omega_nr = 8
)
# Bisciaro_ca_wt_track <-
# track_period_wavelet(
# astro_cycle = 110,
# wavelet = Bisciaro_ca_wt,
# n.levels = 100,
# periodlab = "Period (metres)",
# x_lab = "depth (metres)"
# )
#
# Bisciaro_ca_wt_track <- completed_series(
# wavelet = Bisciaro_ca_wt,
# tracked_curve = Bisciaro_ca_wt_track,
# period_up = 1.2,
# period_down = 0.8,
# extrapolate = TRUE,
# genplot = FALSE,
# keep_editable = FALSE
# )
#
# Bisciaro_ca_wt_track <-
# loess_auto(
# time_series = Bisciaro_ca_wt_track,
# genplot = FALSE,
# print_span = FALSE,
# keep_editable = FALSE)
Bisciaro_sial <- Bisciaro_XRF[,c(1,64)]
Bisciaro_sial <- astrochron::sortNave(Bisciaro_sial,verbose=FALSE,genplot=FALSE)
Bisciaro_sial <- astrochron::linterp(Bisciaro_sial, dt = 0.01,verbose=FALSE,genplot=FALSE)
Bisciaro_sial <- Bisciaro_sial[Bisciaro_sial[, 1] > 2, ]
Bisciaro_sial_wt <-
analyze_wavelet(
data = Bisciaro_sial,
dj = 1 /200 ,
lowerPeriod = 0.01,
upperPeriod = 50,
verbose = FALSE,
omega_nr = 8
)
# Bisciaro_sial_wt_track <-
# track_period_wavelet(
# astro_cycle = 110,
# wavelet = Bisciaro_sial_wt,
# n.levels = 100,
# periodlab = "Period (metres)",
# x_lab = "depth (metres)"
# )
#
#
# Bisciaro_sial_wt_track <- completed_series(
# wavelet = Bisciaro_sial_wt,
# tracked_curve = Bisciaro_sial_wt_track,
# period_up = 1.2,
# period_down = 0.8,
# extrapolate = TRUE,
# genplot = FALSE,
# keep_editable = FALSE
# )
#
# Bisciaro_sial_wt_track <-
# loess_auto(
# time_series = Bisciaro_sial_wt_track,
# genplot = FALSE,
# print_span = FALSE,
# keep_editable = FALSE
# )
Bisciaro_Mn <- Bisciaro_XRF[,c(1,46)]
Bisciaro_Mn <- astrochron::sortNave(Bisciaro_Mn,verbose=FALSE,genplot=FALSE)
Bisciaro_Mn <- astrochron::linterp(Bisciaro_Mn, dt = 0.01,verbose=FALSE,genplot=FALSE)
Bisciaro_Mn <- Bisciaro_Mn[Bisciaro_Mn[, 1] > 2, ]
Bisciaro_Mn_wt <-
analyze_wavelet(
data = Bisciaro_Mn,
dj = 1 /200 ,
lowerPeriod = 0.01,
upperPeriod = 50,
verbose = FALSE,
omega_nr = 8
)
# Bisciaro_Mn_wt_track <-
# track_period_wavelet(
# astro_cycle = 110,
# wavelet = Bisciaro_Mn_wt,
# n.levels = 100,
# periodlab = "Period (metres)",
# x_lab = "depth (metres)"
# )
#
#
# Bisciaro_Mn_wt_track <- completed_series(
# wavelet = Bisciaro_Mn_wt,
# tracked_curve = Bisciaro_Mn_wt_track,
# period_up = 1.2,
# period_down = 0.8,
# extrapolate = TRUE,
# genplot = FALSE,
# keep_editable = FALSE
# )
# Bisciaro_Mn_wt_track <-
# loess_auto(
# time_series = Bisciaro_Mn_wt_track,
# genplot = FALSE,
# print_span = FALSE,
# keep_editable = FALSE
# )
Bisciaro_Mg <- Bisciaro_XRF[,c(1,71)]
Bisciaro_Mg <- astrochron::sortNave(Bisciaro_Mg,verbose=FALSE,genplot=FALSE)
Bisciaro_Mg <- astrochron::linterp(Bisciaro_Mg, dt = 0.01,verbose=FALSE,genplot=FALSE)
Bisciaro_Mg <- Bisciaro_Mg[Bisciaro_Mg[, 1] > 2, ]
Bisciaro_Mg_wt <-
analyze_wavelet(
data = Bisciaro_Mg,
dj = 1 /200 ,
lowerPeriod = 0.01,
upperPeriod = 50,
verbose = FALSE,
omega_nr = 8
)
# Bisciaro_Mg_wt_track <-
# track_period_wavelet(
# astro_cycle = 110,
# wavelet = Bisciaro_Mg_wt,
# n.levels = 100,
# periodlab = "Period (metres)",
# x_lab = "depth (metres)"
# )
#
#
# Bisciaro_Mg_wt_track <- completed_series(
# wavelet = Bisciaro_Mg_wt,
# tracked_curve = Bisciaro_Mg_wt_track,
# period_up = 1.2,
# period_down = 0.8,
# extrapolate = TRUE,
# genplot = FALSE,
# keep_editable = FALSE
# )
#
# Bisciaro_Mg_wt_track <-
# loess_auto(
# time_series = Bisciaro_Mg_wt_track,
# genplot = FALSE,
# print_span = FALSE,
# keep_editable = FALSE)
wt_list_bisc <- list(Bisciaro_al_wt,
Bisciaro_ca_wt,
Bisciaro_sial_wt,
Bisciaro_Mn_wt,
Bisciaro_Mg_wt)
#Instead of tracking, the tracked solution data sets Bisciaro_al_wt_track,
#Bisciaro_ca_wt_track, Bisciaro_sial_wt_track, Bisciaro_Mn_wt_track,
# Bisciaro_Mn_wt_track and Bisciaro_Mg_wt_track are used
data_track_bisc <- cbind(Bisciaro_al_wt_track[,2],
Bisciaro_ca_wt_track[,2],
Bisciaro_sial_wt_track[,2],
Bisciaro_Mn_wt_track[,2],
Bisciaro_Mg_wt_track[,2])
x_axis_bisc <- Bisciaro_al_wt_track[,1]
bisc_retrack <- retrack_wt_MC(wt_list = wt_list_bisc,
data_track = data_track_bisc,
x_axis = x_axis_bisc,
nr_simulations = 20,
seed_nr = 1337,
verbose = FALSE,
genplot = FALSE,
keep_editable = FALSE,
create_GIF = FALSE,
plot_GIF = FALSE,
width_plt = 600,
height_plt = 450,
period_up = 1.5,
period_down = 0.5,
plot.COI = TRUE,
n.levels = 100,
palette_name = "rainbow",
color_brewer = "grDevices",
periodlab = "Period (metres)",
x_lab = "depth (metres)",
add_avg = FALSE,
time_dir = TRUE,
file_name = NULL,
run_multicore = FALSE,
output = 1,
n_imgs = 50,
plot_horizontal = TRUE,
empty_folder = FALSE)