Calculation of salinity from Triton ICP-OES test results

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
Over on the Triton-US forum there has been some discussion about normalizing test results to a standard salinity of, say, 35 PPT (SG of 1.0264 @ 25C). The Triton results do not currently return any value for salinity, although the Na value is used as a rough salinity indicator. Of the various macro elements that contribute to salinity, the ones absent from the Triton ICP-OES results are Cl (chlorine), C (carbon as carbonate, HCO3), and F (fluoride). So, the question is, can a reasonable estimate of a sample's salinity be calculated from the macro elements that are included in the test, namely Na, Mg, Ca, K, Sr, S, Br, and B?

I submit that the answer is "yes", if we make a couple of reasonable assumptions. The first implicit assumption is that the Triton results are accurate to the precision reported, and in the units reported.

Setting aside the question of exactly how salinity is defined, I choose to use as a starting off place the concentrations of the Major Ions in seawater as shown in Table 4-1 found in Chapter 4 of An Introduction to the Chemistry of the Sea (Pilson, 1998), which you can find here: http://www.ocean.washington.edu/courses/oc400/Lecture_Notes/CHPT4.pdf

The principle of electroneutrality tells us that any aqueous solution (salts dissolved in water) must contain an even number of cations (+) and anions (-). Let's take the NSW levels published by Pilson, and demonstrate this. I have taken the values from Pilson, and rearranged them into the following table:

Ion
mmol/kg
Charge
Ionic strength
Na+
468.96
+1
468.96
K+
10.21
+1
10.21
Mg++
52.83
+2
105.66
Ca++
10.28
+2
20.56
Sr++
0.0906
+2
0.1812
Total cations:
605.5612
Cl-
545.88
-1
-545.88
S
28.23
-2
-56.46
Alkalinity-
2.32
-1
-2.32
Br-
0.844
-1
-0.844
F-
0.068
-1
-0.068
Total anions:
-605.572
Difference:
-0.0008


Note that I have replaced the HCO3 and B(OH)3 with a single value for "Alkalinity", and that the value for "Alkalinity" is taken from the lower portion of the chart. As Pilson explains in the footnote, "In order to make a charge balance, however, the total alkalinity concentration was substituted for HCO3- and the sodium ion adjusted accordingly." So, you can see that when you multiply the molarity of the cations by their respective charges, and add them up, and then do the same for all the anions, they balance each other out. The tiny error of -0.0008 is due to the extra precision in the fluoride value; if all the other ions had been reported with the same precision as fluoride, then they would exactly balance out.

Now, let's take these same numbers, and report them as though they had been presented in a Triton report. For this exercise, we will use the Pilson units of mg/kg instead of the Triton units of mg/L (we will address this difference in units later). Presenting Pilson's numbers like Triton would requires us to convert the sulphate (SO4--) as sulfur (S), and boric acid (H(BO)3) as boron (B), so we multiply each of these values by the atomic weight of the element divided by the molecular mass of the ion, i.e., to convert SO4-- to S we multiply by 32.06/96.07, and to convert H(BO)3 we multiply by 10.81/61.83. The resulting report would show the following values:

Na
10781
Ca
411.9
Mg
1284
K
399
Br
67.3
B
4.49
Sr
7.94
S
905.0

Now is the time for us to start making some reasonable assumptions. Assumption #1 will be that the water will contain the NSW concentration of fluoride, so we will use a value of 1.30 mg/kg for F. Assumption #2 will be that the sample contains the same Alkalinity as NSW, so we will use a value of 2.32 for Alkalinity. Assumption #3 will be that all of the S from the Triton report is in the form of SO4 in our solution. Now, all we have to do is calculate the total cations in our sample, the total amount of "known" anions, based on these three assumptions, and then we can calculate the missing Cl value. Before we can do that, we have to convert the mg/kg into mmol/kg by dividing the mg/kg value by the atomic weight of each element:

