Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Paleoearthquake chronology with luminescence data

170 views
Skip to first unread message

Roberta Wilkinson

unread,
Sep 13, 2023, 5:08:45 AM9/13/23
to OxCal
Hi there,

I am using oxcal for a paleoseismic trench, dated with IRSL - I have pasted my model at the end of the message. I have 3 queries I am hoping that someone might be able to help me with:

1. Where to put boundaries in the model: I have read the 2009 paper with the example for paleoearthquakes and this conversation, but I'm still not sure if I have used boundaries correctly. I am confident that there is a depositional haitus between each of my phases, but I'm not sure where to put the boundary with respect to the earthquakes. Should I put a boundary above and below each earthquake?

2. Is there a way of outputting the averages or peaks of the output distributions rather than just the ranges?

3. I am using IRSL ages and need to add in a systematic error of 2% to the outputs of Oxcal - is there a standard way to do this when not all of the outputs are Gaussian (e.g. one earthquake date produces a range with two differently shaped tails)?

Many thanks,

Roberta

Code:

 Plot()
 {
  Sequence("Trench")
  {
   Boundary("Base");
   Phase("Unit2")
   {
    C_Date("KAZT1", -8075, 753);
    C_Date("KAZT2", -7378, 679);
   };
   Boundary("Top U2");
   Date("E2");
   Phase("Unit5")
   {
    C_Date("KAZT3", -7196, 707);
    C_Date("KAZT4", -8356, 772);
    C_Date("KAZT5", -7512, 681);
   };
   Boundary("Top U5");
   Date("E1");
   C_Date("KAZT6", 481, 125);
   Boundary("Young");
  };
 };

Christopher Ramsey

unread,
Sep 13, 2023, 6:00:53 AM9/13/23
to OxCal group
Roberta

Thanks for your email. On the questions:

1. There is not a universally applicable answer to this. The Boundaries should be used to reflect changes in sampling rates - so if you have a lot of samples from particular layers they should be bracketed with boundaries. Where you have just the event (eg E1) it should not really make any difference if this is a boundary or not - unless you have a lot of dates immediately above or below where they should be.

2. Yes - in the table window use [Edit > Format] and select μ and σ from the summary statistics - then press [Ok].

3. If you want to add uncertainty to the final outputs you can do that using code like:

Plot()
{
Sequence("Trench")
{
Boundary("Base");
Phase("Unit2")
{
C_Date("KAZT1", -8075, 753);
C_Date("KAZT2", -7378, 679);
};
Boundary("Top_U2");
Date("E2");
Phase("Unit5")
{
C_Date("KAZT3", -7196, 707);
C_Date("KAZT4", -8356, 772);
C_Date("KAZT5", -7512, 681);
};
Boundary("Top_U5");
Date("E1");
C_Date("KAZT6", 481, 125);
Boundary("Young");
};
Base_Sigma=Base+N(0,200);
Top_U2_Sigma=Top_U2+N(0,200);
E2_Sigma=E2+N(0,200);
Top_U5_Sigma=Top_U5+N(0,200);
E1_Sigma=E1+N(0,200);
Young_Sigma=Young+N(0,200);
};

This will add an extra 200 year uncertainty in this case to the events named ..._Sigma at the bottom. A couple of things to note:

a) if you want to use code like this your event names should not have spaces etc - they need to be valid parameter names so they can be used in an expression. I have changed your "Top U2" to "Top_U2" for example.

b) you can only add a defined extra error term - so not proportional to age.

c) these errors are all independent - perhaps you want them to be dependent. This might be better done another way

If you want to apply the uncertainty to the IRSL ages - it is better to enter them as ages and then you can add in a proportional uncertainty which is systematic. The following code assumes the measurements were made at the start of 2023 and there is a systematic additional 2% error:

