Hi, Bence
After processing the zircon dating data with Iolite4, it was found that some 207/206 ages of NIST610 were null values, and some errors were zero. I am eager to know the reasons for this and look forward to your reply.
Sincerely,
GL
Hi, Bence
After processing the zircon dating data with Iolite4, it was found that some 207/206 ages of NIST610 were null values, and some errors were zero. I am eager to know the reasons for this and look forward to your reply.
Sincerely,
GL
Hi GL,
It's not obvious to me why this might be happening in this case. Would you mind sending an example dataset to iolite's support email address? I'll take a look and get back to you.
Kind regards,
Bence
Hi Bence,
I have sent the corresponding Iolite file to support@iolite-software.com. Looking forward to your reply!
Sincerely,
GL
Hi GL,
Sorry for the delay in getting back to you. The answer is actually pretty simple and I should have spotted it from your screenshot. The age calculation for 207/206 ages only works for ratios between 0.0133 and 0.846, and NIST610 has a 207/206 ratio of 0.9096, which would equate to an age greater than 5 Ga.
The reason that you get any 7/6 ages for NIST610 at all is that sometimes the noise on the ratio will dip below 0.846, and there will be an age value for that selection. In the example dataset you sent, if you were to export the number of points for the 7/6 age channel, you'd see that there are only a few datapoints for these channels (maxiumum of seven for the 130 measurements per selection).
I hope this helps? If you have any questions, please let me know.
Kind regards,
Bence
Hi Bence,
Thank you for your detailed response and clarification of this question!
Regarding the 207/206 age, I have another question. The 207Pb/206Pb age is calculated as a negative value. I previously understood the reason for this issue in this discussion(https://forum.iolite.xyz/d/194-negative-and-large-207pb206pb-ages). Now I want to know if there is a suitable way to resolve this problem, as I frequently encounter this issue when dealing with zircon ages younger than 200 Ma. I look forward to your reply.
Kind regards,
GL
By suitable way to resolve this problem, do you mean have the various ages calculated from the mean of the ratios? If so, you could accomplish that with a script like this:
import numpy as np
groups = data.selectionGroupList(data.Sample | data.ReferenceMaterial)
channel_names = ['Final Pb206/U238', 'Final Pb207/U235', 'Final Pb207/Pb206', 'Final U238/Pb206']
channels = [data.timeSeries(name) for name in channel_names]
l235 = 9.8485e-10
l238 = 1.55125e-10
u = 137.818
t76 = np.linspace(-5e9, 5e9, 20000)
r76 = (1/u)*(np.exp(l235*t76) - 1)/(np.exp(l238*t76) - 1)
def age_from_76_ratio(r):
return np.interp(r, r76, t76)/1e6
def age_from_u_pb_ratio(r, l):
return (np.log(r + 1)/l)/1e6
df = data.frame(groups, ['name', 'duration'], channels, ['mean', 'prop2se'], [], ['rho 206Pb/238U v 207Pb/235U', 'rho 207Pb/206Pb v 238U/206Pb'])
df['Final Pb206/U238 age'] = age_from_u_pb_ratio(df['Final Pb206/U238 mean'], l238)
df['Final Pb206/U238 age prop2se'] = 0.5*(age_from_u_pb_ratio(df['Final Pb206/U238 mean'] + df['Final Pb206/U238 prop2se'], l238) - age_from_u_pb_ratio(df['Final Pb206/U238 mean'] - df['Final Pb206/U238 prop2se'], l238))
df['Final Pb207/U235 age'] = age_from_u_pb_ratio(df['Final Pb207/U235 mean'], l235)
df['Final Pb207/U235 age prop2se'] = 0.5*(age_from_u_pb_ratio(df['Final Pb207/U235 mean'] + df['Final Pb207/U235 prop2se'], l235) - age_from_u_pb_ratio(df['Final Pb207/U235 mean'] - df['Final Pb207/U235 prop2se'], l235))
df['Final Pb207/Pb206 age'] = age_from_76_ratio(df['Final Pb207/Pb206 mean'])
df['Final Pb207/Pb206 age prop2se'] = 0.5*(age_from_76_ratio(df['Final Pb207/Pb206 mean'] + df['Final Pb207/Pb206 prop2se']) - age_from_76_ratio(df['Final Pb207/Pb206 mean'] - df['Final Pb207/Pb206 prop2se']))
column_order = [
'name',
'duration',
'Final Pb207/U235 mean',
'Final Pb207/U235 prop2se',
'Final Pb206/U238 mean',
'Final Pb206/U238 prop2se',
'Final Pb207/Pb206 mean',
'Final Pb207/Pb206 prop2se',
'rho 206Pb/238U v 207Pb/235U',
'rho 207Pb/206Pb v 238U/206Pb',
'Final Pb207/U235 age',
'Final Pb207/U235 age prop2se',
'Final Pb206/U238 age',
'Final Pb206/U238 age prop2se',
'Final Pb207/Pb206 age',
'Final Pb207/Pb206 age prop2se'
]
df = df[column_order]
df.to_clipboard()
This will create a table in the clipboard that you can paste into Excel or wherever you like. It gets the mean ratios and their prop 2SE from iolite then calculates the ages from those (rather than the usual way of calculating the age for each time slice then averaging). You would run that in the python workspace. With a few small changes it could be made into a script that you could use in iolite's export area.
Not sure if this is the type of thing you're after though?
All the best,