-
Notifications
You must be signed in to change notification settings - Fork 2
/
004-age-depth-modelling.R
80 lines (62 loc) · 1.78 KB
/
004-age-depth-modelling.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# from https://fishandwhistle.net/post/2018/comparing-approaches-to-age-depth-modelling-in-r/
# https://journals.sagepub.com/doi/full/10.1177/0959683616675939
# setup, skip to next section to run
library(tidyverse)
dates <- tribble(
~sample_id, ~depth, ~age_14C, ~age_error,
"LL082011-C2-39", 94, 9148, 49,
"UOC-0844", 70.5, 8582, 28,
"LL082011-C2-87", 46, 4396, 55,
"UOC-0845", 37.5, 575, 18,
"LL082011-C2-124", 9, 623, 34
)
dates
write_csv(dates, "data/dates_for_bacon.csv")
#--------------------------------------------
library(rbacon)
library(tidyverse)
dates <- read_csv("data/dates_for_bacon.csv")
# has a peculiar need to read data in from a CSV file
# so we create a directory to store that, and the
# output that it generates
dir.create("data/bacon-data/LL-PC2", recursive = TRUE)
# and needs special column names
dates %>%
select(labID = sample_id,
age = age_14C,
error = age_error,
depth) %>%
arrange(depth) %>%
write_csv("data/bacon-data/LL-PC2/LL-PC2.csv")
# this takes a few moments
Bacon(core = "LL-PC2",
coredir = "data/bacon-data",
ask = FALSE,
plot.pdf = FALSE,
thick = 2,
acc.mean = 100)
# first plot
calib.plot(rotate.axes = TRUE,
rev.yr = TRUE)
# more detailed multi-panel plot
agedepth(rotate.axes = TRUE,
rev.yr = TRUE)
#--------------------------------------------
library(Bchron)
# need to be in a certain order for Bchron
dates_rev <-
dates %>%
arrange(age_14C)
result <-
Bchronology(
ages = dates_rev$age_14C,
ageSds = dates_rev$age_error,
positions = dates_rev$depth,
ids = dates_rev$sample_id,
positionThicknesses = rep(1, nrow(dates))
)
plot(result,
dateHeight = 20,
chronCol = "grey80",
chronTransparency = 0.3
)