Plot()
{
Uncertainty=N(1,0.02);
Sequence("Trench")
{
Boundary("Base");
Phase("Unit2")
{
Date("KAZT1",2023-N(10098,753)*Uncertainty);
Date("KAZT2",2023-N(9401,679)*Uncertainty);
};
Boundary("Top_U2");
Date("E2");
Phase("Unit5")
{
Date("KAZT3",2023-N(9219,707)*Uncertainty);
Date("KAZT4",2023-N(10397,772)*Uncertainty);
Date("KAZT5",2023-N(9535,681)*Uncertainty);
};
Boundary("Top_U5");
Date("E1");
Date("KAZT6",2023-N(1542,125)*Uncertainty);
Boundary("Young");
};
};

If you also had radiocarbon in here - all the IRSL dates would move systematically. This approach is useful if you have some systematic component to the error such as water content.

Best wishes

Christopher
> --
> You received this message because you are subscribed to the Google Groups "OxCal" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to oxcal+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/oxcal/f53c8fcd-358a-414b-b6a3-2708bd8bf30en%40googlegroups.com.

Jason Padgett

unread,
Jun 6, 2024, 2:34:37 PM6/6/24
to OxCal
Hello All,

Considering the discussion regarding #1 from above and similar to Roberta Wilkinson's approach, I am also wondering about your thoughts on the use of Boundaries in a depositional sequence model (with phases). Based on an OxCal workshop instructor's advice, we are placing Boudary commands where we think erosion may have occurred (depositional/stratigraphic hiatus) in our compostite stratigrahhic section.

In our dataset, we have 12 events (with ~200-500yr event recurrence intervals) and each of our phases (between our events) contain 2-7 radiocarbon ages.

We think erosion likely happened directly below our event deposits and want to account for that uncertainty. So, in our model we are placing Boundary command lines (stratigraphically) below Date command lines, and then we are using the modeled Date as our event age estimates. (example script portion below)

-------------
Boundary("EZmax");
Date("EventZ");
Phase("EYmax&EZmin")
{
R_Date("900",2920,120)
Outlier("General".0.05);
R_Date("899",2900,20)
Outlier("General".0.05);
R_Date("898",2895,15)
Outlier("General".0.05);
};
Boundary("EYmax");
Date("EventY");
Phase("EXmax&EYmin")
{
R_Date("897",2820,90)
Outlier("General".0.05);
R_Date("896",2790,15)
Outlier("General".0.05);
R_Date("895",2570,25)
Outlier("General".0.05);
R_Date("894",2570,20)
Outlier("General".0.05);
R_Date("893",2560,90)
Outlier("General".0.05);
};
Boundary("EXmax");
Date("EventX");
Phase("EWmax&EXmin")
{
R_Date("892",2500,20)
Outlier("General".0.05);
R_Date("891",2340,45)
Outlier("General".0.05);
R_Date("890",2255,15)
Outlier("General".0.05);
};
-----------------

