Skip to content

Fix/add (residual) absolutes diagnostics

There are numerous diagnostic values that can be calculated from (residual) absolute measurements. The following is a list of all diagnostics that should be added to, or updated in, geomagio.residual.Calculation.py and returned in the reading via the diagnostics object:

For Inclination Summary

  • inclination - already calculated and returned in diagnostics object
  • horizontalComponent - sometimes, but not always absoluteH
    • Calculate_HZ_absolutes() may time-shift absoluteH if reference is not None, so store the pre-shifted h_abs and return as diagnostic
  • verticalCompopnent - sometimes, but not always absoluteZ
    • Calculate_HZ_absolutes() may time-shift absoluteZ if reference is not None, so store the pre-shifted z_abs and return as diagnostic

For Magnetometer Ordinates Table

  • absoluteF - already calculated as "corrected_f" in calculate_I() method;

    • add to diagnostics object
  • ordinateF - this is just corrected_f - reading.pier_correction

    • OR you could simply return the object f, which is generated by the calculate_I() method
  • ordinateD - this is just absoluteD.absolute - absoluteD.baseline

  • ordinateZ - this is just absoluteZ.absolute - absoluteZ.baseline

  • ordinateH - this is not just absoluteH.absolute - absoluteH.baseline

    • the full relationship is: h_ord = sqrt(h_abs**2 - e_ord**2) - h_bas, where e_ord = h_abs * sin(d_ord)
    • OR, you could simply return the object i_mean.h, which is generated by the calculate_I() method

(Remember that that all absolute and baseline values for H, D, and Z are stored in the reading's list of absolutes, and that the pier_correction is its own object inside a reading)

For Declination Summary

  • magneticSouthMeridian - the "meridian" currently calculated and returned by calculate_D_absolute() method is actually composed of three components:
    • decompose the current calculation into:
      • DComputed = \frac{1}{n}{\sum}_{i=1}^{n} \arctan(e_i / (h_i+h_{base})
      • RComputed = \frac{1}{n}{\sum}_{i=1}^{n} \arcsin(r_i / \sqrt{(h_i+h_{base})^2 + e_i^2} ) \quad\textrm{ where }\quad r\equiv\textrm{residual measurement}
      • magneticSouthMeridian = \frac{1}{n}{\sum}_{i=1}^{n} A_i \quad\textrm{ where }\quad A\equiv[\textrm{WestDn, EastDn, WestUp, EastUp}]
    • combine these for the calculation of d_b (declination baseline), then
    • add components to diagnostics object
  • meanMark - the "average_mark" currently calculated by calculate_D_absolute() method is already corrected by 90 degrees in the proper direction for the calculation of d_b (declination baseline);
    • we could un-correct this so it looks like observers expect, but that seems...
    • add to diagnostics object
  • magneticAzimuthOfMark = \textrm{meanMark} - \textrm{magneticSouthMeridian}
    • this is only true if meanMark is the same as "average_mark (i.e., properly rotated by 90 degrees)
    • add to diagnostics object

Other Diagnostics

  • scaleValue - already calculated as scale_value, need to place inside diagnostics object
    • scale_value should be removed from the class definition for reading
    • the scale_value calculated here has units of degrees, while the scale_value calculated in residual spreadsheets has units of gradians, or gon. Neither make geometric or physical sense, so another issue should be created to research what this diagnostic value should really be (probably it should be radians, or in effect, a dimensionless ratio).
Edited by Sachuk, Lina