Title: | Effects of Changing Deposition Rates |
---|---|
Description: | Reverse and model the effects of changing deposition rates on geological data and rates. Based on Hohmann (2018) <doi:10.13140/RG.2.2.23372.51841> . |
Authors: | Niklas Hohmann |
Maintainer: | Niklas Hohmann <[email protected]> |
License: | CC BY 4.0 |
Version: | 2.1.3 |
Built: | 2025-02-16 03:15:17 UTC |
Source: | https://github.com/cran/DAIME |
Reverse and model the effects of changing deposition rates on geological data and rates. Based on Hohmann (2018) <doi:10.13140/RG.2.2.23372.51841> .
The DESCRIPTION file:
Package: | DAIME |
Type: | Package |
Title: | Effects of Changing Deposition Rates |
Version: | 2.1.3 |
Date: | 2020-03-10 |
Author: | Niklas Hohmann |
Maintainer: | Niklas Hohmann <[email protected]> |
Description: | Reverse and model the effects of changing deposition rates on geological data and rates. Based on Hohmann (2018) <doi:10.13140/RG.2.2.23372.51841> . |
License: | CC BY 4.0 |
Depends: | stats, utils, R (>= 3.5.0) |
Suggests: | knitr, rmarkdown |
VignetteBuilder: | knitr |
LazyData: | true |
NeedsCompilation: | no |
Packaged: | 2020-03-10 12:35:41 UTC; nick |
Date/Publication: | 2020-03-10 12:50:02 UTC |
Repository: | https://niklashohmann.r-universe.dev |
RemoteUrl: | https://github.com/cran/DAIME |
RemoteRef: | HEAD |
RemoteSha: | fe242edb756bb5da0ab46d7fce80031ed9e9a85c |
Index of help topics:
ColDePalluel Microcpaleontological, palynological, and geochemical data from the Col de Palluel, SE France (Late Albanian) DAIME-package Effects of Changing Deposition Rates KPgLastOccurrences Last occurrences for the K/Pg boundary and a potential influence of Deccan volcanism LakeSuperior 210Pb measurements and derived age models from Lake Superior SeymourIslandAgeModels Age models for the K/Pg boundary on Seymour Island, Antarctica SeymourIslandBins Sampling bins approaching and covering the K/Pg boundary on Seymour Island, Antarctica patterntodepositionmodel Use sedimentary dilution/condensation of known patterns to create age model patterntransform Transform patterns between stratigraphic height and time/age pointtransform Transform points between stratigraphic height and time/age strattotimepointbin Transform Points and Isotope Ratios from Stratigraphic Height into Time (Binned) strattotimepointcont Transform Points and Isotope Ratios from Stratigraphic Height into Time (Continuos) strattotimeratebin Transform patterns from Stratigraphic Height into Time (Binned) strattotimeratecont Transform Patterns from Stratigraphic Height into Time (Continuous) timetostratpointbin Transform Points and Isotope Ratios from Time into Stratigraphic Height (Binned) timetostratpointcont Transform Points and Isotope Ratios from Time into Stratigraphic Height (Continuous) timetostratratebin Transform Patterns from Time into Stratigraphic Height (Binned) timetostratratecont Transform Patterns from Time into Stratigraphic Height (Continuous)
Further information is available in the following vignettes:
DAIME |
DAIME (source, pdf) |
Niklas Hohmann
Maintainer: Niklas Hohmann <[email protected]>
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
Contains data on geochemistry, palynology, planktic forams, and nannofossils from the Col de Palluel from Bornemann et al. (2005)
data(ColDePalluel)
data(ColDePalluel)
A list with four entries named "geochemistry", "palynomorphs", "nannofossils", and "plankticforaminifera" containing the data given in Bornemann et al. (2005).
Bornemann, Andre; Pross, Joerg; Reichelt, Kerstin; Herrle, Jens O; Hemleben, Christoph; Mutterlose, Joerg (2005): Micropaleontological investigation of Late Albanian Col de Palluel. PANGAEA, https://doi.org/10.1594/PANGAEA.737945 CC BY 3.0
Bornemann, A et al. (2005): Reconstruction of short-term palaeoceanographic changes during the formation of the Late Albian Niveau Breistroffer black shales (Oceanic Anoxic Event 1d, SE France). Journal of the Geological Society of London, 162(4), 623-639, https://doi.org/10.1144/0016-764903-171
data("ColDePalluel") #plot carbonate content plot(ColDePalluel$geochemistry$Depth..m.,ColDePalluel$geochemistry$CaCO3....,type='l')
data("ColDePalluel") #plot carbonate content plot(ColDePalluel$geochemistry$Depth..m.,ColDePalluel$geochemistry$CaCO3....,type='l')
Contains last occurrences generated by a spike in extinction rate at the K/Pg boundary and an influence of Deccan volcanism before that. Relative influence of volcanism ranges from 0% (none), 10 % (weak), 20% (intermediate), 30 % (strong) to 40% (very strong). Location of Deccan volcanism is based on the extinction interval from Tobin (2017), fig. 5, transformed into time assuming a constant deposition rate. The last occurrences were generated based on the convolution procedure described in Hohmann (2018) and a rate of fossil occurrences of 40 fossils per Myr.
data(KPgLastOccurrences)
data(KPgLastOccurrences)
A list with five entries, each named after the intensity of the early extinction pulse described in Hohmann (in preparation). Each of these entries contains three vectors: 'val' contains the last occurrences per Myr at the ages in 'age', and 'parameters' contains the parameters used to create the pattern of last occurrences.
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>.
Hohmann, Niklas. (2018). Reversing Time Averaging and Reconstructing Extinction Rates with Approaches from Image Processing. DOI 10.1101/408864.
Tobin, Thomas S. "Recognition of a likely two phased extinction at the K-Pg boundary in Antarctica." Scientific reports 7.1 (2017): 1-11.
data(KPgLastOccurrences) KPgLastOccurrences$Intermediate.Deccan$parameters plot(KPgLastOccurrences$Intermediate.Deccan$age, KPgLastOccurrences$Intermediate.Deccan$val,type='l', xlim=rev(range(KPgLastOccurrences$Intermediate.Deccan$age)),xlab='Age [Ma]', ylab='Last Occurrences [per Myr]')
data(KPgLastOccurrences) KPgLastOccurrences$Intermediate.Deccan$parameters plot(KPgLastOccurrences$Intermediate.Deccan$age, KPgLastOccurrences$Intermediate.Deccan$val,type='l', xlim=rev(range(KPgLastOccurrences$Intermediate.Deccan$age)),xlab='Age [Ma]', ylab='Last Occurrences [per Myr]')
Contains lead measurments and the derived age models and sediment accumulation rates from eight cores in Lake Superior (O'Beirne et al. 2017)
data(LakeSuperior)
data(LakeSuperior)
A list containing eight data tables, each with the information about one core.
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core BH03-3. PANGAEA, https://doi.org/10.1594/PANGAEA.874717 CC BY 3.0
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core BH09-2. PANGAEA, https://doi.org/10.1594/PANGAEA.874718 CC BY 3.0
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core BH09-3. PANGAEA, https://doi.org/10.1594/PANGAEA.874719 CC BY 3.0
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core BH09-4. PANGAEA, https://doi.org/10.1594/PANGAEA.874720 CC BY 3.0
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core CM_MC. PANGAEA, https://doi.org/10.1594/PANGAEA.874721 CC BY 3.0
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core EM_MC. PANGAEA, https://doi.org/10.1594/PANGAEA.874722 CC BY 3.0
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core IR_MC. PANGAEA, https://doi.org/10.1594/PANGAEA.874723 CC BY 3.0
O'Beirne, Molly D; Werne, Josef P; Hecky, Robert E; Johnson, Thomas C; Katsev, Sergei; Reavie, Euan D (2017): 210Pb based age model of sediment core LG_MC. PANGAEA, https://doi.org/10.1594/PANGAEA.874724 CC BY 3.0
O'Beirne, MD et al. (2017): Anthropogenic climate change has altered primary productivity in Lake Superior. Nature Communications, 8, 15713, https://doi.org/10.1038/ncomms15713
data(LakeSuperior) plot(LakeSuperior$BH03_3$Depth..m.,LakeSuperior$BH03_3$X210Pb.xs..Bq.kg., xlab='Core depth [m]',ylab='Excess lead [Bq/kg]')
data(LakeSuperior) plot(LakeSuperior$BH03_3$Depth..m.,LakeSuperior$BH03_3$X210Pb.xs..Bq.kg., xlab='Core depth [m]',ylab='Excess lead [Bq/kg]')
Takes a pair of a stratigraphic and a temporal pattern to determine the deposition model that transforms them into each other. The deposition model is returned as an age model.
patterntodepositionmodel(xheight, yheight, xage = NULL, yage = NULL, heightmode = 'piecewise linear', agemode = 'piecewise linear', atheight=NULL,atage=NULL,rescalefor=1,timetype='time')
patterntodepositionmodel(xheight, yheight, xage = NULL, yage = NULL, heightmode = 'piecewise linear', agemode = 'piecewise linear', atheight=NULL,atage=NULL,rescalefor=1,timetype='time')
xheight |
A vector of strictly increasing numbers |
yheight |
A vector of strictly positive numbers. |
xage |
OPTIONAL, default is |
yage |
OPTIONAL, default is |
heightmode |
OPTIONAL, default is |
agemode |
OPTIONAL, default is |
atheight |
OPTIONAL, default is |
atage |
OPTIONAL, default is |
rescalefor |
OPTIONAL, default is 1. Either a strictly positive number, 'temporal pattern', or 'stratigraphic pattern'. Determines what the total input into the sediment is. |
timetype |
OPTIONAL, default is "time". Either "time" or "age", determines whether input/output will be interpreted/given as time or age |
If timetype='time'
, a list containing the following entries:
time |
Vector of times |
height |
Vector of stratigraphic heights |
report |
A short summary of the task performed |
If timetype='age'
, a list containing the following entries:
age |
Vector of ages |
height |
Vector of stratigraphic heights |
report |
A short summary of the task performed |
age
/time
and height
form the age model in the sense that the age/time at which height[i]
was deposited is given by age[i]
/time[i]
. Conversely at the age/time age[i]
/time[i]
, height[i]
was deposited
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
pointtransform
for the transformations of points using age models
patterntransform
for the transformations of temporal and stratigraphic patterns (such as input rates into the sediment) using age models
For an overview of the functions in the DAIME package and examples using stratigraphic data see the vignette (available via vignette('DAIME')
)
### Reconstruct deposition model based on condensation/dilution of a constant input #assume a constant input of pollen (this is an arbitrary choice) into the sediment through time #this is the observed stratigraphic pattern my.xheight=seq(0,10,by=1) my.yheight=seq(0,3,length.out=11)+rexp(11) plot(my.xheight,my.yheight,xlab='Stratigraphic Height',ylab='Pollen Abundance',type='l', ylim=c(0,max(my.yheight)),main='Stratigraphic Pattern') #reconstruct deposition model based on the assumption of constant pollen input in time my.agemodel=patterntodepositionmodel(xheight=my.xheight,yheight=my.yheight) my.agemodel$report agemodelage=my.agemodel$time agemodelheight=my.agemodel$height plot(agemodelage,agemodelheight,type='l', lwd=6,main='Reconstructed Deposition Models as Age Model') legend('topleft',legend='Age Model',lwd=6,col='black') #approximate deposition rate (=derivative of the age model) grad=diff(agemodelheight)/diff(agemodelage) xbase=agemodelage[-1] plot(xbase,grad,xlab='Time',ylab='Deposition Rate', main='Reconstructed Deposition Model as Deposition Rate',type='l',lwd=6,ylim=c(0,max(grad))) #now assume pollen input into the sediment is decreasing and lasts for 2 time units my.xage=c(0,2) my.yage=c(5,1) plot(my.xage,my.yage,type='l',xlab='Time',ylab='Pollen Input',ylim=c(0,max(my.yage)), lwd=6,main='Temporal Pattern') #reconstruct age model based on these updated assumptions my.agemodel2=patterntodepositionmodel(xheight=my.xheight,yheight=my.yheight, xage=my.xage,yage=my.yage) my.agemodel2$report agemodelage2=my.agemodel2$time agemodelheight2=my.agemodel2$height plot(agemodelage2,agemodelheight2,type='l',lwd=6, main='Reconstructed Deposition Model as Age Model') legend('topleft',legend='Age Model',lwd=6,col='black') #if a pattern is given as bins, use the option 'heightmode' or 'agemode' #define stratigraphic pattern as binned function my.xheight3=seq(0,10,length.out=11) #borders of the bins used to define the stratigraphic pattern my.yheight3=seq(0,3,length.out=10)+rexp(10) #note that xheight has one element more than yheight barplot(my.yheight3,width=diff(my.xheight3),ylab='Pollen Abundance',xlab='Stratigraphic Height', space=0,main='Stratigraphic Pattern') #reconstruct age model as in the first example, but with the binned pollen observation # in stratigraphic height #Note that pollen input in time is again assumed to be constant #(default setting if no xage and yage given) my.agemodel3=patterntodepositionmodel(xheight=my.xheight3,yheight=my.yheight3,heightmode='binned') my.agemodel3$report agemodelage3=my.agemodel3$time agemodelheight3=my.agemodel3$height plot(agemodelage3,agemodelheight3,type='l',lwd=6, main='Reconstructed Deposition Model as Age Model') legend('topleft',legend='Age Model',lwd=6,col='black') #The same option is also available for the temporal pattern (no example given)
### Reconstruct deposition model based on condensation/dilution of a constant input #assume a constant input of pollen (this is an arbitrary choice) into the sediment through time #this is the observed stratigraphic pattern my.xheight=seq(0,10,by=1) my.yheight=seq(0,3,length.out=11)+rexp(11) plot(my.xheight,my.yheight,xlab='Stratigraphic Height',ylab='Pollen Abundance',type='l', ylim=c(0,max(my.yheight)),main='Stratigraphic Pattern') #reconstruct deposition model based on the assumption of constant pollen input in time my.agemodel=patterntodepositionmodel(xheight=my.xheight,yheight=my.yheight) my.agemodel$report agemodelage=my.agemodel$time agemodelheight=my.agemodel$height plot(agemodelage,agemodelheight,type='l', lwd=6,main='Reconstructed Deposition Models as Age Model') legend('topleft',legend='Age Model',lwd=6,col='black') #approximate deposition rate (=derivative of the age model) grad=diff(agemodelheight)/diff(agemodelage) xbase=agemodelage[-1] plot(xbase,grad,xlab='Time',ylab='Deposition Rate', main='Reconstructed Deposition Model as Deposition Rate',type='l',lwd=6,ylim=c(0,max(grad))) #now assume pollen input into the sediment is decreasing and lasts for 2 time units my.xage=c(0,2) my.yage=c(5,1) plot(my.xage,my.yage,type='l',xlab='Time',ylab='Pollen Input',ylim=c(0,max(my.yage)), lwd=6,main='Temporal Pattern') #reconstruct age model based on these updated assumptions my.agemodel2=patterntodepositionmodel(xheight=my.xheight,yheight=my.yheight, xage=my.xage,yage=my.yage) my.agemodel2$report agemodelage2=my.agemodel2$time agemodelheight2=my.agemodel2$height plot(agemodelage2,agemodelheight2,type='l',lwd=6, main='Reconstructed Deposition Model as Age Model') legend('topleft',legend='Age Model',lwd=6,col='black') #if a pattern is given as bins, use the option 'heightmode' or 'agemode' #define stratigraphic pattern as binned function my.xheight3=seq(0,10,length.out=11) #borders of the bins used to define the stratigraphic pattern my.yheight3=seq(0,3,length.out=10)+rexp(10) #note that xheight has one element more than yheight barplot(my.yheight3,width=diff(my.xheight3),ylab='Pollen Abundance',xlab='Stratigraphic Height', space=0,main='Stratigraphic Pattern') #reconstruct age model as in the first example, but with the binned pollen observation # in stratigraphic height #Note that pollen input in time is again assumed to be constant #(default setting if no xage and yage given) my.agemodel3=patterntodepositionmodel(xheight=my.xheight3,yheight=my.yheight3,heightmode='binned') my.agemodel3$report agemodelage3=my.agemodel3$time agemodelheight3=my.agemodel3$height plot(agemodelage3,agemodelheight3,type='l',lwd=6, main='Reconstructed Deposition Model as Age Model') legend('topleft',legend='Age Model',lwd=6,col='black') #The same option is also available for the temporal pattern (no example given)
This function (1) takes temporal patterns and determines the corresponding stratigraphic patterns or (2) takes stratigraphic patterns and reconstructs the underlying temporal patterns.
These patterns can for example be rates of (first/last) fossil occurrences, rates of morphological change, or input rates into the sediment, e.g. of geochemical proxies.
patterntransform ( xdep , ydep , xpat , ypat , direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear' , pos=NULL , hiatuslist=list() ,unit = 'time per sediment',timetype='time' )
patterntransform ( xdep , ydep , xpat , ypat , direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear' , pos=NULL , hiatuslist=list() ,unit = 'time per sediment',timetype='time' )
xdep |
Vector of strictly increasing real numbers |
ydep |
Vector of real numbers. |
xpat |
Vector of strictly increasing real numbers |
ypat |
Vector containing positive real numbers. |
direction |
OPTIONAL, default is |
depositionmodel |
OPTIONAL, default is |
patternmode |
OPTIONAL, default is |
pos |
OPTIONAL, default is |
hiatuslist |
OPTIONAL, default is an empty list. List of hiatuses to be included into the transformation, only used when |
unit |
OPTIONAL, default is 'sediment per time'. Only used when |
timetype |
OPTIONAL, default is "time". Either "time" or "age", determines whether input/output will be interpreted/given as time or age |
Returns a list with two elements. If direction='time to height'
, these elements are
height |
vector containing stratigraphic heights |
val |
vector containing the values of the stratigraphic pattern (=transformed temporal pattern) at the stratigraphic heights given by |
report |
A short summary of the task performed |
If direction='height to time'
and timetype='time'
, these elements are
time |
vector containing points in time |
val |
vector containing the values of the temporal pattern (=transformed stratigraphic pattern) at the points in time given by |
report |
A short summary of the task performed |
If direction='height to time'
and timetype='age'
, these elements are
age |
vector containing ages |
val |
vector containing the values of the temporal pattern (=transformed stratigraphic pattern) at the ages given by |
report |
A short summary of the task performed |
Output of NA
in age
,time
, height
, or val
indicates that some values coincide with a hiatus or intervals where the deposition model is undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
For an overview of the functions in the DAIME package and examples using stratigraphic data see the vignette (available via vignette('DAIME')
)
pointtransform
for the transformation of points
patterntodepositionmodel
to create deposition models based in sedimentary dilution/condensation of known patterns
strattotimeratebin
, strattotimeratecont
, timetostratratebin
, and timetostratratecont
for diverse (outdated) wrappers of patterntransform
.
### Example 1: transform patterns from time into the section ##define (piecewise linear) deposition rate my.xdep=seq(0,12,length.out=100) my.ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep) #Plot deposition rate plot(my.xdep,my.ydep,type='l',main='Deposition Rate',xlab='Time', ylab='Sediment per Time Unit', ylim=c(0,max(my.ydep))) ##define (piecewise linear) temporal pattern, here fossil occurrences patternname='Fossil Occurrences' my.temp.pat.x= seq(from=min(my.xdep),to=max(my.xdep),length.out=100) my.temp.pat.y=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(my.temp.pat.x) plot(my.temp.pat.x,my.temp.pat.y,type='l',main=paste(patternname,'in time'), xlab='Time',ylab=patternname,ylim=c(0,max(my.temp.pat.y))) ##transform temporal pattern into stratigraphic pattern strat.pat=patterntransform(xdep=my.xdep,ydep=my.ydep,xpat=my.temp.pat.x,ypat=my.temp.pat.y, direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear') strat.pat$report my.strat.pat.x=strat.pat$height my.strat.pat.y=strat.pat$val plot(my.strat.pat.x,my.strat.pat.y,type='l',xlab='Stratigraphic Height', ylab=patternname, main=paste(patternname,' in the section')) ## Variation: modify deposition rate to include erosion my.xdep2=my.xdep my.ydep2=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,-2,5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep2) #Plot deposition rate plot(my.xdep2,my.ydep2,type='l',main='Deposition Rate',xlab='Time',ylab='Sediment per Time Unit') lines(range(my.xdep2),c(0,0)) strat.pat2=patterntransform(xdep=my.xdep2,ydep=my.ydep2,xpat=my.temp.pat.x,ypat=my.temp.pat.y, direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear') strat.pat2$report my.strat.pat.x2=strat.pat2$height my.strat.pat.y2=strat.pat2$val plot(my.strat.pat.x2,my.strat.pat.y2,type='l',xlab='Stratigraphic Height', ylab=patternname,main=paste(patternname,' in the section'),ylim=c(0,1)) #the spike is because the deposition rate is very small when it transitions from #negative to positive, generating a punctual extreme condensation ### Example 2: Transform patterns from the section into time patternname='Fossil Occurrences' #piecewise linear deposition rate my.xdep=seq(0,12,length.out=100) my.ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep) ## Same pattern, this time interpreted as stratigraphic pattern my.strat.pat.x= seq(from=min(my.xdep),to=max(my.xdep),length.out=100) my.strat.pat.y=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(my.strat.pat.x) plot(my.strat.pat.x,my.strat.pat.y,type='l',main=paste(patternname,'in the section'), xlab='Stratigraphic Height',ylab=patternname,ylim=c(0,max(my.strat.pat.y))) ##interpret deposition rate as inverse deposition rate with the unit "time per sediment" usedunit='time per sediment' plot(my.xdep,my.ydep,type='l',main=paste('Deposition Rate as',usedunit), xlab='Stratigraphic Height',ylab=usedunit,ylim=c(0,max(my.ydep))) #transform pattern temp.pat1=patterntransform(xdep=my.xdep,ydep=my.ydep,xpat=my.strat.pat.x,ypat=my.strat.pat.y, direction = 'height to time' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear', unit=usedunit) temp.pat1$report #plot result plot(temp.pat1$time,temp.pat1$val,type='l',xlab='Time', ylab=patternname,main=paste(patternname, 'in time'),ylim=c(0,max(temp.pat1$val))) ##take the deposition rate as ordinary deposition rate with unit "sediment per time" usedunit='sediment per time' plot(my.xdep,my.ydep,type='l',main=paste('Deposition Rate as',usedunit), xlab='Stratigraphic Height',ylab=usedunit,ylim=c(0,max(my.ydep))) #transform pattern temp.pat2=patterntransform(xdep=my.xdep,ydep=my.ydep,xpat=my.strat.pat.x,ypat=my.strat.pat.y, direction = 'height to time' ,depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear', unit=usedunit) temp.pat2$report #plot result plot(temp.pat2$time,temp.pat2$val,type='l',xlab='Time', ylab=patternname,main=paste(patternname, 'in time'),ylim=c(0,max(temp.pat2$val))) #Note the big difference in the resulting patterns in time depending on the unit used.
### Example 1: transform patterns from time into the section ##define (piecewise linear) deposition rate my.xdep=seq(0,12,length.out=100) my.ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep) #Plot deposition rate plot(my.xdep,my.ydep,type='l',main='Deposition Rate',xlab='Time', ylab='Sediment per Time Unit', ylim=c(0,max(my.ydep))) ##define (piecewise linear) temporal pattern, here fossil occurrences patternname='Fossil Occurrences' my.temp.pat.x= seq(from=min(my.xdep),to=max(my.xdep),length.out=100) my.temp.pat.y=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(my.temp.pat.x) plot(my.temp.pat.x,my.temp.pat.y,type='l',main=paste(patternname,'in time'), xlab='Time',ylab=patternname,ylim=c(0,max(my.temp.pat.y))) ##transform temporal pattern into stratigraphic pattern strat.pat=patterntransform(xdep=my.xdep,ydep=my.ydep,xpat=my.temp.pat.x,ypat=my.temp.pat.y, direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear') strat.pat$report my.strat.pat.x=strat.pat$height my.strat.pat.y=strat.pat$val plot(my.strat.pat.x,my.strat.pat.y,type='l',xlab='Stratigraphic Height', ylab=patternname, main=paste(patternname,' in the section')) ## Variation: modify deposition rate to include erosion my.xdep2=my.xdep my.ydep2=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,-2,5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep2) #Plot deposition rate plot(my.xdep2,my.ydep2,type='l',main='Deposition Rate',xlab='Time',ylab='Sediment per Time Unit') lines(range(my.xdep2),c(0,0)) strat.pat2=patterntransform(xdep=my.xdep2,ydep=my.ydep2,xpat=my.temp.pat.x,ypat=my.temp.pat.y, direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear') strat.pat2$report my.strat.pat.x2=strat.pat2$height my.strat.pat.y2=strat.pat2$val plot(my.strat.pat.x2,my.strat.pat.y2,type='l',xlab='Stratigraphic Height', ylab=patternname,main=paste(patternname,' in the section'),ylim=c(0,1)) #the spike is because the deposition rate is very small when it transitions from #negative to positive, generating a punctual extreme condensation ### Example 2: Transform patterns from the section into time patternname='Fossil Occurrences' #piecewise linear deposition rate my.xdep=seq(0,12,length.out=100) my.ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep) ## Same pattern, this time interpreted as stratigraphic pattern my.strat.pat.x= seq(from=min(my.xdep),to=max(my.xdep),length.out=100) my.strat.pat.y=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(my.strat.pat.x) plot(my.strat.pat.x,my.strat.pat.y,type='l',main=paste(patternname,'in the section'), xlab='Stratigraphic Height',ylab=patternname,ylim=c(0,max(my.strat.pat.y))) ##interpret deposition rate as inverse deposition rate with the unit "time per sediment" usedunit='time per sediment' plot(my.xdep,my.ydep,type='l',main=paste('Deposition Rate as',usedunit), xlab='Stratigraphic Height',ylab=usedunit,ylim=c(0,max(my.ydep))) #transform pattern temp.pat1=patterntransform(xdep=my.xdep,ydep=my.ydep,xpat=my.strat.pat.x,ypat=my.strat.pat.y, direction = 'height to time' , depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear', unit=usedunit) temp.pat1$report #plot result plot(temp.pat1$time,temp.pat1$val,type='l',xlab='Time', ylab=patternname,main=paste(patternname, 'in time'),ylim=c(0,max(temp.pat1$val))) ##take the deposition rate as ordinary deposition rate with unit "sediment per time" usedunit='sediment per time' plot(my.xdep,my.ydep,type='l',main=paste('Deposition Rate as',usedunit), xlab='Stratigraphic Height',ylab=usedunit,ylim=c(0,max(my.ydep))) #transform pattern temp.pat2=patterntransform(xdep=my.xdep,ydep=my.ydep,xpat=my.strat.pat.x,ypat=my.strat.pat.y, direction = 'height to time' ,depositionmodel = 'piecewise linear deposition rate' , patternmode = 'piecewise linear', unit=usedunit) temp.pat2$report #plot result plot(temp.pat2$time,temp.pat2$val,type='l',xlab='Time', ylab=patternname,main=paste(patternname, 'in time'),ylim=c(0,max(temp.pat2$val))) #Note the big difference in the resulting patterns in time depending on the unit used.
This function (1) takes times/ages and determines the stratigraphic heights that were deposited at said times/ages or (2) takes stratigraphic heights and determines their time/age of deposition.
This can be used to (1) reconstruct the age/time/stratigraphic height of single objects placed in the sediment (2) construct age models from deposition rates and (3) transform (isotope) ratios or percentages from stratigraphic height into time/age and vice versa (see examples).
pointtransform( points , xdep , ydep , direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , hiatuslist = list() , unit = 'time per sediment', timetype='time')
pointtransform( points , xdep , ydep , direction = 'time to height' , depositionmodel = 'piecewise linear deposition rate' , hiatuslist = list() , unit = 'time per sediment', timetype='time')
points |
Vector containing points that are transformed. Whether the entries in |
xdep |
Vector of strictly increasing real numbers |
ydep |
Vector of real numbers. |
direction |
OPTIONAL, default is |
depositionmodel |
OPTIONAL, default is |
hiatuslist |
OPTIONAL, default is an empty list. List of hiatuses to be included into the transformation, only used when |
unit |
OPTIONAL, default is 'sediment per time'. Only used when |
timetype |
OPTIONAL, default is "time". Either "time" or "age", determines whether input/output will be interpreted/given as time or age |
If timetype='time'
a list containing:
time |
Vector containing the times at which the stratigraphic heights in |
height |
Vector containing stratigraphic heights that were deposited at the times given in |
report |
A short summary of the task performed |
If timetype='age'
a list containing:
age |
Vector containing the ages at which the stratigraphic heights in |
height |
Vector containing stratigraphic heights that were deposited at the ages given in |
report |
A short summary of the task performed |
If direction='time to height'
, age
/time
is a duplicate of the input points
, and height
contains the stratigraphic heights that were deposited at the ages/times given by points
.
If direction='height to time'
, height
is a duplicate of the input points
, and age
/time
contains the ages/times at which the stratigraphic height given by points
were deposited.
Output of NA
in a vector indicates that the transformation was unsuccessful. This happens when entries of points
coincide with a hiatus or are not in the domain of definition of the deposition model.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
For an overview of the functions in the DAIME package and examples using stratigraphic data see the vignette (available via vignette('DAIME')
)
patterntransform
for the transformation of input rates (stratigraphic patterns into temporal patterns and vice versa)
patterntodepositionmodel
to create deposition models based on sedimentary dilution/condensation of known patterns
strattotimepointbin
, strattotimepointcont
, timetostratpointbin
, and timetostratpointcont
for diverse (outdated) wrappers of pointtransform
.
### Example 1: Determine age/stratigraphic height of single objects ##define deposition rate my.xdep=seq(0,12,length.out=100) my.ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep) #unit of deposition rate is sediment per time unit (default setting) usedunit='sediment per time' #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate (in stratigraphic height) plot(my.xdep,my.ydep,type='l',main='Deposition Rate',xlab='Stratigraphic Height',ylab=usedunit, ylim=c(0,max(my.ydep))) ##at what time was the object found at stratigraphic height 9 deposited? #using default setting for depositionmodel (depositionmodel = 'piecewise linear deposition rate') pointtransform(points=9,xdep=my.xdep,ydep=my.ydep,direction='height to time', unit=usedunit) #change unit used usedunit='time per sediment' pointtransform(points=9,xdep=my.xdep,ydep=my.ydep,direction='height to time', unit=usedunit) #note how different the results are! ##Now, take deposition rate as deposition rate in time ##at what stratigraphic height will an object appear that was deposited at time 5? pointtransform(points=5,xdep=my.xdep,ydep=my.ydep,direction='time to height') #The option "unit" is unused when transforming from time to height ### Example 2: Create Age models based on a deposition rate ##create an age model. Essentially transform many points, which then approximate the age model stratheights=seq(min(my.xdep),max(my.xdep),length.out=1000) #many points to approx. age model usedunit='sediment per time' reslist=pointtransform(points=stratheights,xdep=my.xdep,ydep=my.ydep, direction='height to time',unit=usedunit) reslist$report agemodelage=reslist$time agemodelheight=reslist$height #plot age model plot(agemodelage,agemodelheight,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model based on deposition rate \n with unit',usedunit)) #create age model but with other units for sedimentn input usedunit='time per sediment' reslist=pointtransform(points=stratheights,xdep=my.xdep,ydep=my.ydep, direction='height to time',unit=usedunit) reslist$report agemodelage=reslist$time agemodelheight=reslist$height #plot age model (note the difference the setting of unit makes in terms of time #required to deposit the section!) plot(agemodelage,agemodelheight,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model based on deposition rate \n with unit',usedunit)) ##create age model with a hiatus 1: height to time stratigraphicheight=5 #strat. height of the hiatus duration=10 #duration of the hiatus my.hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=pointtransform(points=stratheights,xdep=my.xdep,ydep=my.ydep, direction='height to time',hiatuslist=my.hiatuslist) reslist$report agemodelage=reslist$time agemodelheight=reslist$height #!using default setting for unit (sediment per time) again! plot(agemodelage,agemodelheight,xlab='Time',ylab='stratigraphic height') #the gap corresponds to the hiatus ##create age model with a hiatus 2: time to height my.xdep2=c(0,6,8,12) my.ydep2=c(0,6,5,12) plot(my.xdep2,my.ydep2,type='l',main='Age Model, not eroded',xlab='time',ylab='height') reslist=pointtransform(points=stratheights,xdep=my.xdep2,ydep=my.ydep2, direction='time to height',depositionmodel='age model') reslist$report agemodelage=reslist$time agemodelheight=reslist$height plot(agemodelage,agemodelheight,xlab='Time',ylab='stratigraphic height' ,main='Age model, eroded (with hiatus)') ###Example 3: Transform (isotope) ratios ##define deposition rate my.xdep3=seq(0,12,length.out=100) my.ydep3=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6), m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep3) #create fake (oxygen) isotope curves samplelocation=seq(0,12,length.out=20) #where the samples are taken isotoperatio=(-1)^(0:19) +0.2*0:19 plot(my.xdep3,my.ydep3,type='l',ylim=c(0,7),xlab='Stratigraphic Height',ylab='') lines(samplelocation,isotoperatio,type='l',lwd=4) legend('topleft',lwd=c(1,4),legend=c('Deposition rate','(Isotope) ratio')) #transform only (!) sample locations, NOT values #again using the default setting for unit reslist=pointtransform(points=samplelocation,xdep=my.xdep3,ydep=my.ydep3, direction='height to time') #Isotope ratios in time plot(reslist$time,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio',lwd=4)
### Example 1: Determine age/stratigraphic height of single objects ##define deposition rate my.xdep=seq(0,12,length.out=100) my.ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep) #unit of deposition rate is sediment per time unit (default setting) usedunit='sediment per time' #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate (in stratigraphic height) plot(my.xdep,my.ydep,type='l',main='Deposition Rate',xlab='Stratigraphic Height',ylab=usedunit, ylim=c(0,max(my.ydep))) ##at what time was the object found at stratigraphic height 9 deposited? #using default setting for depositionmodel (depositionmodel = 'piecewise linear deposition rate') pointtransform(points=9,xdep=my.xdep,ydep=my.ydep,direction='height to time', unit=usedunit) #change unit used usedunit='time per sediment' pointtransform(points=9,xdep=my.xdep,ydep=my.ydep,direction='height to time', unit=usedunit) #note how different the results are! ##Now, take deposition rate as deposition rate in time ##at what stratigraphic height will an object appear that was deposited at time 5? pointtransform(points=5,xdep=my.xdep,ydep=my.ydep,direction='time to height') #The option "unit" is unused when transforming from time to height ### Example 2: Create Age models based on a deposition rate ##create an age model. Essentially transform many points, which then approximate the age model stratheights=seq(min(my.xdep),max(my.xdep),length.out=1000) #many points to approx. age model usedunit='sediment per time' reslist=pointtransform(points=stratheights,xdep=my.xdep,ydep=my.ydep, direction='height to time',unit=usedunit) reslist$report agemodelage=reslist$time agemodelheight=reslist$height #plot age model plot(agemodelage,agemodelheight,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model based on deposition rate \n with unit',usedunit)) #create age model but with other units for sedimentn input usedunit='time per sediment' reslist=pointtransform(points=stratheights,xdep=my.xdep,ydep=my.ydep, direction='height to time',unit=usedunit) reslist$report agemodelage=reslist$time agemodelheight=reslist$height #plot age model (note the difference the setting of unit makes in terms of time #required to deposit the section!) plot(agemodelage,agemodelheight,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model based on deposition rate \n with unit',usedunit)) ##create age model with a hiatus 1: height to time stratigraphicheight=5 #strat. height of the hiatus duration=10 #duration of the hiatus my.hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=pointtransform(points=stratheights,xdep=my.xdep,ydep=my.ydep, direction='height to time',hiatuslist=my.hiatuslist) reslist$report agemodelage=reslist$time agemodelheight=reslist$height #!using default setting for unit (sediment per time) again! plot(agemodelage,agemodelheight,xlab='Time',ylab='stratigraphic height') #the gap corresponds to the hiatus ##create age model with a hiatus 2: time to height my.xdep2=c(0,6,8,12) my.ydep2=c(0,6,5,12) plot(my.xdep2,my.ydep2,type='l',main='Age Model, not eroded',xlab='time',ylab='height') reslist=pointtransform(points=stratheights,xdep=my.xdep2,ydep=my.ydep2, direction='time to height',depositionmodel='age model') reslist$report agemodelage=reslist$time agemodelheight=reslist$height plot(agemodelage,agemodelheight,xlab='Time',ylab='stratigraphic height' ,main='Age model, eroded (with hiatus)') ###Example 3: Transform (isotope) ratios ##define deposition rate my.xdep3=seq(0,12,length.out=100) my.ydep3=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6), m=c(0,1.5,-0.5,-0.5,0,0.5,0))(my.xdep3) #create fake (oxygen) isotope curves samplelocation=seq(0,12,length.out=20) #where the samples are taken isotoperatio=(-1)^(0:19) +0.2*0:19 plot(my.xdep3,my.ydep3,type='l',ylim=c(0,7),xlab='Stratigraphic Height',ylab='') lines(samplelocation,isotoperatio,type='l',lwd=4) legend('topleft',lwd=c(1,4),legend=c('Deposition rate','(Isotope) ratio')) #transform only (!) sample locations, NOT values #again using the default setting for unit reslist=pointtransform(points=samplelocation,xdep=my.xdep3,ydep=my.ydep3, direction='height to time') #Isotope ratios in time plot(reslist$time,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio',lwd=4)
Contains age models for the extinction at the K/Pg boundary on Seymour Island, Antarctica. Age models are based on
*the Stratigraphic height of the K/Pg boundary of 1007.5 m with an age of 66.04 Ma (Renne et al. 2013)
*magnetostratigraphy from Tobin et al. (2012) and ages from Gradstein et al. (2012), yielding an age of 66.389 Ma at the stratigraphic height of 934.4 m.
The stratigraphic height of a low deposition interval is assumed to be at 959.5 m based on section A from Witts et al. (2016).
Reference for stratigraphic heights is the composite section by Witts et al. (2016).
data(SeymourIslandBins)
data(SeymourIslandBins)
A list with entries named after the age models described in Hohmann (in preparation). Each of these age models consists of three vectors: 'age' and 'height' correspond to the age of deposition of a given stratigraphic height, and 'parameters' contains a description of the parameters used to generate the age models
Gradstein, Felix M., et al., eds. The geologic time scale 2012. elsevier, 2012.
Renne, Paul R., et al. "Time scales of critical events around the Cretaceous-Paleogene boundary." Science 339.6120 (2013): 684-687.
Tobin, Thomas S., et al. "Extinction patterns, delta18 O trends, and magnetostratigraphy from a southern high-latitude Cretaceous/Paleogene section: Links with Deccan volcanism." Palaeogeography, Palaeoclimatology, Palaeoecology 350 (2012): 180-188.
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>.
Witts, James D., et al. "Macrofossil evidence for a rapid and severe Cretaceous/Paleogene mass extinction in Antarctica." Nature communications 7 (2016): 11738.
data("SeymourIslandAgeModels") #Select age model B my.agemodel=SeymourIslandAgeModels$B #check parameters of age model my.agemodel$parameters plot(my.agemodel$age,my.agemodel$height,type='l', xlim=rev(range(my.agemodel$age)),xlab='Age [Ma]',ylab='Stratigraphic Height [m]')
data("SeymourIslandAgeModels") #Select age model B my.agemodel=SeymourIslandAgeModels$B #check parameters of age model my.agemodel$parameters plot(my.agemodel$age,my.agemodel$height,type='l', xlim=rev(range(my.agemodel$age)),xlab='Age [Ma]',ylab='Stratigraphic Height [m]')
Contains the sampling bins from Seymour Island from
Macellari (1984), section D
Witts et al. (2016), section A
Reference for stratigraphic heights is the composite section by Witts et al. (2016) with the K/Pg boundary at 1007.5 m. The bins from Macellari were correlated using the glauconite bed and the last ammonite occurrences at the K/PG boundary (Macellari 1984, p. 506 and 518, samples 401,402, and 403).
data(SeymourIslandBins)
data(SeymourIslandBins)
A list with two entries: One corresponding to the bins from Macellari (1984), the other to the bins from Witts et al. (2016)
Macellari, Carlos E. Late Cretaceous stratigraphy, sedimentology, and macropaleontology of Seymour Island, Antarctic Peninsula. Diss. The Ohio State University, 1984.
Witts, James D., et al. "Macrofossil evidence for a rapid and severe Cretaceous/Paleogene mass extinction in Antarctica." Nature communications 7 (2016): 11738.
data("SeymourIslandBins") #Compare bins from Macellari and Witts before the K/Pg extinction plot(SeymourIslandBins$Macellari.1984.Section.D., rep(0,length(SeymourIslandBins$Macellari.1984.Section.D.)), ylim=c(0,1.1),xlab='Stratigraphic Height [m]',xlim=c(930,1007.5)) points(SeymourIslandBins$Witts.et.al.2016.Section.A, rep(0.2,length(SeymourIslandBins$Witts.et.al.2016.Section.A)),pch=19) lines(c(1007.5,1007.5),c(0,2)) legend('topleft',pch=c(1,19,NA),lty=c(NA,NA,1),legend=c('Macellari','Witts','K/Pg boundary'))
data("SeymourIslandBins") #Compare bins from Macellari and Witts before the K/Pg extinction plot(SeymourIslandBins$Macellari.1984.Section.D., rep(0,length(SeymourIslandBins$Macellari.1984.Section.D.)), ylim=c(0,1.1),xlab='Stratigraphic Height [m]',xlim=c(930,1007.5)) points(SeymourIslandBins$Witts.et.al.2016.Section.A, rep(0.2,length(SeymourIslandBins$Witts.et.al.2016.Section.A)),pch=19) lines(c(1007.5,1007.5),c(0,2)) legend('topleft',pch=c(1,19,NA),lty=c(NA,NA,1),legend=c('Macellari','Witts','K/Pg boundary'))
This function takes a binned deposition rate and reconstructs at what time a given stratigraphic height was deposited. Essentially a wrapper of pointtransform(...,direction='height to time',depositionmodel='binned deposition rate')
kept for backwards compatibility of the package. It is recommended to use pointtransform
instead of this function.
strattotimepointbin(x, binborder, depoval, hiatuslist = list(), unit = "sediment per time")
strattotimepointbin(x, binborder, depoval, hiatuslist = list(), unit = "sediment per time")
x |
Vector containing the stratigraphic heights whose time of deposition are to be determined |
binborder |
Vector of strictly increasing numerical values. Defines the borders of the bins in stratigraphic height |
depoval |
Strictly positive vector of length |
hiatuslist |
OPTIONAL, default is an empty list. A list of hiatuses to insert. Every entry in the list corresponds to a hiatus, which is given as a vector of length two. The first entry of the vector is the stratigraphic height of the hiatus, the second entry is the duration of the hiatus. |
unit |
OPTIONAL, default is "sediment per time". Either "sediment per time" or "time per sediment". Determines the unit that is assumed for the input given by |
Returns a list containing
age |
vector containing ages of deposition of the stratigraphic heights given by the input |
height |
vector containing the heights that were deposited at the times given by |
Output of NA
in age
indicates that some values coincide with a hiatus or are located at places where the deposition rate is undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
pointtransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
##define deposition rate binborder=1:6 #bins in tratigraphic height depoval=c(1,4,5,2,2) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(approx(binborder,c(depoval,tail(depoval,1)),method='constant',xout=seq(min(binborder), max(binborder),length.out=100)),type='l',main='Deposition Rate',xlab='Stratigraphic Height', ylab=usedunit,ylim=c(0,max(depoval))) ##at what time was the point with tratigraphic height 3.5 deposited? strattotimepointbin(3.5,binborder,depoval) ##create an age model stratheight=seq(min(binborder),max(binborder),length.out=100) reslist=strattotimepointbin(stratheight,binborder,depoval,unit=usedunit) #plot age model usedunit="sediment per time" plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) #create age model but with other units for sedimentn input usedunit='time per sediment' reslist=strattotimepointbin(stratheight,binborder,depoval,unit=usedunit) #plot age model (note the difference this setting makes) plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) ##create age model with a hiatus stratigraphicheight=5 #strat. height of the hiatus duration=2 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=strattotimepointbin(stratheight,binborder,depoval,hiatuslist=hiatuslist) #!using default setting for units again! plot(reslist$age,reslist$height,xlab='Time',ylab='stratigraphic height') ##Transform isotope ratios depoval=c(1,4,0.1,2,2) #create fake oxygen isotope curves samplelocation=sort(runif(20,min=min(binborder),max=max(binborder))) #where the samples are taken isotoperatio=sin(samplelocation)*rnorm(length(samplelocation)) #isotope ratios of the samples plot(samplelocation,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio') #transform only (!) sample locations, NOT values reslist=strattotimepointbin(samplelocation,binborder,depoval) #Isotope ratios in time plot(reslist$age,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio')
##define deposition rate binborder=1:6 #bins in tratigraphic height depoval=c(1,4,5,2,2) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(approx(binborder,c(depoval,tail(depoval,1)),method='constant',xout=seq(min(binborder), max(binborder),length.out=100)),type='l',main='Deposition Rate',xlab='Stratigraphic Height', ylab=usedunit,ylim=c(0,max(depoval))) ##at what time was the point with tratigraphic height 3.5 deposited? strattotimepointbin(3.5,binborder,depoval) ##create an age model stratheight=seq(min(binborder),max(binborder),length.out=100) reslist=strattotimepointbin(stratheight,binborder,depoval,unit=usedunit) #plot age model usedunit="sediment per time" plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) #create age model but with other units for sedimentn input usedunit='time per sediment' reslist=strattotimepointbin(stratheight,binborder,depoval,unit=usedunit) #plot age model (note the difference this setting makes) plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) ##create age model with a hiatus stratigraphicheight=5 #strat. height of the hiatus duration=2 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=strattotimepointbin(stratheight,binborder,depoval,hiatuslist=hiatuslist) #!using default setting for units again! plot(reslist$age,reslist$height,xlab='Time',ylab='stratigraphic height') ##Transform isotope ratios depoval=c(1,4,0.1,2,2) #create fake oxygen isotope curves samplelocation=sort(runif(20,min=min(binborder),max=max(binborder))) #where the samples are taken isotoperatio=sin(samplelocation)*rnorm(length(samplelocation)) #isotope ratios of the samples plot(samplelocation,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio') #transform only (!) sample locations, NOT values reslist=strattotimepointbin(samplelocation,binborder,depoval) #Isotope ratios in time plot(reslist$age,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio')
This function takes a continuous deposition rate and reconstructs at what time a given stratigraphic height was deposited. Essentially a wrapper of pointtransform(...,direction='height to time',depositionmodel='piecewise linear deposition rate')
kept for backwards compatibility of the package. It is recommended to use pointtransform
instead of this function.
strattotimepointcont(x, xdep, ydep, hiatuslist = list(), unit = "sediment per time")
strattotimepointcont(x, xdep, ydep, hiatuslist = list(), unit = "sediment per time")
x |
Vector containing the stratigraphic heights whose time of deposition are to be determined |
xdep |
Vector of strictly increasing real numbers |
ydep |
Vector of the same length of |
hiatuslist |
OPTIONAL, default is an empty list. A list of hiatuses to insert. Every entry in the list corresponds to a hiatus, which is given as a vector of length two. The first entry of the vector is the stratigraphic height of the hiatus, the second entry is the duration of the hiatus. |
unit |
OPTIONAL, default is "sediment per time". Either "sediment per time" or "time per sediment". Determines the unit that is assumed for the deposition rate. |
Returns a list containing
age |
vector containing times of deposition of the stratigraphic heights given by the input |
height |
vector containing the heights that were deposited at the times given by |
Output of NA
in age
indicates that some values coincide with a hiatus or are located at places where the deposition rate is undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
pointtransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
##define deposition rate xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #unit of deposition rate is sediment per time unit (default setting) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Stratigraphic Height',ylab=usedunit) ##at what time was the point with tratigraphic height 9 deposited? strattotimepointcont(9,xdep,ydep) ##create an age model stratheight=seq(min(xdep),max(xdep),length.out=100) usedunit="sediment per time" reslist=strattotimepointcont(stratheight,xdep,ydep,unit=usedunit) #plot age model plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) #create age model but with other units for sedimentn input usedunit='time per sediment' reslist=strattotimepointcont(stratheight,xdep,ydep,unit=usedunit) #plot age model (note the difference this setting makes) plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) ##create age model with a hiatus stratigraphicheight=5 #strat. height of the hiatus duration=2 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=strattotimepointcont(stratheight,xdep,ydep,hiatuslist=hiatuslist) #!using default setting for units again! plot(reslist$age,reslist$height,xlab='Time',ylab='stratigraphic height') ##Transform isotope ratios #create fake oxygen isotope curves samplelocation=sort(runif(20,min=min(xdep),max=max(xdep))) #where the samples are taken isotoperatio=sin(samplelocation)*rnorm(length(samplelocation)) #isotope ratios of the samples plot(samplelocation,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio') #transform only (!) sample locations, NOT values reslist=strattotimepointcont(samplelocation,xdep,ydep) #Isotope ratios in time plot(reslist$age,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio')
##define deposition rate xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #unit of deposition rate is sediment per time unit (default setting) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Stratigraphic Height',ylab=usedunit) ##at what time was the point with tratigraphic height 9 deposited? strattotimepointcont(9,xdep,ydep) ##create an age model stratheight=seq(min(xdep),max(xdep),length.out=100) usedunit="sediment per time" reslist=strattotimepointcont(stratheight,xdep,ydep,unit=usedunit) #plot age model plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) #create age model but with other units for sedimentn input usedunit='time per sediment' reslist=strattotimepointcont(stratheight,xdep,ydep,unit=usedunit) #plot age model (note the difference this setting makes) plot(reslist$age,reslist$height,xlab='Time',ylab='Stratigraphic Height', main=paste('Age model with unit',usedunit)) ##create age model with a hiatus stratigraphicheight=5 #strat. height of the hiatus duration=2 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=strattotimepointcont(stratheight,xdep,ydep,hiatuslist=hiatuslist) #!using default setting for units again! plot(reslist$age,reslist$height,xlab='Time',ylab='stratigraphic height') ##Transform isotope ratios #create fake oxygen isotope curves samplelocation=sort(runif(20,min=min(xdep),max=max(xdep))) #where the samples are taken isotoperatio=sin(samplelocation)*rnorm(length(samplelocation)) #isotope ratios of the samples plot(samplelocation,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio') #transform only (!) sample locations, NOT values reslist=strattotimepointcont(samplelocation,xdep,ydep) #Isotope ratios in time plot(reslist$age,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio')
This function transforms a given binned stratigraphic pattern into the corresponding temporal pattern. The transformation is based on the age model derived from the given deposition rate. Essentially a wrapper of patterntransform(...,direction='height to time',depositionmodel='binned deposition rate',patternmode='binned')
kept for backwards compatibility of the package.
It is recommended to use patterntransform
instead of this function.
strattotimeratebin(binborder, depoval, signalval, pos = NULL, hiatuslist = list(), unit = "sediment per time")
strattotimeratebin(binborder, depoval, signalval, pos = NULL, hiatuslist = list(), unit = "sediment per time")
binborder |
Vector of strictly increasing numerical values. Defines the borders of the bins in stratigraphic height |
depoval |
Strictly positive vector of length |
signalval |
Positive vector of length |
pos |
OPTIONAL. Vector of points in stratigrapic height that will be transformed into time, and where the temporal pattern will evaluated. Default setting is a vector spanning the interval of interest with evenly spaced points (no. is chosen by the code) |
hiatuslist |
OPTIONAL, default is an empty list. A list of hiatuses to insert. Every entry in the list corresponds to a hiatus, which is given as a vector of length two. The first entry of the vector is the stratigraphic height of the hiatus, the second entry is the duration of the hiatus. |
unit |
OPTIONAL, default is "sediment per time". Either "sediment per time" or "time per sediment". Determines the unit that is assumed for the input given by |
Returns a list containing
age |
vector containing times |
val |
vector containign the values of the temporal pattern at the times given by the first entry of the list |
The temporal pattern can be approximated by approxfun(output$age,output$val)
. Output of NA
indicates that some values coincide with a hiatus or are located at places where the deposition rate/stratigraphic pattern are undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
patterntransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
##define deposition rate and stratigraphic pattern binborder=1:6 #bins in tratigraphic height depoval=c(1,4,0.1,2,2) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(approx(binborder,c(depoval,tail(depoval,1)),method='constant', xout=seq(min(binborder),max(binborder),length.out=100)),type='l',main='Deposition Rate', xlab='Stratigraphic Height',ylab=usedunit,ylim=c(0,max(depoval))) #define stratigraphic rate signalval=c(runif(5)) #plot stratigraphic pattern plot(approx(binborder,c(signalval,tail(signalval,1)),method='constant', xout=seq(min(binborder),max(binborder),length.out=100)),type='l',main='Deposition Rate', xlab='Stratigraphic Height', ylab='Stratigraphic Pattern',ylim=c(0,max(signalval))) ##transform stratigraphic pattern into temporal pattern usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) reslist=strattotimeratebin(binborder,depoval, signalval,unit=usedunit) #plot results plot(reslist$age,reslist$val,xlab='time',ylab='temporal pattern', main=paste('depoval interpreted as',usedunit)) usedunit="time per sediment" #use other input interpretation reslist=strattotimeratebin(binborder,depoval, signalval,unit=usedunit) #note how different the results look!! plot(reslist$age,reslist$val,xlab='time',ylab='temporal pattern', main=paste('depoval interpreted as',usedunit)) ##insert a hiatus stratigraphicheight=3.5 #strat. height of the hiatus duration=2 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses #usedunit is back to default setting! reslist=strattotimeratebin(binborder,depoval, signalval,hiatuslist=hiatuslist) #the hiatus corresponds to the gap in the middle of the temporal rate plot(reslist$age,reslist$val,xlab='time',ylab='temporal pattern')
##define deposition rate and stratigraphic pattern binborder=1:6 #bins in tratigraphic height depoval=c(1,4,0.1,2,2) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(approx(binborder,c(depoval,tail(depoval,1)),method='constant', xout=seq(min(binborder),max(binborder),length.out=100)),type='l',main='Deposition Rate', xlab='Stratigraphic Height',ylab=usedunit,ylim=c(0,max(depoval))) #define stratigraphic rate signalval=c(runif(5)) #plot stratigraphic pattern plot(approx(binborder,c(signalval,tail(signalval,1)),method='constant', xout=seq(min(binborder),max(binborder),length.out=100)),type='l',main='Deposition Rate', xlab='Stratigraphic Height', ylab='Stratigraphic Pattern',ylim=c(0,max(signalval))) ##transform stratigraphic pattern into temporal pattern usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) reslist=strattotimeratebin(binborder,depoval, signalval,unit=usedunit) #plot results plot(reslist$age,reslist$val,xlab='time',ylab='temporal pattern', main=paste('depoval interpreted as',usedunit)) usedunit="time per sediment" #use other input interpretation reslist=strattotimeratebin(binborder,depoval, signalval,unit=usedunit) #note how different the results look!! plot(reslist$age,reslist$val,xlab='time',ylab='temporal pattern', main=paste('depoval interpreted as',usedunit)) ##insert a hiatus stratigraphicheight=3.5 #strat. height of the hiatus duration=2 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses #usedunit is back to default setting! reslist=strattotimeratebin(binborder,depoval, signalval,hiatuslist=hiatuslist) #the hiatus corresponds to the gap in the middle of the temporal rate plot(reslist$age,reslist$val,xlab='time',ylab='temporal pattern')
This function transforms a given continuous stratigraphic pattern into the corresponding temporal pattern. The transformation is based on the age model derived from the given deposition rate. Essentially a wrapper of patterntransform(...,direction='height to time',depositionmodel='piecewise linear deposition rate',patternmode='piecewise linear')
kept for backwards compatibility of the package. It is recommended to use patterntransform
instead of this function.
strattotimeratecont(xdep, ydep, xsig, ysig, pos = NULL, hiatuslist = list(), unit = "sediment per time")
strattotimeratecont(xdep, ydep, xsig, ysig, pos = NULL, hiatuslist = list(), unit = "sediment per time")
xdep |
Vector of strictly increasing real numbers |
ydep |
Vector of the same length of |
xsig |
Vector of strictly increasing real numbers |
ysig |
Vector of the same length of |
pos |
OPTIONAL. Vector of points in stratigrapic height that will be transformed into time, and determine where the temporal pattern is evaluated. Default setting is a vector spanning the interval of interest with evenly spaced points (no. is chosen by the code) |
hiatuslist |
OPTIONAL, default is an empty list. A list of hiatuses to insert. Every entry in the list corresponds to a hiatus, which is given as a vector of length two. The first entry of the vector is the stratigraphic height of the hiatus, the second entry is the duration of the hiatus. |
unit |
OPTIONAL, default is "sediment per time". Either "sediment per time" or "time per sediment". Determines the unit that is assumed for the deposition rate. |
Returns a list containing:
age |
vector containing times |
val |
vector containign the values of the temporal pattern at the times given by the first entry of the list |
The temporal pattern can then be approximated by approxfun(output$age,output$val)
. Output of NA
indicates that some values coincide with a hiatus or are located at places where the deposition rate/stratigraphic pattern are undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
patterntransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
##define deposition rate and stratigraphic pattern xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Stratigraphic Height', ylab=usedunit) #define a pattern xsig= seq(from=min(xdep),to=max(xdep),length.out=100) ysig=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(xsig) #function values of the signal plot(xsig,ysig,type='l',main='Stratigraphic Pattern', xlab='Stratigraphic Height',ylab='Intensity') ##transform stratigraphic pattern into temporal pattern usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) reslist=strattotimeratecont(xdep,ydep,xsig,ysig,unit=usedunit) #plot temporal pattern (transformed stratigrapic pattern) plot(reslist$age,reslist$val,type='l',xlab='Time',ylab='Intensity', main=paste('deposition rate interpreted as',usedunit)) #now using same input, but different interpretation of units usedunit="time per sediment" #now interpret the deposition rate in different units reslist=strattotimeratecont(xdep,ydep,xsig,ysig,unit=usedunit) #plot temporal pattern (transformed stratigrapic pattern) plot(reslist$age,reslist$val,type='l',xlab='Time',ylab='Intensity temporal pattern', main=paste('deposition rate interpreted as',usedunit)) #note how different the results look!! #Insert hiatus stratigraphicheight=5 #strat. height of the hiatus duration=4 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=strattotimeratecont(xdep,ydep,xsig,ysig,hiatuslist=hiatuslist) #unit is back to default plot(reslist$age,reslist$val,xlab='Time',ylab='Intensity',main='Temporal Pattern') #hiatus is approx between 2 and 5
##define deposition rate and stratigraphic pattern xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Stratigraphic Height', ylab=usedunit) #define a pattern xsig= seq(from=min(xdep),to=max(xdep),length.out=100) ysig=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(xsig) #function values of the signal plot(xsig,ysig,type='l',main='Stratigraphic Pattern', xlab='Stratigraphic Height',ylab='Intensity') ##transform stratigraphic pattern into temporal pattern usedunit="sediment per time" #unit of deposition rate is sediment per time unit (default setting) reslist=strattotimeratecont(xdep,ydep,xsig,ysig,unit=usedunit) #plot temporal pattern (transformed stratigrapic pattern) plot(reslist$age,reslist$val,type='l',xlab='Time',ylab='Intensity', main=paste('deposition rate interpreted as',usedunit)) #now using same input, but different interpretation of units usedunit="time per sediment" #now interpret the deposition rate in different units reslist=strattotimeratecont(xdep,ydep,xsig,ysig,unit=usedunit) #plot temporal pattern (transformed stratigrapic pattern) plot(reslist$age,reslist$val,type='l',xlab='Time',ylab='Intensity temporal pattern', main=paste('deposition rate interpreted as',usedunit)) #note how different the results look!! #Insert hiatus stratigraphicheight=5 #strat. height of the hiatus duration=4 #duration of the hiatus hiatuslist=list(c(stratigraphicheight,duration)) #required input format for hiatuses reslist=strattotimeratecont(xdep,ydep,xsig,ysig,hiatuslist=hiatuslist) #unit is back to default plot(reslist$age,reslist$val,xlab='Time',ylab='Intensity',main='Temporal Pattern') #hiatus is approx between 2 and 5
This function takes a binned deposition rate to determined what stratigraphic height of a section was deposited at a given time. Essentially a wrapper of pointtransform(...,direction='time to height',depositionmodel='binned deposition rate')
kept for backwards compatibility of the package. It is recommended to use pointtransform
instead of this function.
timetostratpointbin(x, binborder, depoval)
timetostratpointbin(x, binborder, depoval)
x |
Vector containing the times whose stratigraphic heights are to be determined |
binborder |
Vector of strictly increasing numerical values. Defines the borders of the bins in time |
depoval |
Vector of length |
Returns a list containing
height |
vector containing the stratigraphic heights that were deposited at the times given by the input |
age |
vector containing the ages at which the stratigraphic heights given by |
Output of NA
in height
indicates that some values coincide with a hiatus or are located at places where the deposition rate is undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
pointtransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
##Define deposition rate binborder=1:6 #temporal bins for the deposition rate depoval=c(5,4,3,1,2) #deposition rate in the bins #plot deposition rate depositionrate=approxfun(binborder,c(depoval,tail(depoval,1)),method="constant",yleft=NA,yright=NA) plot(depositionrate(seq(from=min(binborder),to=max(binborder),length.out=100)),xlab='time', ylab='deposition rate', main='Deposition rate') ##at what stratigraphic height can an object be found that was deposited in the ##sediment after 5 time units? timetostratpointbin(5,binborder,depoval) ##create age model #points that will be transformed into stratigraphic height time=seq(from=min(binborder),to=max(binborder),length.out=100) reslist=timetostratpointbin(time,binborder,depoval) #plot age model plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height',main='Age model') ## Age model with removal of sediment (hiatus) depoval=c(5,4,-3,1,2) #in the midle time bin, erosion rate is 3 reslist=timetostratpointbin(time,binborder,depoval) #plot age model. the gap represents the hiatus plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height', main='Age model with erosion') #A object deposited in the sediment after 3.5 time units is destroyed due to the hiatus: timetostratpointbin(3.5,binborder,depoval) ##transform isotope ratio curves depoval=c(5,4,2,1,0.1) #create fake ratios and sample locations sampletime=sort(runif(20,min=min(binborder),max=max(binborder))) #times where the samples were taken isotoperatio=sin(sampletime)*rnorm(length(sampletime)) #isotope ratios plot(sampletime,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio') #!!transform only (!) sample times, NOT isotope values!! reslist=timetostratpointbin(sampletime,binborder,depoval) #this is the resulting isotope ratio curve in stratigraphic height plot(reslist$height,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio')
##Define deposition rate binborder=1:6 #temporal bins for the deposition rate depoval=c(5,4,3,1,2) #deposition rate in the bins #plot deposition rate depositionrate=approxfun(binborder,c(depoval,tail(depoval,1)),method="constant",yleft=NA,yright=NA) plot(depositionrate(seq(from=min(binborder),to=max(binborder),length.out=100)),xlab='time', ylab='deposition rate', main='Deposition rate') ##at what stratigraphic height can an object be found that was deposited in the ##sediment after 5 time units? timetostratpointbin(5,binborder,depoval) ##create age model #points that will be transformed into stratigraphic height time=seq(from=min(binborder),to=max(binborder),length.out=100) reslist=timetostratpointbin(time,binborder,depoval) #plot age model plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height',main='Age model') ## Age model with removal of sediment (hiatus) depoval=c(5,4,-3,1,2) #in the midle time bin, erosion rate is 3 reslist=timetostratpointbin(time,binborder,depoval) #plot age model. the gap represents the hiatus plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height', main='Age model with erosion') #A object deposited in the sediment after 3.5 time units is destroyed due to the hiatus: timetostratpointbin(3.5,binborder,depoval) ##transform isotope ratio curves depoval=c(5,4,2,1,0.1) #create fake ratios and sample locations sampletime=sort(runif(20,min=min(binborder),max=max(binborder))) #times where the samples were taken isotoperatio=sin(sampletime)*rnorm(length(sampletime)) #isotope ratios plot(sampletime,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio') #!!transform only (!) sample times, NOT isotope values!! reslist=timetostratpointbin(sampletime,binborder,depoval) #this is the resulting isotope ratio curve in stratigraphic height plot(reslist$height,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio')
This function takes a continuous deposition rate to determined what stratigraphic height of a section was deposited at a given time. Essentially a wrapper of pointtransform(...,direction='time to height',depositionmodel='piecewise linear deposition rate')
kept for backwards compatibility of the package. It is recommended to use pointtransform
instead of this function.
timetostratpointcont(x, xdep, ydep)
timetostratpointcont(x, xdep, ydep)
x |
Vector containing the times whose stratigraphic heights are to be determined |
xdep |
Vector of strictly increasing real numbers |
ydep |
Vector of the same length of |
Returns a list containing
height |
vector containing the stratigraphic heights that were deposited at the times given by the input |
age |
vector containing the ages at which the stratigraphic heights given by |
Output of NA
in height
indicates that some values coincide with a hiatus or are located at places where the deposition rate is undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
pointtransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
##define deposition rate xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Time',ylab='Deposition Rate') ##at what stratigraphic height can an object be found that was deposited in the #sediment after 9 time units? timetostratpointcont(9,xdep,ydep) ##create age model #points that will be transformed into stratigraphic height time=seq(min(xdep),max(xdep),length.out=100) reslist=timetostratpointcont(time,xdep,ydep) #plot age model plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height',main='Age model') #age model with Removal of sediment #define deposition rate with negative deposition rate, e.g. removal of sediment xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,0,-2,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,main='Deposition Rate',xlab='Time',ylab='Deposition Rate') #sediment removal is done automatically. e.g. create age model as before: reslist=timetostratpointcont(time,xdep,ydep) #plot age model plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height',main='Age model') #transform isotope ratio curves ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) ##create fake ratios and sample locations sampletime=sort(runif(20,min=min(xdep),max=max(xdep))) #times where the samples were taken isotoperatio=sin(sampletime)*rnorm(length(sampletime)) #isotope ratios plot(sampletime,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio') #transform only (!) sample times, NOT values reslist=timetostratpointcont(sampletime,xdep,ydep) #this is the resulting isotope ratio curve in stratigraphic height plot(reslist$height,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio')
##define deposition rate xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Time',ylab='Deposition Rate') ##at what stratigraphic height can an object be found that was deposited in the #sediment after 9 time units? timetostratpointcont(9,xdep,ydep) ##create age model #points that will be transformed into stratigraphic height time=seq(min(xdep),max(xdep),length.out=100) reslist=timetostratpointcont(time,xdep,ydep) #plot age model plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height',main='Age model') #age model with Removal of sediment #define deposition rate with negative deposition rate, e.g. removal of sediment xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,0,-2,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,main='Deposition Rate',xlab='Time',ylab='Deposition Rate') #sediment removal is done automatically. e.g. create age model as before: reslist=timetostratpointcont(time,xdep,ydep) #plot age model plot(reslist$height,reslist$age,type='l',ylab='Time',xlab='Stratigraphic Height',main='Age model') #transform isotope ratio curves ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) ##create fake ratios and sample locations sampletime=sort(runif(20,min=min(xdep),max=max(xdep))) #times where the samples were taken isotoperatio=sin(sampletime)*rnorm(length(sampletime)) #isotope ratios plot(sampletime,isotoperatio,type='l',xlab='Time',ylab='Isotope Ratio') #transform only (!) sample times, NOT values reslist=timetostratpointcont(sampletime,xdep,ydep) #this is the resulting isotope ratio curve in stratigraphic height plot(reslist$height,isotoperatio,type='l',xlab='Stratigraphic Height',ylab='Isotope Ratio')
This function transforms a given binned temporal pattern into the corresponding stratigraphic pattern. The transformation is based on the age model derived from the given deposition rate. Essentially a wrapper of patterntransform(...,direction='time to height',depositionmodel='binned deposition rate',patternmode='binned')
kept for backwards compatibility of the package. It is recommended to use patterntransform
instead of this function.
timetostratratebin(binborder, depoval, signalval, pos = NULL)
timetostratratebin(binborder, depoval, signalval, pos = NULL)
binborder |
Vector of strictly increasing numerical values. Defines the borders of the bins in time |
depoval |
Strictly positive vector of length |
signalval |
Positive vector of length |
pos |
OPTIONAL. Vector of points in time that will be transformed into stratigraphic height, and where the stratigraphic pattern will evaluated. Default setting is a vector spanning the interval of interest with evenly spaced points (no. is chosen by the code) |
A list containing the following entries:
height |
vector containing stratigraphic heights |
val |
vector containing the values of the stratigraphic pattern at the height given by |
NA is returned if the values coincide with a hiatus or when the deposition rate/temporal pattern are undefined.
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
patterntransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
## Define deposition rate binborder=1:6 #temporal bins for the deposition rate depoval=c(5,4,3,1,2) #deposition rate in the bins #plot deposition rate depositionrate=approxfun(binborder,c(depoval,tail(depoval,1)),method="constant",yleft=NA,yright=NA) plot(depositionrate(seq(from=min(binborder),to=max(binborder),length.out=100)),xlab='time', ylab='deposition rate', main='Deposition rate') ## Define temporal pattern signalval=c(1,0,5,2,1) #plot temporal pattern temporalpat=approxfun(binborder,c(signalval,tail(signalval,1)),method="constant", yleft=NA,yright=NA) plot(temporalpat(seq(from=min(binborder),to=max(binborder),length.out=100)),xlab='time', ylab='Intensity', main='Temporal Pattern') ## Transform temporal pattern into stratigraphic pattern reslist=timetostratratebin(binborder,depoval,signalval) #plot resulting stratigraphic pattern plot(reslist$height,reslist$val,xlab='Stratigraphic Height',ylab='Intensity', main='Stratigraphic Pattern') ## With removal of sediment (hiatus) depoval=c(5,4,-3,1,2) #erosion rate is 3 in the middle time bin reslist=timetostratratebin(binborder,depoval,signalval) #plot resulting stratigraphic pattern plot(reslist$height,reslist$val,xlab='Stratigraphic Height',ylab='Intensity', main='Stratigraphic Pattern')
## Define deposition rate binborder=1:6 #temporal bins for the deposition rate depoval=c(5,4,3,1,2) #deposition rate in the bins #plot deposition rate depositionrate=approxfun(binborder,c(depoval,tail(depoval,1)),method="constant",yleft=NA,yright=NA) plot(depositionrate(seq(from=min(binborder),to=max(binborder),length.out=100)),xlab='time', ylab='deposition rate', main='Deposition rate') ## Define temporal pattern signalval=c(1,0,5,2,1) #plot temporal pattern temporalpat=approxfun(binborder,c(signalval,tail(signalval,1)),method="constant", yleft=NA,yright=NA) plot(temporalpat(seq(from=min(binborder),to=max(binborder),length.out=100)),xlab='time', ylab='Intensity', main='Temporal Pattern') ## Transform temporal pattern into stratigraphic pattern reslist=timetostratratebin(binborder,depoval,signalval) #plot resulting stratigraphic pattern plot(reslist$height,reslist$val,xlab='Stratigraphic Height',ylab='Intensity', main='Stratigraphic Pattern') ## With removal of sediment (hiatus) depoval=c(5,4,-3,1,2) #erosion rate is 3 in the middle time bin reslist=timetostratratebin(binborder,depoval,signalval) #plot resulting stratigraphic pattern plot(reslist$height,reslist$val,xlab='Stratigraphic Height',ylab='Intensity', main='Stratigraphic Pattern')
This function transforms a given continuous temporal pattern into the corresponding stratigraphic pattern. The transformation is based on the age model derived from the given deposition rate. Essentially a wrapper of patterntransform(...,direction='time to height',depositionmodel='piecewise linear deposition rate',patternmode='piecewise linear')
kept for backwards compatibility of the package. It is recommended to use patterntransform
instead of this function.
timetostratratecont(xdep, ydep, xsig, ysig, pos = NULL)
timetostratratecont(xdep, ydep, xsig, ysig, pos = NULL)
xdep |
Vector of strictly increasing real numbers |
ydep |
Vector of the same length of |
xsig |
Vector of strictly increasing real numbers |
ysig |
Vector of the same length of |
pos |
OPTIONAL. Vector of points in time height that will be transformed into stratigraphic height, and determine where the stratigraphic pattern is evaluated. Default setting is a vector spanning the interval of interest with evenly spaced points (no. is chosen by the code) |
Returns a list containing:
height |
vector containing stratigraphic heights |
val |
vector containign the values of the stratigraphic pattern at |
The stratigraphic pattern can be approximated using stratpat=approxfun(height,val)
Niklas Hohmann
Hohmann, Niklas. 2018. Quantifying the Effects of Changing Deposition Rates and Hiatii on the Stratigraphic Distribution of Fossils. <doi:10.13140/RG.2.2.23372.51841>
patterntransform
for the more general function underlying this wrapper
For an overview of the functions in the DAIME package, see its vignette (available via vignette("DAIME")
)
##define deposition rate xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Time',ylab='Sediment per Time Unit') #define a temporal pattern xsig= seq(0,12,length.out=100) ysig=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(xsig) plot(xsig,ysig,type='l',main='Temporal Pattern',xlab='Time',ylab='Intensity') ##transform temporal pattern into stratigraphic pattern (pattern observable in the section) reslist=timetostratratecont(xdep,ydep,xsig,ysig) plot(reslist$height,reslist$val,type='l',xlab='Stratigraphic Height', ylab='Intensity',main='Stratigraphic Pattern') ##with removal of sediment ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,-2,5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Time',ylab='Sediment per Time Unit') reslist=timetostratratecont(xdep,ydep,xsig,ysig) plot(reslist$height,reslist$val,type='l',xlab='Stratigraphic Height', ylab='Intensity',main='Stratigraphic Pattern',ylim=c(0,1)) #the spike is because the deposition rate is very small when it transitions from #negative to positive, generating a punctual extreme condensation
##define deposition rate xdep=seq(0,12,length.out=100) ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,1,0.5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Time',ylab='Sediment per Time Unit') #define a temporal pattern xsig= seq(0,12,length.out=100) ysig=splinefunH(x=c(0,4,12),y=c(0.5,2,0.5),m=c(0,0,0))(xsig) plot(xsig,ysig,type='l',main='Temporal Pattern',xlab='Time',ylab='Intensity') ##transform temporal pattern into stratigraphic pattern (pattern observable in the section) reslist=timetostratratecont(xdep,ydep,xsig,ysig) plot(reslist$height,reslist$val,type='l',xlab='Stratigraphic Height', ylab='Intensity',main='Stratigraphic Pattern') ##with removal of sediment ydep=splinefunH(x=c(0,2,4,6,8,10,12),y=c(1,5,6,-2,5,1,6),m=c(0,1.5,-0.5,-0.5,0,0.5,0))(xdep) #Plot deposition rate plot(xdep,ydep,type='l',main='Deposition Rate',xlab='Time',ylab='Sediment per Time Unit') reslist=timetostratratecont(xdep,ydep,xsig,ysig) plot(reslist$height,reslist$val,type='l',xlab='Stratigraphic Height', ylab='Intensity',main='Stratigraphic Pattern',ylim=c(0,1)) #the spike is because the deposition rate is very small when it transitions from #negative to positive, generating a punctual extreme condensation