Compared to just using a Date command only, in most instances, the Boundary-below-Date approach skews the average event age slightly younger (~2-4 decades) and increases the modeled age range size. We are comfortable with these effects and results (as we're intrepting them to be accounting for possibility of erosion below our event deposits) but are wondering your thoughts on our Boundary-below-Date approach.

Can you confirm if you think the Boundary-below-date approach is reasonable? 
Am I misunderstanding the OxCal workshop instructors' advice? 
Do you know of any reference(s) that use boundary commands to account for possible/known erosion?


Cheers,
-J

Erik Marsh

unread,
Jun 7, 2024, 8:48:47 AM6/7/24
to OxCal
Hey Jason – 

For stratigraphic breaks, you could use Date or Boundary. I don't think you need both, unless you have more stratigraphic detail to justify that.
Date is a query – we're just asking the model for the timing of an undated event at that point in the sequence. (Dates can be also priors if we give them parameters, which is not the case here).
Boundary is a prior – we're giving the model new information. We're telling OxCal that a new depositional rate is beginning. I think your instructor is right, most of the time, erosional surface means we should assume a new depositional regime begins that could have a different depositional rate. (I used this approach for a lake core in south america in a 2015 paper).
The main paper on these methods is Bronk Ramsey 2008, which also has examples. If you have depths for your samples, you'll get a better result with a P_Sequence (but this is more complex and maybe not be workshop material).

To use outlier models, you need to call an outlier model at the top. For each date, put the outlier code in brackets. The whole thing needs be within a Sequence, like so:

 Plot()
 {
  Outlier_Model("General",T(5),U(0,4),"t");
  Sequence()
  {
   Boundary("EZ");
   Phase("EYmax&EZmin")
   {
    R_Date("900",2920,120) { Outlier(0.05); };
    R_Date("899",2900,20) { Outlier(0.05); };
    R_Date("898",2895,15) { Outlier(0.05); };
   };
   Boundary("EY");
   Phase("EXmax&EYmin")
   {
    R_Date("897",2820,90) { Outlier(0.05); };
    R_Date("896",2790,15) { Outlier(0.05); };
    R_Date("895",2570,25) { Outlier(0.05); };
    R_Date("894",2570,20) { Outlier(0.05); };
    R_Date("893",2560,90) { Outlier(0.05); };
   };
   Boundary("EX");
   Phase("EWmax&EXmin")
   {
    R_Date("892",2500,20) { Outlier(0.05); };
    R_Date("891",2340,45) { Outlier(0.05); };
    R_Date("890",2255,15) { Outlier(0.05); };
   };
   Boundary("EW");
  };
 };

Hope this helps
Erik

Richard Staff

unread,
Jun 7, 2024, 9:21:37 AM6/7/24
to OxCal
Hi Jason, hi Erik,

I don't know if I might not even have been the aforementioned "OxCal workshop instructor"(?!)...

The one thing that I would add from Erik's code is a second (i.e., paired) Boundary... So something more like:

 Plot()
 {
  Outlier_Model("General",T(5),U(0,4),"t");
  Sequence()
  {
   Boundary("EZ top");
   Phase("EZ to EY")

   {
    R_Date("900",2920,120) { Outlier(0.05); };
    R_Date("899",2900,20) { Outlier(0.05); };
    R_Date("898",2895,15) { Outlier(0.05); };
   };
   Boundary("EY base");
   Interval("Event Y");
   Boundary("EY top");
   Phase("EXmax&EYmin")
   {
    R_Date("897",2820,90) { Outlier(0.05); };
    R_Date("896",2790,15) { Outlier(0.05); };
    R_Date("895",2570,25) { Outlier(0.05); };
    R_Date("894",2570,20) { Outlier(0.05); };
    R_Date("893",2560,90) { Outlier(0.05); };
   };
   Boundary("EX base");
   Interval("Event X");
   Boundary("EX top");
   Phase("EWmax&EXmin")
   {
    R_Date("892",2500,20) { Outlier(0.05); };
    R_Date("891",2340,45) { Outlier(0.05); };
    R_Date("890",2255,15) { Outlier(0.05); };
   };
   Boundary("EW base");
  };
 };

In so doing, you allow for the passing of elapsed time... OR removed time (i.e., due to erosion), which Erik's model isn't doing.

This is not really different from your own model Jason, except that the Interval function is explicitly giving you a PDF for the time span represented by the eroded material.

For visualisation purposes, you can switch the Interval for a Date function... But I would guess that the Interval command might be more useful to you(?).

As Erik says, you can use this double Boundary code (with Interval functions) within a P_Sequence, if you have continuous deposition between the erosive units, but it sounds like this is not the case with your specific study Jason?

Hope this helps,

Richard 😊


From: ox...@googlegroups.com <ox...@googlegroups.com> on behalf of Erik Marsh <erik....@gmail.com>
Sent: 07 June 2024 13:48
To: OxCal <ox...@googlegroups.com>
Subject: Re: Paleoearthquake chronology with luminescence data
 

Jason Padgett

unread,
Jun 11, 2024, 12:52:41 AM6/11/24
to OxCal
Hello Erik and Richard,

Thank you both for your responses. However, I'm still wondering about your thoughts on our boundary-under-date approach and I think I need to explain a bit more. (real quick, I only posted a portion of our code to save on space. We have Outlier_Model and the base and top boundaries in the complete model script)

We are constructing age-depth models to estimate the timing lake tubidite (event) deposition. We assume that sedimentation accumulated continuously and was occasional punctuated with rapid Event deposition, which was likely erosional in some areas of the lake. Our composite stratigraphic section is comprised of age constriants from multiple core sites spread across the lake and because each of the core sites archive a unique sedimentation and erosional history, we (conservatively) think that erosion is likley included within our composite stratigraphic section data (depths and ages). We want to construct a conservative age model that (1) accounts for the possibility of erosion (boundary prior) below our Event depths, and (2) estimates the timing of event deposition (date query).

Erik, 
Yes, we think we have stratigraphic detail (interpretation) to justify the use of both boundary (prior) and date (query) commands. We do not prefer P_sequence as it requires, in a strict sense, that sedimentation histories (deposit-sample interval depth rleationships) are equal across the all cores/ages used in the composite section. To avoid that assumption, we prefer Sequence for our application. Regarding your Outlier syntax comment, this is how the Oxcal model builder included the outlier command for us, i.e., we get outlier results using our syntax method. Are our Outlier results flawed?

Richard,
Yes, you were the instructor! Thank you for remembering!
Perhaps I'm misunderstanding semantics, but I think we don't just want to account for the time span of the erosional material (your suggested interval command), we want Event estimates that account for possibilty of erosion (below the event deposit) by understanding that the maximum ages in our composite section are likley relatively old maximums, which is different than our minimums (we think the minimums are good). In my mind, our boundary-below-date approach is accounting for the possibility of erosion below our event deposits, by skewing the timing estimates slightly younger than compared to a Date only approach.

I'm thinking that the double boundary and interval approach would match an interpretation where background sedimentation rates differ after each event. Is that logic accurate?
Also, I'm thinking that the double boundary and interval approach would treat the minimum ages and maximum ages as equally relevant, which would not match our interpretation. Is that logic accruate?


Soo, do you think our model approach matches our stratigraphic interpretation? Or, am I mixing up the semantics and Richard's double Boundary and Interval approach a better match to our stratigraphic interpretation? Or a different approach entirely?

As always, your thoughts and insight are much appreciated.

Cheers,
-J

Jason Padgett

unread,
Jun 11, 2024, 1:05:14 AM6/11/24
to OxCal
Oops, sorry Erik...reagrding the Oulier command, in my example script portion from the earlier mesage, the periods after "General" are actually commas in the script.

Erik Marsh

unread,
Jun 12, 2024, 9:00:09 AM6/12/24
to OxCal
Jason,

Outlier syntax. I actually didn't know OxCal would accept an Outlier tag likes that, without brackets – I've learned something new! This is much cleaner, in fact, I prefer it. Can I ask where in the model builder you found this? I don't see it. The standard syntax for adding tags (outliers, depths, etc) to individual date is inside brackets, as in published examples. I tried this syntax for other parameters like depth, color, etc., and it doesn't work. (You don't need to specify "General", as long as you only call one type of Outlier Model).

P_Sequences do not require equivalent depositional histories across the cores. You can build individual sequences for each core, and then cross-reference only the events apparent in multiple cores, such as erosional events.

Your boundaries-below-dates idea seems to rely on this assumption: "the maximum ages in our composite section are likely relatively old maximums, which is different than our minimums (we think the minimums are good)." What is this assumption based on? Something like this is usually hard to justify, which is why most such sequences use the simpler setups that Richard and I suggested.

Erik
Reply all
Reply to author
Forward
0 new messages