Element
mg/kg
atomic wt.
mmol/kg
Na
10781
22.9898
468.95
Ca
411.9
40.078
10.28
Mg
1284
24.305
52.83
K
399
39.0983
10.21
Br
67.3
79.904
0.842
Sr7.94
87.62
0.0906
S
905
32.06
28.23

Not surprisingly, we end up with the exact same numbers as in Pilson's table, except for very minor differences due to rounding errors for Na and Br. We can now plug these into the same table we used above to calculate the missing Cl molarity:


 
Cultivated Reef
OP
JimWelsh

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
(Continued)

Not surprisingly, we end up with the exact same numbers as in Pilson's table, except for very minor differences due to rounding errors for Na and Br. We can now plug these into the same table we used above to calculate the missing Cl molarity:


Ion
mmol/kg
Charge
Ionic strength
Na+
468.95
+1
468.95
K+
10.21
+1
10.21
Mg++
52.83
+2
105.66
Ca++
10.28
+2
20.56
Sr++
0.0906
+2
0.1812
Total cations:
605.5512
Cl-
?
-1
?
SO4--
28.23
-2
-56.46
Alkalinity-
2.32
-1
-2.32
Br-
0.842
-1
-0.842
F-
0.068
-1
-0.068
Total anions:
-59.69
Difference:
-545.8612

Notice that the resulting difference of -545.8612 is very, very close to the original Pilson Cl ionic strength of -545.88. Again, this difference is almost entirely due to rounding errors.

Now that I've demonstrated that we can calculate the concentration of the Cl- ion from the other values, the next step is to calculate the total mass of salts in the solution, and relate that back to salinity. Note that even though Pilson is presenting values for seawater with a salinity of exactly 35.000 PPT, the sum total of the g/kg values in Pilson's table is actually 35.169, and not exactly 35.000. That is because of the salinity standard that Pilson is using, PSS 1978, which is based on conductivity rather than the actual weight of the salts. So, to estimate the salinity of our "unknown" sample as represented by our hypothetical Triton results shown above, we now need to calculate the total mg/kg of all the salts in our sample, converting the S into SO4 and the B into B(OH)3, then divide by 35169 and then multiply by 35. We will continue to assume that fluoride is at the NSW level. We will also assume that the proportion of Alkalinity that is in the form of carbonate (HCO3) in our sample is the same as in NSW (2.06/2.32 = 88.8%).

Calculate mg/kg of Cl: 545.8612 * 35.45 = 19351. Convert S to SO4--: 905.0 * 96.07 / 32.06 = 2712. Convert B to B(OH)3: 4.09 * 61.83 / 10.81 = 25.7. Calculate HCO3 from Alkalinity: 2.32 * 88.8% * 61.0168 = 126.

Now, take the sum of all of these:

Ion
mg/kg
source
Na+
10781
report
K+
399
report
Mg++
1284
report
Ca++
411.9
report
Sr++
7.94
report
Cl-
19351
calculated
SO4--
2712
calculated from report
HCO3-
126
assumed
Br-
67.3
report
B(OH)3
25.7
calculated from report
F-
1.30
assumed
Total:
35165

The total mg/kg of salts we arrive at is 35165. 35165 / 35169 * 35 = 34.996, which when rounded to one decimal place = 35.0.

Now, I mentioned earlier the difference between the units Pilson is using of mg/kg, and the units Trition reports in, which is mg/L. The issue here is that all of Pilson's values are related to one kilogram of seawater, which is acutally less than one liter of seawater, because of seawater's density at a salinity of 35 PPT. Converting between these two units requires knowing the density of the solution, which varies based on actual salinity and temperature. I realize that this post is already way too long, so I'll go no farther in addressing this issue than to mention it as relevant for applying this exercise to "real" Triton results.

I know I won't be able to edit this, so I sure hope I don't find too many errors after I post it!
 
OP
JimWelsh

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
Ok, so how about a real-world example? I'll take as an example the most recent Triton report from user Keithcorals, which can be found here: https://www.reef2reef.com/forums/triton-us/180010-post-your-results-3.html#post2114769

