
Calculating salt balance from ion chromatography data
Source:R/fun_salt_balance.R
fun_salt_balance.RdPerforms a salt balance on ion chromatography data and returns outputs formatted for use with ECOS Runsalt software.
Usage
fun_salt_balance(
sample_name,
dry_g,
water_ml,
chloride_ppm,
nitrate_ppm,
sulfate_ppm,
sodium_ppm,
potassium_ppm,
calcium_ppm,
magnesium_ppm
)Arguments
- sample_name
Character. Name or ID of the sample.
- dry_g
Numeric. Dry mass of the sample, in grams.
- water_ml
Numeric. Volume of water added for ion chromatography, in millilitres.
- chloride_ppm
Numeric. Chloride concentration in ppm.
- nitrate_ppm
Numeric. Nitrate concentration in ppm.
- sulfate_ppm
Numeric. Sulfate concentration in ppm.
- sodium_ppm
Numeric. Sodium concentration in ppm.
- potassium_ppm
Numeric. Potassium concentration in ppm.
- calcium_ppm
Numeric. Calcium concentration in ppm.
- magnesium_ppm
Numeric. Magnesium concentration in ppm.
Value
A tibble containing balanced ion molar concentrations, weight fractions, milliequivalents, charge balance diagnostics, ECOS-compatible inputs, and other relevant calculations.
Note
Use the PREDICT Salt Content Calculator for the most up-to-date calculation and detailed explanation of the methodology: https://predict.kikirpa.be/index.php/tools/moisture-and-salt-sample-data-analysis-tool/
SaltsR tool for online version: https://oceanonline.shinyapps.io/SaltsRApp/
References
Godts, S., Steiger, M., Orr, S.A. et al. Charge balance calculations for mixed salt systems applied to a large dataset from the built environment. Sci Data 9, 324 (2022). https://doi.org/10.1038/s41597-022-01445-9
Examples
fun_salt_balance(
sample_name = "Example",
dry_g = 1,
water_ml = 100,
chloride_ppm = 50,
nitrate_ppm = 30,
sulfate_ppm = 20,
sodium_ppm = 40,
potassium_ppm = 10,
calcium_ppm = 15,
magnesium_ppm = 5
) |>
dplyr::glimpse()
#> Rows: 1
#> Columns: 144
#> $ sample_name <chr> "Example"
#> $ dry_g <dbl> 1
#> $ water_ml <dbl> 100
#> $ chloride_ppm <dbl> 50
#> $ nitrate_ppm <dbl> 30
#> $ sulfate_ppm <dbl> 20
#> $ sodium_ppm <dbl> 40
#> $ potassium_ppm <dbl> 10
#> $ calcium_ppm <dbl> 15
#> $ magnesium_ppm <dbl> 5
#> $ chloride_wt <dbl> 0.005
#> $ nitrate_wt <dbl> 0.003
#> $ sulfate_wt <dbl> 0.002
#> $ sodium_wt <dbl> 0.004
#> $ potassium_wt <dbl> 0.001
#> $ calcium_wt <dbl> 0.0015
#> $ magnesium_wt <dbl> 5e-04
#> $ total_wt <dbl> 0.017
#> $ chloride_mEq <dbl> 141.033
#> $ nitrate_mEq <dbl> 48.38327
#> $ sulfate_mEq <dbl> 41.63891
#> $ sodium_mEq <dbl> 173.9904
#> $ potassium_mEq <dbl> 25.57656
#> $ calcium_mEq <dbl> 74.85403
#> $ magnesium_mEq <dbl> 41.1438
#> $ total_mEq_anions <dbl> 231.0552
#> $ total_mEq_cations <dbl> 315.5648
#> $ charge_imbalance_initial <dbl> 84.50968
#> $ imbalance_allocation <chr> "dExcess Cations"
#> $ Pathway1 <lgl> FALSE
#> $ Pathway2 <lgl> TRUE
#> $ chloride_mEq_Path1 <lgl> NA
#> $ nitrate_mEq_Path1 <lgl> NA
#> $ sulfate_mEq_Path1 <lgl> NA
#> $ sodium_mEq_Path1 <lgl> NA
#> $ potassium_mEq_Path1 <lgl> NA
#> $ calcium_mEq_Path1 <lgl> NA
#> $ magnesium_mEq_Path1 <lgl> NA
#> $ chloride_mEq_Path2Ca <dbl> 141.033
#> $ nitrate_mEq_Path2Ca <dbl> 48.38327
#> $ sulfate_mEq_Path2Ca <dbl> 41.63891
#> $ sodium_mEq_Path2Ca <dbl> 173.9904
#> $ potassium_mEq_Path2Ca <dbl> 25.57656
#> $ calcium_mEq_Path2Ca <dbl> 0
#> $ magnesium_mEq_Path2Ca <dbl> 41.1438
#> $ total_mEq_anions_Path2Ca <dbl> 231.0552
#> $ total_mEq_cations_Path2Ca <dbl> 240.7108
#> $ charge_imbalance_CaAdj <dbl> 9.655641
#> $ chloride_mEq_Path2Mg <dbl> 141.033
#> $ nitrate_mEq_Path2Mg <dbl> 48.38327
#> $ sulfate_mEq_Path2Mg <dbl> 41.63891
#> $ sodium_mEq_Path2Mg <dbl> 173.9904
#> $ potassium_mEq_Path2Mg <dbl> 25.57656
#> $ calcium_mEq_Path2Mg <dbl> 0
#> $ magnesium_mEq_Path2Mg <dbl> 31.48816
#> $ total_mEq_anions_Path2Mg <dbl> 231.0552
#> $ total_mEq_cations_Path2Mg <dbl> 231.0552
#> $ charge_imbalance_MgAdj <dbl> 0
#> $ chloride_mEq_Path2Na <dbl> 141.033
#> $ nitrate_mEq_Path2Na <dbl> 48.38327
#> $ sulfate_mEq_Path2Na <dbl> 41.63891
#> $ sodium_mEq_Path2Na <dbl> 173.9904
#> $ potassium_mEq_Path2Na <dbl> 25.57656
#> $ calcium_mEq_Path2Na <dbl> 0
#> $ magnesium_mEq_Path2Na <dbl> 31.48816
#> $ total_mEq_anions_Path2Na <dbl> 231.0552
#> $ total_mEq_cations_Path2Na <dbl> 231.0552
#> $ charge_imbalance_NaAdj <dbl> 0
#> $ chloride_mEq_Path2K <dbl> 141.033
#> $ nitrate_mEq_Path2K <dbl> 48.38327
#> $ sulfate_mEq_Path2K <dbl> 41.63891
#> $ sodium_mEq_Path2K <dbl> 173.9904
#> $ potassium_mEq_Path2K <dbl> 25.57656
#> $ calcium_mEq_Path2K <dbl> 0
#> $ magnesium_mEq_Path2K <dbl> 31.48816
#> $ total_mEq_anions_Path2K <dbl> 231.0552
#> $ total_mEq_cations_Path2K <dbl> 231.0552
#> $ charge_imbalance_KAdj <dbl> 0
#> $ chloride_mEq_adj <dbl> 141.033
#> $ nitrate_mEq_adj <dbl> 48.38327
#> $ sulfate_mEq_adj <dbl> 41.63891
#> $ sodium_mEq_adj <dbl> 173.9904
#> $ potassium_mEq_adj <dbl> 25.57656
#> $ calcium_mEq_adj <dbl> 0
#> $ magnesium_mEq_adj <dbl> 31.48816
#> $ gypsum_content_limit <dbl> 0
#> $ chloride_mEq_adj_SO4 <dbl> 141.033
#> $ nitrate_mEq_adj_SO4 <dbl> 48.38327
#> $ sulfate_mEq_adj_SO4 <dbl> 41.63891
#> $ sodium_mEq_adj_SO4 <dbl> 173.9904
#> $ potassium_mEq_adj_SO4 <dbl> 25.57656
#> $ calcium_mEq_adj_SO4 <dbl> 0
#> $ magnesium_mEq_adj_SO4 <dbl> 31.48816
#> $ charge_imbalance_final <lgl> TRUE
#> $ chloride_molkg <dbl> 0.141033
#> $ nitrate_molkg <dbl> 0.04838327
#> $ sulfate_molkg <dbl> 0.02081945
#> $ sodium_molkg <dbl> 0.1739904
#> $ potassium_molkg <dbl> 0.02557656
#> $ calcium_molkg <dbl> 0
#> $ magnesium_mmolkg <dbl> 0.01574408
#> $ chloride_x <dbl> 0.3314159
#> $ nitrate_x <dbl> 0.1136967
#> $ sulfate_x <dbl> 0.04892401
#> $ sodium_x <dbl> 0.4088633
#> $ potassium_x <dbl> 0.06010281
#> $ calcium_x <dbl> 0
#> $ magnesium_x <dbl> 0.03699729
#> $ calcium_fraction <dbl> 0.2372065
#> $ magnesium_fraction <dbl> 0.03059796
#> $ sodium_fraction <dbl> 0
#> $ potassium_fraction <dbl> 0
#> $ chloride_wt_adj <dbl> 0.005
#> $ nitrate_wt_adj <dbl> 0.003
#> $ sulfate_wt_adj <dbl> 0.002
#> $ sodium_wt_adj <dbl> 0.004
#> $ potassium_wt_adj <dbl> 0.001
#> $ calcium_wt_adj <dbl> 0
#> $ magnesium_wt_adj <dbl> 0.0003826598
#> $ total_wt_adj <dbl> 0.01538266
#> $ total_wt_adj_gypsum <dbl> 0.00161734
#> $ gypsum_content <dbl> 0
#> $ saturation_gypsum_content <dbl> 0
#> $ total_ion_content <dbl> 0.00161734
#> $ sodium_potassium_content_adj <dbl> 8.673617e-19
#> $ magnessium_content_adj <dbl> 0.0001173402
#> $ calcium_content_adj <dbl> 0.0015
#> $ hypothetical_CO3 <dbl> 0
#> $ sodium_ECOS_mol <dbl> 0.4088633
#> $ potassium_ECOS_mol <dbl> 0.06010281
#> $ magnesium_ECOS_mol <dbl> 0.03699729
#> $ calcium_ECOS_mol <dbl> 0
#> $ chloride_ECOS_mol <dbl> 0.3314159
#> $ nitrate_ECOS_mol <dbl> 0.1136967
#> $ sulfate_ECOS_mol <dbl> 0.04892401
#> $ sodium_ECOS_weight <dbl> 0.004
#> $ potassium_ECOS_weight <dbl> 0.001
#> $ magnesium_ECOS_weight <dbl> 0.0003826598
#> $ calcium_ECOS_weight <dbl> 0
#> $ chloride_ECOS_weight <dbl> 0.005
#> $ nitrate_ECOS_weight <dbl> 0.003
#> $ sulfate_ECOS_weight <dbl> 0.002
#> $ ECOS_pathway <chr> "Pathway 2"
#> $ ECOS_warnings <chr> "No warnings"