# Load the Chron.jl package using Chron using Plots, DelimitedFiles nSamples = 5 # The number of samples you have data for smpl = ChronAgeData(nSamples) smpl.Name = ("KJ08-157", "KJ04-75", "KJ09-66", "KJ04-72", "KJ04-70",) smpl.Path = "MyData/" # Where are the data files? Must match where you put the csv files below. smpl.inputSigmaLevel = 2 # i.e., are the data files 1-sigma or 2-sigma. Integer. smpl.Age_Unit = "Ma" # Unit of measurement for ages and errors in the data files smpl.Height_Unit = "cm"; # Unit of measurement for Height and Height_sigma ;ls ;mkdir -p MyData/ # You can just paste your data in here, in the following two-column format. # The first column is age and the second column is two-sigma analytical uncertainty. # You should generally exclude all systematic uncertainties here. data = [ 66.12 0.14 66.115 0.048 66.11 0.1 66.11 0.17 66.096 0.056 66.088 0.081 66.085 0.076 66.073 0.084 66.07 0.11 66.055 0.043 66.05 0.16 65.97 0.12 ] # Now, let's write this data to a file, delimited by commas (',') # In this example the filename is KJ08-157.csv, in the folder called MyData writedlm("MyData/KJ08-157.csv", data, ',') data = [ 66.24 0.25 66.232 0.046 66.112 0.085 66.09 0.1 66.04 0.18 66.03 0.12 66.016 0.08 66.003 0.038 65.982 0.071 65.98 0.19 65.977 0.042 65.975 0.066 65.971 0.082 65.963 0.074 65.92 0.12 65.916 0.088 ] writedlm("MyData/KJ04-75.csv",data,',') data = [ 66.13 0.15 66.066 0.052 65.999 0.045 65.989 0.057 65.98 0.11 65.961 0.057 65.957 0.091 65.951 0.066 65.95 0.11 65.929 0.059 ] writedlm("MyData/KJ09-66.csv",data,',') data = [ 66.11 0.2 66.003 0.063 66.003 0.058 65.98 0.06 65.976 0.089 65.973 0.084 65.97 0.15 65.963 0.055 65.959 0.049 65.94 0.18 65.928 0.066 65.92 0.057 65.91 0.14 ] writedlm("MyData/KJ04-72.csv",data,',') data = [ 66.22 0.27 66.06 0.11 65.933 0.066 65.918 0.087 65.92 0.34 65.916 0.067 65.91 0.18 65.892 0.09 65.89 0.063 65.89 0.15 65.88 0.2 65.812 0.069 65.76 0.15 ] writedlm("MyData/KJ04-70.csv",data,',') # Bootstrap a KDE of the pre-eruptive (or pre-deposition) zircon distribution # shape from individual sample datafiles using a KDE of stacked sample data BootstrappedDistribution = BootstrapCrystDistributionKDE(smpl) h = plot(range(0,1,length=length(BootstrappedDistribution)), BootstrappedDistribution, label="Bootstrapped distribution", xlabel="Time (arbitrary units)", ylabel="Probability Density", fg_color_legend=:white, framestyle=:box) savefig(h, joinpath(smpl.Path,"BootstrappedDistribution.pdf")) display(h) # Number of steps to run in distribution MCMC distSteps = 10^6 distBurnin = distSteps÷100 # Choose the form of the prior closure/crystallization distribution to use dist = BootstrappedDistribution ## You might alternatively consider: # dist = UniformDistribution # A reasonable default # dist = MeltsVolcanicZirconDistribution # A single magmatic pulse, truncated by eruption # dist = ExponentialDistribution # Applicable for survivorship processes, potentially including inheritance/dispersion in Ar-Ar dates # Run MCMC to estimate saturation and eruption/deposition age distributions smpl = tMinDistMetropolis(smpl,distSteps,distBurnin,dist) results = vcat(["Sample" "Age" "2.5% CI" "97.5% CI" "sigma"], hcat(collect(smpl.Name),smpl.Age,smpl.Age_025CI,smpl.Age_975CI,smpl.Age_sigma)) writedlm(smpl.Path*"results.csv", results, ','); # Let's see what that did run(`ls $(smpl.Path)`); results = readdlm(smpl.Path*"results.csv",',') ;ls MyData # Make gzipped tar archive of the the whole MyData directory run(`tar -zcf archive.tar.gz ./MyData`); # Download prebuilt ffsend linux binary isfile("ffsend") || download("https://github.com/timvisee/ffsend/releases/download/v0.2.65/ffsend-v0.2.65-linux-x64-static", "ffsend") # Make ffsend executable run(`chmod +x ffsend`); ; ./ffsend upload archive.tar.gz