News:

:) You cannot see "members only" boards if you are not a member, so please join the forum!

Main Menu

Dynamically Calculated Mapping Elements

Started by John Donovan, July 02, 2024, 09:49:25 AM

Previous topic - Next topic

John Donovan

Based on suggestions from Julien Allaz we have implemented a new method for calculating some elements (by difference, formula difference, stoichiometry to stoichiometric oxygen, stoichiometry to another element and excess oxygen from ferric iron by charge balance), based on a k-ratio criteria specified by the user:



Based on these user specified (first approximation) k-ratio criteria for each individual pixel, the CalcImage software will implement these various UNanalyzed elements and add them during the matrix correction just as one would do in Probe for EPMA for point analyses.

However, because a map can contain multiple phases, for example a silicate and a carbonate, one would want to add, for example, carbon by stoichiometry to the carbonate phase but not the silicate phase.  Julien explained it like this to us:

Quote from: Julien AllazIn some materials we are analysing, we have a bunch that have a mixture of carbonate (calcite, dolomite) and hydrated phases, along with anhydrous silicates. It is of great interest to us to be able to quantify these maps :) You and me and many others know that all elements must be analysed or specified for accurate results... Ideally, this element should be determined by stoichiometry for the best "guestimate" rather than by difference. The problem right now is when you indeed have a mixture of phases that are missing one element (C or H - or sometime both).

I am trying to think about a way to code this into CalcImage... When I'm thinking of my specific sample (mixture of carbonate + silicate), we could "set a condition" in CalcImage so that for instance any pixel that yield a high Ca or Mg wt-% from Castaing's first approximation on the quantification, with no or little Si wt%, then and only then, we should calculate the "missing CO2" from this carbonate. If the next pixel to treat has a high Si content, it should then NOT calculate the CO2 as it is most likely a silicate.

On the coding-side, I would foreseen a "pre-filter" similar to what you have in the "Extract shape, polygon..... and filter data", but this filter should be applied within the matrix correction (so yet another loop in the loop in the loop), where IF the pixel has less than (for instance) < 0.5 wt.% Si, and > 10% Ca OR > 10% Mg, then do calculate the missing CO2 by stoichiometry (i.e., calculate 1 C atom for every 0.33333 atom of O). If not, continue the matrix correction as usual.

So we had to think about this for a few weeks, but we finally came up with something that we think should prove very useful.

Now some of you might say, well why couldn't we just add in these concentrations afterwards to those pixels, and besides it doesn't really matter that we don't have a 100% total for these pixel analyses, does it?  And the answer to the first question is: you can, but then these additional element concentrations are not being included in the matrix correction which introduces a significant analytical error.  The answer to the second question is: if your total (points or pixels) does not approach 100%, then your matrix correction is wrong and can introduce significant analytical errors. 

See this abstract for more details (full paper by Aurelien Moy is in preparation):

https://academic.oup.com/mam/article/29/Supplement_1/855/7228940

Here is another example of a silicate and oxide phases where the totals for the oxide pixels are ~93 to 95% because iron was calculated assuming FeO (oxygen by stoichiometry) and some (though not all!) of the iron is actually Fe2O3.  This "missing oxygen" affects the concentrations of all the analyzed elements, but especially Fe because it is a major element. Remember, the standard choice and matrix correction are the largest corrections we make for major elements:

https://smf.probesoftware.com/index.php?topic=610.msg11752#msg11752

In this silicate and oxide map we specified the following k-ratio criteria:



By doing so we obtain the following quantitative maps (some maps not shown):



Note that the totals map is close to 100% for both the silicate and oxide phases thus ensuring analytical accuracy!

Thank-you to Julien for this idea.
John J. Donovan, Pres. 
(541) 343-3400

"Not Absolutely Certain, Yet Reliable"

John Donovan

#1
This a small thing but maybe useful to some users: when we implemented the dynamically calculated unanalyzed element feature described in the above post, we realized that we weren't always outputting the quant results of the unananalyzed elements (elements by difference, formula by difference (e.g., CePO4), element by stoichiometry to stoichiometric oxygen (e.g., carbonates), element by stoichiometry to another elements.

Yes, we were including these unanalyzed elements in the matrix correction, but we weren't always outputting them to the "classify" .DAT file along with the analyzed elements.

For example, in measuring some traces in zircon, we must specify ZrSiO4 as the matrix fr accurate trace element analyses. And CalcImage was including ZrSiO4 in the matrix correction when ZrSiO4 was specified as the "formula by difference", but the quant values for Zr, Si and O weren't always being output to the "classify" .DAT file as one might expect.  Here is an example of traces measured in zircon, but ZrSiO4 is included in the matrix correction as the "formula by difference".  The traces are corrected for the matrix effects of the ZrSiO4, but the Zr, Si and O are not shown:



This is now fixed.  So whenever unanalyzed elements are specified in the Calculation Option dialog, these elements will now be output to the "classify" .DAT file along with the analyzed elements (regardless whether or not images of these elements are also output).

