Skip to content

GPawi/LANDOnline

Repository files navigation

LANDO: Linked age-depth modeling

Binder DOI

About the project

LANDO links the most commonly used age-depth modeling software in one multi-language Jupyter Notebook, known as SoS notebook (Peng et al., 2018). Due to its design, the notebook uses four Jupyter kernels: Python, R, Octave, and MATLAB. We implemented the following modeling systems in LANDO:
* Bacon (Blaauw and Christen, 2011),
* Bchron (Haslett and Parnell, 2008; Parnell et al., 2008),
* clam (Blaauw, 2010),
* hamstr (Dolman, 2021),
* Undatable (Lougheed and Obrochta, 2019).
Furthermore, LANDO uses the fuzzy changepoint method by Holloway et al. (2021) to evaluate the performance of modeling systems to represent lithological change based on independent proxy data. LANDO can run models for single or multiple sediment cores.

About the repository

In this repository we try to publish an online running version of LANDO. For the stand-alone version, please go to https://github.com/GPawi/LANDO

Prerequisites

We used the following programming languages versions to develop LANDO:

Programming language Version
R 4.1.2
Python 3.7
Octave 6.4.0
MATLAB1 2020b

(back to top)

Run LANDO

There are two ways in LANDOnline to retrieve age determination data:

Input Code
Data for one single core from file dates = gd.AgeFromFileOneCore()
Data for multiple cores from file dates = gd.AgeFromFileMultiCore()

And one ways to retrieve proxy data:

Input Code
Data from file proxy = gd.ProxyFromFile()

There are different parameters that can be adjusted for each modeling software in LANDO

Modeling software Parameter Default value
Bacon acc.shape 1.5
Bacon acc.mean 20
Bacon mem.strength 10
Bacon mem.mean 0.5
Bacon ssize 8000
clam types_curve 1:5
clam smoothness_curve 0.1*(1:10)
clam poly_degree_curve 1:4
hamstr K c(10,10)
Undatable xfactor 0.1
Undatable bootpc 30

If you want to know more about the implemented functions, please use the help() function in Python. For instance, using help(age_sr_plot.PlotAgeSR.plot_graph) returns:

Help on function plot_graph in module src.age_sr_plot:

plot_graph(self, orig_dir, sigma_range='both', bin_size=1000, xlim_max=None, number_col=7, reduce_plot_axis=False, only_combined=False, save=False, for_color_blind=False, as_jpg=False)
Main function to plot data for single core and multi-core case

parameters:
@self.orig_dir: original directory where LANDO was launched, so that plots can be saved to the folder "output_figures"
@self.sigma_range: sigma range that should be shown in the plot - the options are: 'both', '1sigma', '2sigma', and None
@self.bin_size: this argument only works for the multi-core case; defines the bin size in years; default value: 1000
@self.xlim_max: this argument only works for the multi-core case; defines the maximum age range in years to be plotted; default value: None
@self.number_col: only works for the multi-core case; defines the number of columns to plot; default value: 7
@self.reduce_plot_axis: only works for the multi-core case; reduces the number that are plotted on the axis; default value: False
@self.only_combined: argument to decide if only combined model should be plotted; default value: False
@self.save: argument to decide if plot should be saved to location given in orig_dir; default value: False
@self.for_color_blind: argument to transform plot to be suitable for people with color vision deficiency; default value: False
@self.as_jpg: argument to plot grafics as .jpg (default is .pdf), which works best for color-blind plot; default value: False

returns: Main output plot from LANDO

You can close the notebook using File --> Shutdown and then File --> Logout.

(back to top)

Future Plans

  • Add OxCal to LANDO

See the open issues for a full list of proposed features (and known issues).

(back to top)

License

Distributed under the GNU GPLv3 License. See LICENSE.txt for more information.

(back to top)

Contact

Gregor Pfalz - Gregor.Pfalz@awi.de - @ClimateCompathy

Project Link: https://github.com/GPawi/LANDO

(back to top)

References

Blaauw, M.: Methods and code for “classical” age-modelling of radiocarbon sequences, Quat. Geochronol., 5, 512–518, https://doi.org/10.1016/j.quageo.2010.01.002, 2010.

Blaauw, M. and Christen, J. A.: Flexible paleoclimate age-depth models using an autoregressive gamma process, Bayesian Anal., 6, 457–474, https://doi.org/10.1214/11-BA618, 2011.

Dolman, A. M.: hamstr: Hierarchical Accumulation Modelling with Stan and R, https://github.com/EarthSystemDiagnostics/hamstr, 2021.

Haslett, J. and Parnell, A.: A simple monotone process with application to radiocarbon-dated depth chronologies, J. R. Stat. Soc. Ser. C Appl. Stat., 57, 399–418, https://doi.org/10.1111/j.1467-9876.2008.00623.x, 2008.

Hollaway, M. J., Henrys, P. A., Killick, R., Leeson, A., and Watkins, J.: Evaluating the ability of numerical models to capture important shifts in environmental time series: A fuzzy change point approach, Environ. Model. Softw., 139, 104993, https://doi.org/10.1016/j.envsoft.2021.104993, 2021.

Lougheed, B. C. and Obrochta, S. P.: A Rapid, Deterministic Age-Depth Modeling Routine for Geological Sequences With Inherent Depth Uncertainty, Paleoceanogr. Paleoclimatology, 34, 122–133, https://doi.org/10.1029/2018PA003457, 2019.

Parnell, A. C., Haslett, J., Allen, J. R. M., Buck, C. E., and Huntley, B.: A flexible approach to assessing synchroneity of past events using Bayesian reconstructions of sedimentation history, Quat. Sci. Rev., 27, 1872–1885, https://doi.org/10.1016/j.quascirev.2008.07.009, 2008.

Peng, B., Wang, G., Ma, J., Leong, M. C., Wakefield, C., Melott, J., Chiu, Y., Du, D., and Weinstein, J. N.: SoS notebook: An interactive multi-language data analysis environment, 34, 3768–3770, https://doi.org/10.1093/bioinformatics/bty405, 2018.

(back to top)

Footnotes

  1. Since we want to keep LANDO open source, the installation process does not include instructions for the MATLAB kernel. If you have an active MATLAB license, please follow the instructions on the SoS notebook website. We provide the necessary code to run the MATLAB version of Undatable in the repository, which can replace the Octave version.