Git Product home page Git Product logo

aion's Introduction

aion

R-CMD-check codecov CodeFactor Dependencies

r-universe CRAN Version CRAN checks CRAN Downloads

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

DOI Zenodo DOI JOSS

Overview

Base R ships with a lot of functionality useful for time series, in particular in the stats package. However, these features are not adapted to most archaeological time series. These are indeed defined for a given calendar era, they can involve dates very far in the past and the sampling of the observation time is (in most cases) not constant.

aion provides a system of classes and methods to represent and work with such time-series. Dates are represented as rata die (Reingold and Dershowitz 2018), i.e. the number of days since 01-01-01 (Gregorian), with negative values for earlier dates. This allows to represent dates independently of any calendar: it makes calculations and comparisons easier.

Once a time series is created with aion, any calendar can be used for printing or plotting data (defaults to Gregorian Common Era; see vignette("aion")).

aion does not provide tools for temporal modeling. Instead, it offers a simple API that can be used by other specialized packages.


To cite aion in publications use:

Frerebeau N (2024). “aion: An R Package to Represent Archaeological Time Series.” Journal of Open Source Software, 9(96). doi:10.21105/joss.06210 https://doi.org/10.21105/joss.06210.

Frerebeau N, Roe J (2024). aion: Archaeological Time Series. Université Bordeaux Montaigne, Pessac, France. doi:10.5281/zenodo.8032278 https://doi.org/10.5281/zenodo.8032278, R package version 1.0.4, https://packages.tesselle.org/aion/.

This package is a part of the tesselle project https://www.tesselle.org.

Installation

You can install the released version of aion from CRAN with:

install.packages("aion")

And the development version from GitHub with:

# install.packages("remotes")
remotes::install_github("tesselle/aion")

Usage

## Load package
library(aion)

Time-series of ceramic counts:

## Get ceramic counts (data from Husi 2022)
data("loire", package = "folio")

## Keep only variables whose total is at least 600
keep <- c("01f", "01k", "01L", "08e", "08t", "09b", "15i", "15q")

## Get time midpoints
mid <- rowMeans(loire[, c("lower", "upper")])

## Create time-series
X <- series(
  object = loire[, keep],
  time = mid,
  calendar = calendar("AD")
)

## Plot (default calendar)
plot(
  x = X, 
  type = "h" # histogram like vertical lines
)

Related Works

  • era: provides a consistent representation of year-based time scales as a numeric vector with an associated era.

Contributing

Please note that the aion project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

References

Reingold, Edward M., and Nachum Dershowitz. 2018. Calendrical Calculations: The Ultimate Edition. 4th ed. Cambridge University Press. https://doi.org/10.1017/9781107415058.

aion's People

Contributors

nfrerebeau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

aion's Issues

JOSS review: statement of need and summary

Hello, and apologies for the delay.
About the "statement of need" in the paper, I think the current text doesn't do justice to the package. The "Summary" paragraph lists several other packages and their limitations, but description of the functionality of aion is just one short sentence at the end, it sounds anticlimatic.

I suggest that the current "Summary" and "Statement of need" paragraphs are merged into a new "Statement of need" paragraph, and that a new "Summary" is written with a direct focus on what aion does.

A possible suggestion for the updated "Statement of need" just by cut and paste of the current text:

# Summary 

`aion` is designed to provide a consistent framework for representing 
archaeological time series that can extend very far in the past.
`aion` provides a system of classes and methods to represent and work
with such time series. This package does not provide tools for temporal analysis or 
modeling. Instead, it offers a system of classes and methods to represent and 
work with archaeological time series. This API can be extended and used by other 
specialized packages (see `kairos` v2.0 as an example).

# Statement of need

R ships with a lot of functionality useful for time series, in particular 
in the base `stats` [@R-stats], or in the `zoo` [@R-zoo] packages[^1]. 
However, these features are not adapted to most archaeological time series. 
At the same time, numerous R packages have been developed to describe, analyze, and model 
temporal data in the context of archaeological studies in the broadest sense. 
These packages encompass various functionalities, including handling radiocarbon 
data (e.g., `Bchron` by @R-Bchron or `rcarbon` by @R-rcarbon), Optically 
Stimulated Luminescence dating (`Luminescence` by @R-Luminescence), Bayesian 
chronological modeling (`ArchaeoPhases` by @R-ArchaeoPhases), 
using paleoenvironmental proxies (e.g., `shoredate` by @R-shoredate), or other 
temporal data (e.g., `kairos` by @R-kairos). This multitude of packages 
underscores the significance of computational approaches in archaeology 
[@schmidt2020]. However, it also presents a major challenge as each package 
employs its own representation of temporal information. Consequently, exchanging 
data between different packages within the same data workflow becomes even more 
arduous.

Archaeological data is typically collected through field excavations or 
surveys, resulting in irregularly spaced observation times. Although several 
packages can handle irregular time series, the way they represent dates means 
they cannot easily be used for archaeological series. These are indeed defined 
for a given calendar era and more importantly they can involve dates very far 
in the past.

JOSS review: Contribution and authorship

Hello, I am one of the reviewers for the JOSS submission described at openjournals/joss-reviews#6210 👋

As I go through the checklist, I find this discrepancy:

Could you please clarify the authorship, either in the paper or in the documentation? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.