Here is an example of traces in zircon analyzed and ZrSiO4 specified as the "formula by difference" and saved to the "classify"DAT file:



So yes, these unanalyzed elements are not output as images, but they are now saved to the "classify" .DAT file for possible use in other applications.  This is now the case whether the dynamically calculated unanalyzed elements feature is utilized or not with v. 13.8.6 of Probe for EPMA.  Update from the Help | Update Probe for EPMA menu as usual.
John J. Donovan, Pres. 
(541) 343-3400

"Not Absolutely Certain, Yet Reliable"

John Donovan

#2
As requested by Glenn Poirier, we've released an improvement to the dynamically calculated elements feature described above for quantitative mapping of mixed phases:

https://smf.probesoftware.com/index.php?topic=1647.0

Now, in addition to dynamically calculating (for each pixel), an element by difference (e.g., water):

https://smf.probesoftware.com/index.php?topic=92.msg7333;topicseen#msg7333

a formula by difference (e.g., ZrSiO4):

https://smf.probesoftware.com/index.php?topic=92.msg12819#msg12819

an element by stoichiometry to stoichiometric oxygen (e.g., carbon in carbonates):

https://smf.probesoftware.com/index.php?topic=92.msg329#msg329

an element by stoichiometry to another element (e.g., turquoise):

https://smf.probesoftware.com/index.php?topic=92.msg520#msg520

and also excess oxygen by Droop charge balance (e.g., Fe oxides):

https://smf.probesoftware.com/index.php?topic=92.msg8593#msg8593

we have now added the ability to dynamically calculate oxygen by stoichiometry based on user specified (raw) k-ratio criteria. For example, when an x-ray map contains both oxides and silicates, along with sulfide minerals. Here's an example of such raw data that Glenn sent me late last year:



In the upper right we can see from the Fe and S intensities that we have a pyrite phase, and from the Si intensities in the lower left we have a quartz phase. Opening the Specify Quantitative Parameters menu dialog, clicking the Calculation Options button and clicking the Calculate UnAnalyzed Elements Dynamically button, we now see the new controls for dynamically calculated oxygen by stoichiometry here:



Note that in this example we have specified a dynamic (raw) k-ratio criteria such that oxygen by stoichiometry is only calculated when the Si (raw) k-ratio is greater than 0.05 and the S (raw) k-ratio is less than 0.02. The exact values for these raw k-ratios will of course depend on the concentration of the element in your unknown, and also the selection of your primary standard.

One will also note that we have added a third criteria for when Ca is present but we'll discuss that in a subsequent post because that criteria is not necessary for the current example!

And when the dynamic element dialog is closed (clicking OK), we see that oxygen by stoichiometry has been selected, but now that option will be applied dynamically based on the raw k-ratios for Si and S for each pixel:



We can observe the calculation in real time from the log window in CalcImage to see if our k-ratio criteria is being appropriately applied:



The totals aren't great because this was just a "quick and dirty" map acquisition for testing purposes only, but you all get the point I think.

Once the pixels are all calculated, we can output the quant maps to Surfer as seen here:



Please try this feature out yourself on your next complicated mapping run, and post examples here for us all to see!
John J. Donovan, Pres. 
(541) 343-3400

"Not Absolutely Certain, Yet Reliable"

glennpoirier

#3
John asked me to post the results of some quant maps where oxygen is dynamically calculated which results in this wt% oxygen and totals map:



I'm quite pleased with this, there are at least nine minerals including silicates, carbonates and sulphides. It took a bit of futzing with the conditional calculation setup but calculating kratio maps helps:




Totals are generally quite close to 100 wt% except on some edges and for chlorite (which I could probably fix in this case by calculating H2O by difference). The complete map set is attached below.

This is a really nice update to CalcImage, thanks John

Probeman

Quote from: glennpoirier on January 10, 2025, 08:02:31 AMI'm quite pleased with this, there are at least nine minerals including silicates, carbonates and sulphides. It took a bit of futzing with the conditional calculation setup but calculating kratio maps helps:

Glenn's suggestion to utilize k-ratio maps to adjust the k-ratio criteria for dynamically calculated elements is a very good idea:

The only stupid question is the one not asked!

John Donovan

Here's a simpler x-ray map quant to show how the new dynamically calculated elements feature can handle missing elements for quartz (oxygen by stoichiometry), pyrite (elemental) and calcite (carbon by stoichiometry to calculated oxygen).  Here's the raw data:



You can see the quartz in the upper left, the calcite in the upper right and the pyrite below these. Here are the k-ratio criteria selected in the Use Dynamically calculated Elements dialog (from the Calculation Options dialog, in the Specify Quantitative Parameters menu dialog):



And here are the options selected when you click OK (you need to add carbon as an unanalyzed elements from the Elements/Cations dialog)and specify 0.333 atoms of carbon for each calculated oxygen).



And here are the calculated quantitative results:

John J. Donovan, Pres. 
(541) 343-3400

"Not Absolutely Certain, Yet Reliable"