{"id":191257,"name":"fellingdater","description":"A suite of functions designed to assist dendrochronologists in inferring estimates for felling dates, derived from dated tree-ring series.","url":"https://github.com/ropensci/fellingdater","last_synced_at":"2026-04-14T03:00:34.794Z","repository":{"id":138411573,"uuid":"276190636","full_name":"ropensci/fellingdater","owner":"ropensci","description":"A suite of functions designed to assist dendrochronologists in inferring estimates for felling dates, derived from dated tree-ring series.","archived":false,"fork":false,"pushed_at":"2025-06-30T07:36:03.000Z","size":51282,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-30T04:00:33.762Z","etag":null,"topics":["dendrochronology","r","r-package","rstats","sapwood","tree-rings"],"latest_commit_sha":null,"homepage":"https://docs.ropensci.org/fellingdater/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ropensci.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null}},"created_at":"2020-06-30T19:30:03.000Z","updated_at":"2025-06-30T06:53:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"654a5369-27e4-4d35-a781-d5ec6626cd03","html_url":"https://github.com/ropensci/fellingdater","commit_stats":{"total_commits":160,"total_committers":4,"mean_commits":40.0,"dds":0.08125000000000004,"last_synced_commit":"39c4e62e174652000ca6cc8f1b40d15996eabe0c"},"previous_names":["ropensci/fellingdater","hanecakr/fellingdater"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/ropensci/fellingdater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ropensci","download_url":"https://codeload.github.com/ropensci/fellingdater/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31503394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"ropensci","name":"rOpenSci","uuid":"1200269","kind":"organization","description":"","email":"info@ropensci.org","website":"https://ropensci.org/","location":"Berkeley, CA","twitter":"rOpenSci","company":null,"icon_url":"https://avatars.githubusercontent.com/u/1200269?v=4","repositories_count":307,"last_synced_at":"2023-03-10T20:30:59.242Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ropensci","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T19:23:08.224Z","updated_at":"2023-03-10T20:30:59.305Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ropensci","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ropensci/repositories"},"packages":[],"commits":{"id":1546188,"full_name":"ropensci/fellingdater","default_branch":"main","total_commits":184,"total_committers":4,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":46.0,"dds":0.07065217391304346,"past_year_total_commits":24,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":24.0,"past_year_dds":0.0,"last_synced_at":"2026-04-13T10:00:31.588Z","last_synced_commit":"d9fb5b3dce5a917f16941edfb6bcbfa54f4ed9a8","created_at":"2024-04-17T00:10:36.959Z","updated_at":"2026-04-13T10:00:31.492Z","committers":[{"name":"hanecakr","email":"Kristof.Haneca@vlaanderen.be","login":"hanecakr","count":171},{"name":"Koen Van Daele","email":"koen_van_daele@telenet.be","login":"koenedaele","count":11},{"name":"Maëlle Salmon","email":"maelle.salmon@yahoo.se","login":"maelle","count":1},{"name":"Arfon Smith","email":"arfon","login":"arfon","count":1}],"past_year_committers":[{"name":"Kristof Haneca","email":"Kristof.Haneca@vlaanderen.be","login":"hanecakr","count":24}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-14T00:00:07.982Z","repositories_count":6213198,"commits_count":903301598,"contributors_count":34926901,"owners_count":1144206,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"ropensci/fellingdater","html_url":"https://github.com/ropensci/fellingdater","last_synced_at":"2026-03-25T06:00:36.370Z","status":"error","issues_count":5,"pull_requests_count":6,"avg_time_to_close_issue":14663263.4,"avg_time_to_close_pull_request":524606.1666666666,"issues_closed_count":5,"pull_requests_closed_count":6,"pull_request_authors_count":4,"issue_authors_count":2,"avg_comments_per_issue":3.2,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":4,"bot_issues_count":4,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":680520.3333333334,"past_year_avg_time_to_close_pull_request":770.0,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.3333333333333333,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":3,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2024-04-17T00:10:37.342Z","updated_at":"2026-03-25T06:00:36.371Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ropensci%2Ffellingdater/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":3},"pull_request_author_associations_count":{"NONE":5,"COLLABORATOR":3,"MEMBER":2},"issue_authors":{"github-actions[bot]":3},"pull_request_authors":{"RonaldVisser":4,"hanecakr":3,"maelle":2,"arfon":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-13T00:00:15.727Z","repositories_count":14243496,"issues_count":34651553,"pull_requests_count":113192562,"authors_count":11233357,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":3},"past_year_pull_request_author_associations_count":{"COLLABORATOR":3},"past_year_issue_authors":{"github-actions[bot]":3},"past_year_pull_request_authors":{"hanecakr":3},"maintainers":[{"login":"hanecakr","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hanecakr"},{"login":"maelle","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/maelle"}],"active_maintainers":[{"login":"hanecakr","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hanecakr"}]},"events":{"total":{"CreateEvent":3,"ReleaseEvent":1,"IssuesEvent":4,"DeleteEvent":2,"IssueCommentEvent":2,"PushEvent":24,"PullRequestEvent":1},"last_year":{"CreateEvent":3,"ReleaseEvent":1,"IssuesEvent":4,"DeleteEvent":2,"IssueCommentEvent":2,"PushEvent":23,"PullRequestEvent":1}},"keywords":["dendrochronology","r","r-package","rstats","sapwood","tree-rings"],"dependencies":[],"score":3.58351893845611,"created_at":"2024-04-17T00:08:45.270Z","updated_at":"2026-04-14T03:00:34.796Z","avatar_url":"https://github.com/ropensci.png","language":"R","category":"Biosphere","sub_category":"Forest Modeling and Analysis","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"---\noutput: github_document\neditor_options: \n  markdown: \n    wrap: 72\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n     collapse = TRUE,\n     comment = \"#\u003e\",\n     fig.path = \"man/figures/README-\",\n     out.width = \"100%\"\n)\n```\n\n# `fellingdater`: Tree-ring dating and estimating felling dates of historical timbers\n\n\u003c!-- badges: start --\u003e\n\n[![R-CMD-check](https://github.com/ropensci/fellingdater/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ropensci/fellingdater/actions/workflows/R-CMD-check.yaml)\n[![rOpenSci](https://badges.ropensci.org/618_status.svg)](https://github.com/ropensci/software-review/issues/618)\n[![fellingdateer status\nbadge](https://ropensci.r-universe.dev/badges/fellingdater)](https://ropensci.r-universe.dev)\n[![DOI](https://zenodo.org/badge/276190636.svg)](https://zenodo.org/doi/10.5281/zenodo.11186274)\n[![JOSS](https://joss.theoj.org/papers/3db8c54ec854b575bf5450336ccb000b/status.svg)](https://joss.theoj.org/papers/3db8c54ec854b575bf5450336ccb000b)\n\n\u003c!-- badges: end --\u003e\n\nThe `fellingdater` package provides a suite of functions\nfor dendrochronological and dendroarchaeological analysis, covering a workflow from tree-ring **data processing** and **crossdating**, up to\nthe estimation and reporting of **felling dates**. Originally designed to assist dendrochronologists in inferring felling dates from dated tree-ring\nseries with partially preserved sapwood, the package has been expanded\nto include a workflow for tree-ring dating, analysis, and visualization.\n\n![](man/figures/cross-section.png)\n\n## Installation\n\nYou can install the latest release of `fellingdater` from\n[GitHub](https://github.com/ropensci/fellingdater/) or\n[R-universe](https://ropensci.r-universe.dev/fellingdater):\n\n``` r\n# install.packages(\"pak\")\npak::pak(\"ropensci/fellingdater\")\n```\n\nor\n\n``` r\n# install.packages(\"remotes\")\nremotes::install_github(\"ropensci/fellingdater\")\n```\n\n## Core functionality\n\n### **Tree-ring series analysis (`trs_*` functions)**:\n\n-   **Data generation and preparation**: Create synthetic datasets with\n    `trs_pseudo_rwl()`, or read and prepare real data with `read_fh()`, `trs_select()`, `trs_remove()` and `trs_trim()`.\n\n-   **Crossdating analysis**: Perform crossdating with `trs_crossdate()`\n    and set end dates for the tree-ring series with `trs_date_end()`.\n\n    The statistical measures in the crossdating procedure include:\n\n    -   *t*-values according to [Hollstein\n        (1980)](https://search.worldcat.org/de/title/899062584) and\n        [Baillie \u0026 Pilcher (1973)](http://hdl.handle.net/10150/260029)\n        transformation procedures (`trs_tho()`and `trs_tbp()`)\n\n    -   percentage of parallel variation, including (Semi-)Synchronous\n        Growth Changes (SGC and SSGC, [Visser\n        2020](https://doi.org/10.1111/arcm.12600)), and\n        *Gleichläufigkeit* ([Buras \u0026 Wilmking\n        2015](https://doi.org/10.1016/j.dendro.2015.03.003), [Eckstein \u0026\n        Bauch 1969](https://doi.org/10.1007/BF02741777), [Huber\n        1943](https://doi.org/10.1007/BF02603303)) and associated\n        significance level ([Jansma\n        1995](https://dspace.library.uu.nl/handle/1874/45149))\n        (`trs_pv()`)\n\n    -   correlation measures, *r* Pearson and *t*-values (`trs_tSt()`)\n\n-   **Visualization**: Display crossdating results with\n    `trs_plot_dated()`, or individual series with `trs_plot_rwl()`\n\n### **Felling date estimation ** (`sw_*` functions):\n\nThe package's primary focus is estimating felling dates from accurately\ndated tree-ring series with preserved sapwood (*sw*). When the\nbark/cambial zone (waney edge) is absent, the preserved sapwood rings\ncan be used to establish a date range for the felling event, allowing\nresearchers to report an interval in which the actual felling date\n(*fd*) likely falls.\n\nThis procedure can be applied to individual series as well as to a\ncollection of related timbers.\n\n-   **Individual series**: Estimate felling date ranges from tree-ring\n    series with preserved sapwood.\n\n-   **Group analysis**: Combine multiple samples assumed to be felled\n    simultaneously for enhanced precision.\n\n-   **Probability densities**: Work with sapwood probability\n    distributions and create summed probability densities that reflect          dynamics in felling date intensity.\n\n![](man/figures/workflow.png)\n\n\n### Workflow\n\nThe package workflow progresses logically through:\n\n1.  **Data preparation** - Generate synthetic data or prepare existing\n    tree-ring measurements\n2.  **Crossdating and statistical analysis** - Establish accurate\n    calendar dates for tree-ring series\n3.  **Quality control** - Validate dating results using multiple\n    statistical measures\n4.  **Felling date estimation** - Apply sapwood models to dated series\n    with preserved sapwood\n5.  **Grouping** - Combine individual felling date estimates for related        wooden finds\n6.  **Visualization and reporting** - Present results with\n    publication-ready graphics\n\n## Examples\n\n### Felling date estimation\n\nIn the following example the combined felling date range for a set of\nfive dated tree-ring series is computed:\n\n```{r basic-example}\nlibrary(fellingdater)\n\n## a data set where all series have partially preserved sapwood:\nsw_example1\n```\n\n```{r example}\nsw_combine(sw_example1, plot = TRUE)\n```\n\nThe light grey distributions shows felling date probability densities\nfor each individual series, while the dark grey distribution represents\nthe combined estimate for a common felling date.\n\nThe sapwood model used in the example above to estimate the felling date\nrange, was published by [Hollstein\n(1980)](https://search.worldcat.org/nl/title/6391864):\n\n```{r model_sapwood_counts, dpi=200}\nsw_model(\"Hollstein_1980\", plot = TRUE)\n```\n\n### Tree-ring series analysis\n\nThe package provides comprehensive tools for the tree-ring analysis\nworkflow:\n\n- Generate synthetic tree-ring data for testing\n\n```{r trs-example}\nset.seed(1234)\ntrs \u003c- trs_pseudo_rwl(n_series = 5, series_length = c(100, 150),\n                      end_date = c(2000, 2025), related = TRUE,\n                      prefix = \"series_\")\n\ntrs_plot_rwl(trs,\n             color = c(\"tomato3\", \"navyblue\", \"forestgreen\", \"purple\", \"orange\")\n             )\n```\n\n- Crossdate a series against a reference series/chronology\n\n```{r}\nseries \u003c- trs |\u003e trs_select(\"series_1\", trim = TRUE)\nreference \u003c- trs |\u003e trs_select(\"series_2\")\ncd_results \u003c- trs_crossdate(series, reference, min_overlap = 50,\n                            sliding = TRUE, top_n = 5, rank_by = \"t_Ho\")\n\ncd_results\n```\n\n - Visualize crossdating results\n \n```{r}\nseries_dated \u003c- trs_end_date(series, 2014)\ntrs_plot_dated(series_dated, reference, \n               zscore = TRUE, pv_highlight = TRUE)\n\n```\n\n## Getting started\n\nExplore the package capabilities through our documentation:\n\n-   **Function reference**: Complete overview of all functions and\n    datasets at\n    [docs.ropensci.org/fellingdater/reference/](https://docs.ropensci.org/fellingdater/reference/)\n-   **Practical examples**: Step-by-step workflows in the [`Get started`\n    vignette](https://docs.ropensci.org/fellingdater/articles/getting_started.html)\n-   **Sapwood models**: Available regional sapwood datasets and their\n    applications\n\n## Motivation \u0026 citation\n\nThis package was developed during the analysis of a large data set of\ntree-ring series originating from medieval timber constructions in\n[Bruges](https://en.wikipedia.org/wiki/Bruges) (Belgium). The results of\nthis study were published in\n[*Dendrochronologia*](https://www.journals.elsevier.com/dendrochronologia).\n\nPlease cite these papers when using the `fellingdater` package:\n\n\u003e Kristof HANECA\n\u003e [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/0000-0002-7719-8305)\n\u003e 2024. *fellingdater*: a toolkit to estimate, report and combine\n\u003e felling dates derived from historical tree-ring series. *Journal of\n\u003e Open Source Software*, 9(97), 6716. \n\u003e \u003chttps://doi.org/10.21105/joss.06716\u003e\n\n\u003e Kristof HANECA\n\u003e [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/0000-0002-7719-8305),\n\u003e Vincent DEBONNE\n\u003e [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/0000-0003-4536-146X),\n\u003e Patrick HOFFSUMMER 2020. The ups and downs of the building trade in a\n\u003e medieval city: tree-ring data as proxies for economic, social and\n\u003e demographic dynamics in Bruges (*c.* 1200 -- 1500).\n\u003e *Dendrochronologia* 64, 125773.\\\n\u003e \u003chttps://doi.org/10.1016/j.dendro.2020.125773\u003e\n\n## Acknowledgements\n\nThe `fellingdater` package builds on established crossdating algorithms\nfrom dendrochronology literature. It also draws inspiration from\nestablished R-apackages like [`dplR`](https://opendendro.org/r/).\n\n## Academic papers citing `fellingdater`\n\n\u003e Altman J., Altmanova N., Fibich P., Korznikov K. \u0026 Fonti P. 2025:\n\u003e Advancing dendrochronology with R: an overview of packages and future\n\u003e perspectives, *Frontiers in Ecology and Evolution* 13, 1593675.\n\u003e \u003chttps://doi.org/10.3389/fevo.2025.1593675\u003e\n\n\u003e Haneca K., Debonne V., Davies D., McCarroll D. \u0026 Loader N.J. 2025:\n\u003e Oxygen isotope dendrochronology allows dating of historical timbers\n\u003e across a wide geographical region, *Dendrochronologia* 89, 126283.\n\u003e \u003chttps://doi.org/10.1016/j.dendro.2024.126283\u003e\n\n\u003e Haneca K. 2024: *fellingdater*: a toolkit to estimate, report and\n\u003e combine felling dates derived from historical tree-ring series,\n\u003e *Journal of Open Source Software* 9.97, 6716.\n\u003e \u003chttps://doi.org/doi.org/10.21105/joss.06716\u003e\n\n\u003e Haneca K. \u0026 De Groote K. 2024: Ieper - De Meersen. Deel 5. Houten\n\u003e grafkisten, tonnen en gebruiksvoorwerpen: dendrochronologie, typologie\n\u003e en houtonderzoek, *Onderzoeksrapporten agentschap Onroerend Erfgoed*\n\u003e 330, Brussel. \u003chttps://doi.org/10.55465/CNJU8492\u003e\n\n\u003e Domínguez-Delmás M., Schroeder H., Kuitems M., Haneca K., Archangel\n\u003e S., van Duin P. \u0026 Piena H. 2023: A stepwise multidisciplinary approach\n\u003e to determine the date and provenance of historical wooden objects,\n\u003e *Journal of Cultural Heritage* 62, 430–440.\n\u003e \u003chttps://doi.org/10.1016/j.culher.2023.06.023\u003e\n\n\u003e Haneca K., Debonne V. \u0026 Hoffsummer P. 2020: The ups and downs of the\n\u003e building trade in a medieval city: Tree-ring data as proxies for\n\u003e economic, social and demographic dynamics in Bruges (c. 1200–1500),\n\u003e *Dendrochronologia* 64, 125773.\n\u003e \u003chttps://doi.org/10.1016/j.dendro.2020.125773\u003e\n\n## Comments and contributions\n\n-   Please report any issues or bugs here:\n    \u003chttps://github.com/ropensci/fellingdater/issues\u003e.\n\n-   Get citation information for `fellingdater` in R typing\n    `citation(package = 'fellingdater')`.\n\n-   Please note that the `fellingdater` package is released with a\n    [Contributor Code of\n    Conduct](https://github.com/ropensci/fellingdater/blob/main/.github/CONTRIBUTING.md).\n    By contributing to this project, you agree to abide by its terms.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1111/arcm.12600","https://doi.org/10.1016/j.dendro.2015.03.003","https://doi.org/10.1007/BF02741777","https://doi.org/10.1007/BF02603303","https://doi.org/10.21105/joss.06716","https://doi.org/10.1016/j.dendro.2020.125773","https://doi.org/10.3389/fevo.2025.1593675","https://doi.org/10.1016/j.dendro.2024.126283","https://doi.org/doi.org/10.21105/joss.06716","https://doi.org/10.55465/CNJU8492","https://doi.org/10.1016/j.culher.2023.06.023"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["genome","geocoding"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/191257","html_url":"https://ost.ecosyste.ms/projects/191257"}