Chron

Documentation for the Chron.jl package.

Chron.BilinearExponentialType
BilinearExponential(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.

source
Chron.BootstrapCrystDistributionKDEMethod
BootstrapCrystDistributionKDE(smpl::ChronAgeData; cutoff=0.02, [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)
source
Chron.BootstrapCrystDistributionKDEMethod
BootstrapCrystDistributionKDE(data::AbstractArray, [sigma::AbstractArray]; cutoff=0.02)

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))
source
Chron.StratMetropolisFunction
StratMetropolis(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)
source
Chron.StratMetropolis14CMethod
StratMetropolis14C(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)
source
Chron.StratMetropolisDistFunction
StratMetropolisDist(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)
source
Chron.screen_outliersMethod
screen_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.

source
Chron.tMinDistMetropolisMethod
tMinDistMetropolis(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)
source