Step 1: Convert mg/L to mmol/L.

Elementmg/Latomic wt.mmol/L
Na1052122.9898457.64
Ca455.940.07811.37
Mg141024.30558.01
K492.639.098312.60
Br68.0679.9040.8518
Sr8.6687.620.09884
S997.932.0631.13


Step 2: Calculate the sum of all the cations.

Na+457.64
K+12.60
Mg++116.02
Ca++22.74
Sr++0.19768
Total:609.19768


Step 3: Calculate the sum of all the known and assumed anions.

Assume NSW level for Fluoride (after converting from mmol/kg to mmol/L @ 25C). NSW F = 0.068 mmol/kg * 1.023343 (density of 35 PPT seawater at 25C) = 0.070 Assume Alkalinity = 8 dKh = 2.857 meq/L.

SO4--62.26
Alkalinity2.857
Br-0.8518
F-0.070
Total:66.0388


Step 4: Find the missing Cl molarity.

Cl = 609.19768 - 66.0388 = 543.15888.

Step 5: Find the total of all the major salts.

Convert mmol/L of Cl to mg/L of Cl. Convert S to SO4 and B to B(OH)3. Assume HCO3 = 88% of assumed Alkalinity.

Ionmg/Lsource
Na+10521report
K+492.6report
Mg++1410report
Ca++455.9report
Sr++8.66report
Cl-19256calculated
SO4--2990.28report + calculated
HCO3-154.81assumed + calculated
Br-68.06report
B(OH)340.496report + calculated
F-0.070assumed
Total:35397.876


Step 6: Convert to Salinity.

Remember to adjust for mg/kg vs. mg/L, assuming temperature of 25C.

Total mg/L of 35397.876 / 35169 * 35 / 1.023343 = 34.424. When rounded to one decimal place, that's a salinity of 34.4 PPT.

The contribution of Alkalinity is so small that whatever value is assumed will not make any significant difference, as long as it is within a reasonable range of 7 - 11 dKh or 2.5 to 4.0 meq/L. Similarly, choosing a temperate for the units conversion of 20C instead of 25C will not make a significant difference in the result.
 
OP
JimWelsh

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
Now, assuming these calculations are sound and valid (Randy hasn't had a chance to chime in just yet), one helpful thing we can do with this information is to "normalize" posted Trition results to the same, standard salinity. We can also convert the published results from mg/L @ salinity of X PPT into mg/kg @ 35 PPT, which enables us to make a meaningful comparison of these results to NSW levels.

This thread has been inspired by other threads in the Triton-US Sponsor forum found here Triton US, where some people are submitting freshly made salt water samples of various brands of salt instead of tank water for Triton ICP-OES testing. Some results of these salt brand tests have already been posted. It was apparent from the posted results that there was quite a bit of variance in the salinity of the salt brand samples that had been submitted. One practical application of the math I'm presenting here is to adjust the results of the macro elements from these various samples to what they would be if the sample had actually been at 35 PPT, so that we would be comparing "apples to apples", as it were.

The normalization is probably the easiest part. Once we have the calculated salinity in PPT for a given sample (e.g., 34.4 from Keithcorals' sample I used as an example above), then we just apply a conversion factor: Conversion Factor = 35 / calculated salinity. We then multiply each reported result by the Conversion Factor to arrive at mg/L @ 35 PPT. If we want to compare these numbers to Pilson's NSW levels, then we also need to divide the normalized values by the density of seawater at our chosen temperature. I have chosen 25C, so that density is 1.023343 kg/L. So, to keep working this out on our Keithcorals example, this is what we get (macro elements only, but including our calculated and assumed values):

Ionmg/LSourceNormalization FactorUnit Adjustmentmg/kgNSW mg/kgNSW %
Na+10521report1.01671.023343104531078197.0
K+492.6report1.01671.023343489.4399122.7
Mg++1410report1.01671.02334314011284109.1
Ca++455.9report1.01671.023343452.9411.9110.0
Sr++8.66report1.01671.0233438.607.94108.3
Cl-19256calculated1.01671.023343191311935398.9
SO4--2990.28report + calculated1.01671.02334329712712109.6
HCO3-154.81assumed + calculated1.01671.023343153.8126122.1
Br-68.06report1.01671.02334367.6267.3100.5
B(OH)340.496report + calculated1.01671.02334340.2325.7156.5
F-0.070assumed + calculated1.01671.0233430.0690.068101.5
Totals:353983516835168
 

Randy Holmes-Farley

Reef Chemist
View Badges
Joined
Sep 5, 2014
Messages
32,461
Reaction score
20,418
Location
Arlington, Massachusetts, United States
Hi Jim,

Very nice work! All the rationale seems correct, and I assume the math is as well.

I expect that simplifying it to use only Na, K, Mg, Ca and S will give almost the same answer as the others are quite low in comparison, but taking into account the actual bromide is useful. :)

You have this all in a spreadsheet?

Maybe Triton would post it as a download on their site (if you let them). :)
 

