Active carbon in soil II_SVanekTest_1_2g


Used with the "Active Carbon Soil 1 & 2 g with prompt" protocol. Single measurement of active carbon in soil use potassium permanganate solution; multiple measurement coming soon. User should have saved calibration values from the active carbon calibration protocol with 15mM maximum solution, and blank values from the blank protocol prior to running this.
var output = {};

// perform 5 technical replicates
var sample_raw = MathMEAN(json.data_raw.slice(10,40));

// Load user-entered weight, suggested range is 0.5 to 2g
var weight = json.message [0][2]; 

// NOTE! based on uM values for potassium permangenate concentrations
var slope = json.get_userdef7[0]; 
var yint = json.get_userdef7[1];
var blank = json.get_userdef6[0];

var absorbance = MathLOG( ( sample_raw/blank ) ) * -1;
var sample_concentration = (absorbance - yint)/slope;

/*
weight = 2.48;
var slope = .0502; 
var yint = -.00004;
var absorbance = .3087;
*/
// note below use of 15 = mM in 100% solution minus unknown solution from calibration curve, all divided by 1000 to convert mM to M; x 9000, fudge factor for active carbon from mg KMnO4 consumed; x 0.01 L or 10 mL to get mg from mg/L; divided by weight/1000 or g expressed as kg

var activeCarbon = ((15 - (yint + slope * absorbance))/1000) * 9000 * (0.01 / (weight/1000)); 
/*
*/

// for testing with field method - should be 327.5
/*
weight = 2.48;
var slope = .0502; 
var yint = -.00004;
var blank = json.get_userdef6[0];
var absorbance = .3087;
var sample_concentration = (absorbance - yint)/slope;
var activeCarbon = (0.02 - (yint + slope) * absorbance) * 9000 * (0.02 / (weight/1000)); // divide by 1000 to convert yint and slope to mM from uM
*/

//Active Carbon (mg kg -1) = [0.02 mol/ L – (a + b × Abs)] × (9000 mg C/ mol) × (0.02 L solution/ Wt)
//[0.02 M – (-0.00004 + (0.0502 × 0.3087)] × (9000 mg C/ mol) × (0.02 L solution/ 0.00248 kg) = 329.75 mg POXC kg -1 soil

output["active carbon"] = MathROUND(activeCarbon,2);
output["absorbance"] = MathROUND(absorbance,3);
output["weight"] = MathROUND(weight,2);
output["sample concentration"] = MathROUND(sample_concentration,4);
output["blank signal"] = MathROUND((blank - sample_raw),1);
output["sample raw"] = MathROUND(sample_raw,1);
output["blank"] = MathROUND(blank,1);
output["slope"] = MathROUND(slope,6);
output["yint"] = yint;

return output;
{
  "time_offset": 240,
  "time": 1436445590507,
  "device_id": 92,
  "firmware_version": "0.422",
  "sample": [
    [
      {
        "time": 1436445590507,
        "protocol_id": 1,
        "get_userdef6": [
          53829.285156,
          0
        ],
        "get_userdef7": [
          0.021289,
          -0.02082
        ],
        "averages": 50,
        "data_raw": [
          64970,
          41212,
          41228,
          41234,
          41245,
          41237,
          41240,
          41242,
          41243,
          41244,
          41248,
          41247,
          41243,
          41246,
          41242,
          41250,
          41245,
          41250,
          41247,
          41254,
          41248,
          41251,
          41249,
          41253,
          41249,
          41249,
          41250,
          41250,
          41250,
          41254,
          41252,
          41250,
          41248,
          41251,
          41253,
          41250,
          41256,
          41251,
          41254,
          41251,
          41253,
          41252,
          41251,
          41253,
          41252,
          41253,
          41249,
          41253,
          41246,
          41254
        ]
      }
    ]
  ]
}
Default avatar
Created by

Steven Vanek


Protocol connections:
2
Latest Update:
Oct 2015