Chron.intcal13
— Constantintcal13
NamedTuple with 4 fields:
dt = Int64 1
Age_Calendar = StepRange{Int64, Int64} 1:1:50000
Age_sigma = Vector{Float64}(50000,) [8.0 ... 274.0]
Age_14C = Vector{Float64}(50000,) [196.8 ... 46401.0]
The IntCal13 radiocarbon calibration curve
Reimer PJ, Bard E, Bayliss A, Beck JW, Blackwell PG, Bronk Ramsey C, Buck CE, Cheng H, Edwards RL, Friedrich M, Grootes PM, Guilderson TP, Haflidason H, , Hajdas I, Hatté C, Heaton TJ, Hogg AG, Hughen KA, Kaiser KF, Kromer B, Manning SW, Niu M, Reimer RW, Richards DA, Scott EM, Southon JR, Turney CSM, van der Plicht J. (2013) "IntCal13 and MARINE13 radiocarbon age calibration curves 0-50000 years calBP". Radiocarbon 55(4). doi: 10.2458/azujsrc.55.16947
Chron.intcal20
— Constantintcal20
NamedTuple with 4 fields:
dt = Int64 1
Age_Calendar = StepRange{Int64, Int64} 1:1:55000
Age_sigma = Vector{Float64}(55000,) [11.0 ... 1024.0]
Age_14C = Vector{Float64}(55000,) [197.0 ... 50100.0]
The IntCal20 northern hemisphere radiocarbon calibration curve.
Reimer P, Austin WEN, Bard E, Bayliss A, Blackwell PG, Bronk Ramsey C, Butzin M, Cheng H, Edwards RL, Friedrich M, Grootes PM, Guilderson TP, Hajdas I, Heaton TJ, Hogg AG, Hughen KA, Kromer B, Manning SW, Muscheler R, Palmer JG, Pearson C, van der Plicht J, Reimer RW, Richards DA, Scott EM, Southon JR, Turney CSM, Wacker L, Adolphi F, Büntgen U, Capano M, Fahrni S, Fogtmann-Schulz A, Friedrich R, Köhler P, Kudsk S, Miyake F, Olsen J, Reinig F, Sakamoto M, Sookdeo A, Talamo S. (2020). "The IntCal20 Northern Hemisphere radiocarbon age calibration curve (0-55 cal kBP)". Radiocarbon 62. doi: 10.1017/RDC.2020.41.
Chron.marine20
— ConstantThe Marine20 radiocarbon calibration curve.
Heaton TJ, Köhler P, Butzin M, et al. (2020) "Marine20—The Marine Radiocarbon Age Calibration Curve (0–55,000 cal BP)" Radiocarbon 62(4):779-820. doi: 10.1017/RDC.2020.68
Chron.shcal20
— Constantshcal20
NamedTuple with 4 fields:
dt = Int64 1
Age_Calendar = StepRange{Int64, Int64} 1:1:55000
Age_sigma = Vector{Float64}(55000,) [10.0 ... 1008.0]
Age_14C = Vector{Float64}(55000,) [171.0 ... 50132.0]
The SHCal20 southern hemisphere radiocarbon calibration curve.
Hogg AG, Heaton TJ, Hua Q, Palmer JG, Turney CSM, Southon J, Bayliss A, Blackwell PG, Boswijk G, Bronk Ramsey C, Pearson C, Petchey F, Reimer P, Reimer R, Wacker L. (2020). "SHCal20 Southern Hemisphere calibration, 0-55,000 years cal BP". Radiocarbon 62. doi: 10.1017/RDC.2020.59
Chron.BilinearExponential
— TypeBilinearExponential(loc, scl, shp, skw)
BilinearExponential(p::AbstractVector)
struct BilinearExponential{T<:Real} <: ContinuousUnivariateDistribution
A::T
loc::T
scl::T
shp::T
skw::T
end
A five-parameter pseudo-distribution which can be used to approximate various asymmetric probability distributions found in geochronology (including as a result of Bayesian eruption age estimation).
This "bilinear exponential" distribution, as the name might suggest, is defined as an exponential function with two log-linear segments, joined by an arctangent sigmoid:
\[ℯ^{A} * ℯ^{v*xₛ*shp*skw - (1-v)*xₛ*shp/skw}\]
where
\[v = 1/2 - atan(xₛ)/π\]
is a sigmoid, positive on the left-hand side, and
\[xₛ = (x - loc)/scl\]
is x
scaled by the location parameter loc
and scale parameter scl
, In addition to the scale parameter scl
, the additional shape parameters shp
and skw
(which control the sharpness and skew of the resulting distribution, respectively), are all three required to be nonnegative.
If only four parameters (loc, scl, shp, skw)
are specified, the normalization constant A
will be calculated such that the resulting distribution is normalized.
Chron.BootstrapCrystDistributionKDE
— MethodBootstrapCrystDistributionKDE(smpl::ChronAgeData; cutoff=-0.05, [tpbloss=0])
Bootstrap an estimate of the pre-eruptive (or pre-depositional) mineral crystallization distribution shape from a Chron.ChronAgeData object containing data for several samples, using a kernel density estimate of stacked sample data.
If the samples provided as csv files in smpl.Path
take the five-column form of U-Pb isotopic data files, the ages and uncertainties will be those of upper intercepts given a time of Pb-loss optionally specified as tpbloss
.
Uncertainties will be treated as one or two-sigma absolute based on the value of smpl.inputSigmaLevel
.
Examples
BootstrappedDistribution = BootstrapCrystDistributionKDE(smpl)
Chron.BootstrapCrystDistributionKDE
— MethodBootstrapCrystDistributionKDE(data::AbstractArray, [sigma::AbstractArray]; cutoff=-0.05)
Bootstrap an estimate of the pre-eruptive (or pre-depositional) mineral crystallization distribution shape from a 1- or 2-d array of sample ages (one row per sample, one column per datum, padded with NaNs as needed) and an equivalent-size array of one-sigma uncertainties, using a kernel density estimate of stacked sample data.
Examples
# Bootstrap crystallization distribution for a synthetic dataset with ages
# [1,2,3,...10] Ma and uncertainties of 1 Ma each
BootstrappedDistribution = BootstrapCrystDistributionKDE(1:10, ones(10))
Chron.StratMetropolis
— FunctionStratMetropolis(smpl::ChronAgeData, [hiatus::HiatusData,] config::StratAgeModelConfiguration)
StratMetropolis(smpl::GeneralAgeData, [hiatus::HiatusData,] config::StratAgeModelConfiguration)
Runs the main Chron.jl age-depth model routine for a stratigraphic set of samples defined by sample heights and simple Gaussian age constraints in the smpl
struct, and an age-depth model configuration defined by the config
struct.
Optionally, if a hiatus
struct is provided, the model will additionally incorporate information about the durations of known hiatuses at the specified model heights.
Examples:
(mdl, agedist, lldist) = StratMetropolis(smpl, config)
(mdl, agedist, hiatusdist, lldist) = StratMetropolis(smpl, hiatus, config)
Chron.StratMetropolis14C
— MethodStratMetropolis14C(smpl::ChronAgeData, [hiatus::HiatusData,] config::StratAgeModelConfiguration)
Runs the main Chron.jl age-depth model routine for a stratigraphic set of samples defined by sample heights and interpolated radiocarbon age constraints in the smpl
struct, and an age-depth model configuration defined by the config
struct.
Optionally, if a hiatus
struct is provided, the model will additionally incorporate information about the durations of known hiatuses at the specified model heights.
Examples:
(mdl, agedist, lldist) = StratMetropolis14C(smpl, config)
(mdl, agedist, hiatusdist, lldist) = StratMetropolis14C(smpl, hiatus, config)
Chron.StratMetropolisDist
— FunctionStratMetropolisDist(smpl::ChronAgeData, [hiatus::HiatusData,] config::StratAgeModelConfiguration)
Runs the main Chron.jl age-depth model routine for a stratigraphic set of samples defined by sample heights and fitted asymmetric age distributions (BilinearExponential
) in the smpl
struct, and an age-depth model configuration defined by the config
struct.
Optionally, if a hiatus
struct is provided, the model will additionally incorporate information about the durations of known hiatuses at the specified model heights.
Examples:
(mdl, agedist, lldist) = StratMetropolisDist(smpl, config)
(mdl, agedist, hiatusdist, lldist) = StratMetropolisDist(smpl, hiatus, config)
Chron.screen_outliers
— Methodscreen_outliers(smpl::ChronAgeData; agemin=0.0, agemax=Inf, maxgap=100, make_plots=true, discordancemin=0, discordancemax=100)
Screen outliers from the ChronAgeData
struct smpl
(making new data files in a screened
subdirectory within smpl.Path
) rejecting samples that either
a) Are older than agemax
or younger than agemin
b) Are on the old side of a gap of more than maxgap/N
sigma (e.g., xenocrysts)
If make_plots
is true
, plots showing screening results will be made in smpl.Path/screened
.
If the underlying data is in the form of U-Pb ratios, the discordancemin
and discordancemax
keyword arguments may also be used for additional screening.
Chron.tMinDistMetropolis
— MethodtMinDistMetropolis(smpl::ChronAgeData, nsteps::Int, burnin::Int, dist::Array{Float64})
Calculate the minimum limiting (eruption/deposition) age of each sample defined in the smpl
struct, using the Isoplot.metropolis_min
function, assuming mineral ages for each sample are drawn from the source distribution dist
. Fits a BilinearExponential
function to the resulting stationary distribution for each sample and stores the results in smpl.Params
for use by the StratMetropolisDist
function.
If the samples provided as csv files in smpl.Path
take the five-column form of U-Pb isotopic data files, these will be interpreted as the columns
| ²⁰⁷Pb/²³⁵U | uncert (absolute) | ²⁰⁶Pb/²³⁸U | uncert (absolute) | correlation |
and Pb-loss-aware eruption/deposition age estimation will be conducted. In all other cases, the first two columns of each data file will be interpreted as
| Age | Age uncert (absolute) |
and standard eruption/deposition age estimation will be conducted.
In all cases, uncertainties will be treated as one or two-sigma absolute based on the value of smpl.inputSigmaLevel
.
Examples
smpl = tMinDistMetropolis(smpl, 10^6, 10^5, HalfNormalDistribution)