View source: R/curve2time_unc_anchor.R
curve2time_unc_anchor | R Documentation |
Converts the re-tracked curve results from
retrack_wt_MC
function to a depth time space using an anchor date
while also taking into account the uncertainty of the tracked astronomical cycle
curve2time_unc_anchor(
age_constraint = NULL,
tracked_cycle_curve = NULL,
tracked_cycle_period = NULL,
tracked_cycle_period_unc = NULL,
tracked_cycle_period_unc_dist = "n",
n_simulations = 20,
gap_constraints = NULL,
proxy_data = NULL,
cycles_check = NULL,
uncer_cycles_check = NULL,
max_runs = 1000,
run_multicore = FALSE,
verbose = FALSE,
genplot = FALSE,
keep_nr = 2,
keep_all_time_curves = FALSE,
dj = 1/200,
lowerPeriod = 1,
upperPeriod = 4600,
omega_nr = 6,
seed_nr = 1337,
dir = TRUE
)
age_constraint |
age constrains for the modelling run Input should be a data frame with 7 columns, the first columns are the ID names the second column are the ages (usually in kyr) the third column is the uncertainty (usually in kyr) given as the fourth column is the distribution which is either "n" for a normal distribution or "u" for a uniform distribution. The fifth column is the location in the depth domain of the age constraint. the sixth column is the location/thickness uncertainty of the age_constraint in the depth domain. The seventh column is the uncertainty distribution of the age_constrain in the depth domain |
tracked_cycle_curve |
Curve of the cycle tracked using the
|
tracked_cycle_period |
Period of the tracked curve in kyr. |
tracked_cycle_period_unc |
uncertainty in the period of the tracked cycle |
tracked_cycle_period_unc_dist |
distribution of the uncertainty of the
tracked cycle value need to be either "u" for uniform distribution or
"n" for normal distribution |
n_simulations |
number of time series to be modeled |
gap_constraints |
gap parameters for the modelling run input should be a data frame with |
proxy_data |
proxy data to be tune and check preservation of astronomical cycles |
cycles_check |
astronomical cycles which are checked for their presence after tuning |
uncer_cycles_check |
uncertainty of astronomical cycles to be check for after tunning |
max_runs |
maximum runs before one of the age constraints is dropped |
run_multicore |
Run function using multiple cores |
verbose |
Print text |
genplot |
generate plot code |
keep_nr |
minimal number of age constraints to be kept |
keep_all_time_curves |
weather to keep all the generated age curves
including the ones rejected from the modelling run |
dj |
Spacing between successive scales. The CWT analyses analyses the signal using successive periods
which increase by the power of 2 (e.g.2^0=1,2^1=2,2^2=4,2^3=8,2^4=16). To have more resolution
in-between these steps the dj parameter exists, the dj parameter specifies how many extra steps/spacing in-between
the power of 2 scaled CWT is added. The amount of steps is 1/x with a higher x indicating a smaller spacing.
Increasing the increases the computational time of the CWT |
lowerPeriod |
Lowest period to be analyzed |
upperPeriod |
Upper period to be analyzed |
omega_nr |
Number of cycles contained within the Morlet wavelet |
seed_nr |
The seed number of the Monte-Carlo simulations.
|
dir |
time direction of tuning e.g. does time increase or decrease with depth |
The output is a list of 3 or 4 elements
if keep_all_time_curves is set to TRUE
then the list consist of the x-axis, all the fitted curves in a matrix format,
the astrochronologically fitted age of the anchor, all the generated depth time curves
if keep_all_time_curves is set to TRUE then the list consists of the x-axis,
all the fitted curves in a matrix format and the astrochronologically fitted age of the anchor
If genplot=TRUE
then 3 plots stacked on top of each other will be plotted.
Plot 1: the original data set.
Plot 2: the depth time plot.
Plot 3: the data set in the time domain.
#'
Part of the code is based on the sedrate2time function of the 'astrochron' R package
Routines for astrochronologic testing, astronomical time scale construction, and time series analysis <doi:10.1016/j.earscirev.2018.11.015>
## Not run:
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)
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 = 500,
seed_nr = 1337,
verbose = TRUE,
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 = "TEST",
run_multicore = TRUE,
output = 5,
n_imgs = 50,
plot_horizontal = TRUE,
empty_folder = FALSE
)
proxy_list_bisc <- list(Bisciaro_al,
Bisciaro_ca,
Bisciaro_sial,
Bisciaro_Mn,
Bisciaro_Mg)
id <- c("CCT18_322", "CCT18_315", "CCT18_311")
ages <- c(20158, 20575, 20857)
ageSds <- c(28, 40, 34)
ages_unc_dist <- c("n", "n", "n")
position <- c(13.3, 7.25, 3.2)
anchor_thick <- c(0.2, 0.1, 0.1)
anchor_thick_unc_dist <- c("u", "u", "u")
ash_Bisc <-
as.data.frame(
cbind(
id,
ages,
ageSds,
ages_unc_dist,
position,
anchor_thick,
anchor_thick_unc_dist
)
)
gap_dur = c(10, 20)
gap_unc = c(3, 10)
gap_depth = c(2.5, 9)
gap_unc_dist = c("n", "n")
gap_constraints_Bisc <-
as.data.frame(cbind(gap_dur, gap_unc, gap_depth, gap_unc_dist))
cycles_checks <- c(110,40,22)
uncer_cycles_checks <- c(20,5,7)
curve2time_unc_anchor_res <-
curve2time_unc_anchor(
age_constraint = ash_Bisc,
tracked_cycle_curve = bisc_retrack,
tracked_cycle_period = 110,
tracked_cycle_period_unc = ((135 - 110) + (110 - 95)) / 2,
tracked_cycle_period_unc_dist = "n",
n_simulations = 20,
gap_constraints = gap_constraints_Bisc,
proxy_data = proxy_list_bisc,
cycles_check = NULL,
uncer_cycles_check = NULL,
cycles_check = cycles_checks,
uncer_cycles_check = uncer_cycles_checks,
max_runs = 1000,
run_multicore = FALSE,
verbose = FALSE,
genplot = FALSE,
keep_nr = 2,
keep_all_time_curves = FALSE,
dj = 1/200,
lowerPeriod =1,
upperPeriod =2500,
omega_nr = 6,
seed_nr=1337,
dir=TRUE
)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.