hart24601

Valuable Member
View Badges
Joined
Mar 18, 2014
Messages
4,604
Reaction score
3,694
Location
Iowa
It would be neat if Triton used something like to show not only the values for your tank, but the values from your tank "corrected" to 35ppt.
 
OP
JimWelsh

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
You have this all in a spreadsheet?
Yes, but my spreadsheets tend to suffer a certain disorganized "sprawl" that makes them less than ideal for sharing with others. I'll see what I can do about cleaning it up and making it user-friendly.
 
Cultivated Reef

mbsun

Member
View Badges
Joined
Mar 19, 2015
Messages
23
Reaction score
0
Location
United Kingdom
Hi, very good article!!

I have a couple of questions

Is it needed to convert to mMol/kg and use converted values for seawater as mg/kg instead of mg/l ?

By this i mean can you not just

Adjust the value of sodium down to account for boron bicarbonate as you have and also bromide.
Then account for a total chloride with sodium
Account a total chloride with calcium
Account a total sulphate with magnesium
The remainder of magnesium as chloride
Potassium with chloride
(Etc etc (you get the idea)

By accounting i mean for example

Say 10500 sodium
10500 ÷ 22.989770 x 35.453 = 16192.267

And just add the lot up as mg/l sticking to 35000 as the benchmark

I am probably oversimplifying a tad, just trying to get in my head any error in the way i calculate it
 
OP
JimWelsh

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
There are certainly other ways to do the math. I chose to do it the way I did because I prefer to think in terms of the units most oceanographers use: mg/kg. Using w/w instead of w/v allows me to compare the mass of the total dissolved matter to the TEOS-10 standard of 35.16504 g/kg for water with a salinity of S = 35.000 on the PSS-78 scale. Doing it this way also makes it easier to validate the spreadsheet by inputting values derived from the Millero, et.al. 2008 paper I cited.

Doing it your way, you would not want to use 35000 as your "benchmark", but rather, 35165 times the density of NSW at the selected temperature, e.g., for 25C, 35165 * 1.024763 = 36035.8.
 

mbsun

Member
View Badges
Joined
Mar 19, 2015
Messages
23
Reaction score
0
Location
United Kingdom
There are certainly other ways to do the math. I chose to do it the way I did because I prefer to think in terms of the units most oceanographers use: mg/kg. Using w/w instead of w/v allows me to compare the mass of the total dissolved matter to the TEOS-10 standard of 35.16504 g/kg for water with a salinity of S = 35.000 on the PSS-78 scale. Doing it this way also makes it easier to validate the spreadsheet by inputting values derived from the Millero, et.al. 2008 paper I cited.

Doing it your way, you would not want to use 35000 as your "benchmark", but rather, 35165 times the density of NSW at the selected temperature, e.g., for 25C, 35165 * 1.024763 = 36035.8.
Yes, i see
I had omitted that due to it putting the sum out by a long way, a mistake for sure

Thankyou for the clarification, weights and measures there is my issue
 
OP
JimWelsh

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
Do'h ... can't edit! In the post above, I meant, "... e.g., for 20C...." For 25C, the density factor would be 1.023343.
 

craigbingman

Member
View Badges
Joined
Feb 25, 2015
Messages
41
Reaction score
30
Location
United States
Now, assuming these calculations are sound and valid (Randy hasn't had a chance to chime in just yet), one helpful thing we can do with this information is to "normalize" posted Trition results to the same, standard salinity. We can also convert the published results from mg/L @ salinity of X PPT into mg/kg @ 35 PPT, which enables us to make a meaningful comparison of these results to NSW levels.
Jim,

You should be able to do a sum of charge and recover alkalinity. I'm coming back from six days in the hospital due to pneumonia, so that is an exercise that I'll leave to you. Are you up for it?

Craig
 

craigbingman

Member
View Badges
Joined
Feb 25, 2015
Messages
41
Reaction score
30
Location
United States
Jim,

You should be able to do a sum of charge and recover alkalinity. I'm coming back from six days in the hospital due to pneumonia, so that is an exercise that I'll leave to you. Are you up for it?

Craig
Nevermind, there apparently isn't an observed Cl- concentration. Disappointing.
 
OP
JimWelsh

JimWelsh

Valuable Member
View Badges
Joined
Nov 5, 2011
Messages
1,261
Reaction score
1,150
Location
Angwin, CA
Nevermind, there apparently isn't an observed Cl- concentration. Disappointing.
Even if Cl, was known, the uncertainty of the various Triton results might still make it unfeasible to expect to be able to calculate alkalinity in any meaningful way. For example, the High-Purity Standards CRM-SW sample that was used in the Skeptical Reefkeeping article had an uncertainty of +/- 100 mg/kg for Cl, and +/- 50 mg/kg for Na. That translates, at 20C, into an equivalent uncertainty in alkalinity of +/- 2.29 meq/L for Cl and +/- 2.23 meq/L for Na. And of course, you are aware we don't know what the uncertainties are for Triton results. Now, assuming Triton results are absolutely accurate and precise, the answer to your question is a solid "yes", *if* I still get to assume a value for F-. That would require just a few changes to the spreadsheet.

In short, these uncertainties have very little effect (+/- 0.1) on a salinity calculation to, say, one decimal place, but because alkalinity is such a relatively small component of seawater, they could have a huge effect, perhaps even greater than the true alkalinity value, on an attempt to calculate alkalinity. Conceivably, the calculated result could be more than twice the true value, or perhaps even a negative value!

Get well soon, by the way.
 

[email protected]

Member
View Badges
Joined
Oct 8, 2014
Messages
62
Reaction score
6
Location
Düsseldorf, Germany
Great, Jim. :)

I didn't hear back from my email to Triton.
Hi Randy, Hi Jim,

I am currently in NYC for NERAC and I contacted Jim to tell him IMO this very usefull masterpeace of work here :).
I am very thankfull for that and also checked the values on our showtank already.... and it is working perfectly.... I still need to test for Cl and F with HPLC but I don´t think it will show a big difference. very good work.
I will follow up on this to make sure to put it on the webside somehowe.

But what worrys me is I never get a Mail from you Randy ??? the email adress from 2 years ago should still work.. if not i[email protected] should work.
Thats strange.
maybe send me a testing mail again just to make sure.

All the best Ehsan.
 

Is your Build Thread Badge missing? Uh oh!

  • Yes it's gone

    Votes: 53 28.3%
  • Nope, I'm quick

    Votes: 59 31.6%
  • Uh I don't understand. (you better click and read)

    Votes: 28 15.0%
  • Never had one...until now!

    Votes: 47 25.1%

Online statistics

Members online
577
Guests online
2,083
Total visitors
2,660
Top Shelf Aquatics
Live Fish Food Combo Packs - AlgaeBarn.com
Top