### New checks for measurements

`Added a check for distance from ideal line for Interferometric lines of sight.`
parent 859088af
 ... ... @@ -10,7 +10,7 @@ import numpy as np #import sys #import string #import math as m import math as m import config as cg import functions as fc ... ... @@ -179,6 +179,28 @@ else: "again. To help troubleshoot, change Print_typos in config.py to " "True.") # Checking the distance from line for LT-IFM measurements for line in LoS_measurements: average_Hz = sum(v for v in LoS_measurements[line].values()) /\ float(len(LoS_measurements[line])) average_V = sum(v for v in LoS_measurements[line].values()) /\ float(len(LoS_measurements[line])) counter = 0 for point in LoS_measurements[line]: Hz_diff = fc.gon2rad(average_Hz - LoS_measurements[line][point])\ * LoS_measurements[line][point] V_diff = fc.gon2rad(average_V - LoS_measurements[line][point])\ * LoS_measurements[line][point] Diff = m.sqrt(m.pow(Hz_diff,2)+m.pow(V_diff,2)) if cg.Max_diff_from_line < Diff: counter = counter + 1 print("Line: %s, in Epoch 0, point %s exceeds Maximum difference " "from line of %1.3f. The total difference is %1.3f mm, " " with horizontal component %1.3f mm and vertical component " "%1.3f mm" %(line, point, cg.Max_diff_from_line, abs(Diff), abs(Hz_diff), abs(V_diff))) # print(line, counter) del line, average_Hz, average_V, counter, point, Hz_diff, V_diff, Diff """ EPOCH 1 - Post transport """ ... ... @@ -319,6 +341,29 @@ if Two_epochs: " errors in input data. Please correct before running the script" " again. To help troubleshoot, change Print_typos in config.py " "to True.") # Checking the distance from line for LT-IFM measurements for line in LoS_measurements_E1: average_Hz = sum(v for v in LoS_measurements_E1[line].values()) /\ float(len(LoS_measurements_E1[line])) average_V = sum(v for v in LoS_measurements_E1[line].values()) /\ float(len(LoS_measurements_E1[line])) counter = 0 for point in LoS_measurements_E1[line]: Hz_diff = fc.gon2rad(average_Hz - LoS_measurements_E1[line][point])\ * LoS_measurements_E1[line][point] V_diff = fc.gon2rad(average_V - LoS_measurements_E1[line][point])\ * LoS_measurements_E1[line][point] Diff = m.sqrt(m.pow(Hz_diff,2)+m.pow(V_diff,2)) if cg.Max_diff_from_line < Diff: counter = counter + 1 print("Line: %s, in Epoch 1, point %s exceeds Maximum difference " "from line of %1.3f. The total difference is %1.3f mm, " " with horizontal component %1.3f mm and vertical component " "%1.3f mm" %(line, point, cg.Max_diff_from_line, abs(Diff), abs(Hz_diff), abs(V_diff))) # print(line, counter) del line, average_Hz, average_V, counter, point, Hz_diff, V_diff, Diff # ============================================================================= # Standard Deviations calculations ... ... @@ -348,16 +393,19 @@ if Two_epochs: # Pol_measurements_cart(_E1) as extension of the existing tuple format: # X, Y, Z, StDev_X, StDev_Y, StDev_Z # First, transform the idiotic way of transcribing angular precision by Leica for instrument in Pol_measurements_cart: for point in Pol_measurements_cart[instrument]: # Leica's strange way of describing angular precision to normal StDev_HZ_Z = fc.StDev_angle( Pol_measurements[instrument][point],cg.Ang_StDev) # Combining ADM and IFM precision for polar measurements StDev_S = cg.ADM_StDev + fc.StDev_sys_ppm(Pol_measurements[instrument][ point],cg.IFM_StDev) # Polar measurements precisions appended to the measured dictionary StDev_meas = (StDev_S,StDev_HZ_Z,StDev_HZ_Z) Pol_measurements[instrument][point] = Pol_measurements[instrument][ point] + StDev_meas # X, Y, Z StDevs calculated and appended to the _cart measured data StDevXYZ = fc.StDev_XYZ_from_Polar(Pol_measurements[instrument][ point],StDev_S,StDev_HZ_Z,StDev_HZ_Z) Pol_measurements_cart[instrument][point] = Pol_measurements_cart[ ... ... @@ -367,13 +415,17 @@ for instrument in Pol_measurements_cart: if Two_epochs: for instrument in Pol_measurements_cart_E1: for point in Pol_measurements_cart_E1[instrument]: # Leica's strange way of describing angular precision to normal StDev_HZ_Z = fc.StDev_angle( Pol_measurements_E1[instrument][point],cg.Ang_StDev) # Combining ADM and IFM precision for polar measurements StDev_S = cg.ADM_StDev + fc.StDev_sys_ppm(Pol_measurements_E1[ instrument][point],cg.IFM_StDev) # Polar measurements precisions appended to the measured dictionary StDev_meas = (StDev_S,StDev_HZ_Z,StDev_HZ_Z) Pol_measurements_E1[instrument][point] = Pol_measurements_E1[ instrument][point] + StDev_meas # X, Y, Z StDevs calculated and appended to the _cart measured data StDevXYZ = fc.StDev_XYZ_from_Polar(Pol_measurements_E1[instrument][ point],StDev_S,StDev_HZ_Z,StDev_HZ_Z) Pol_measurements_cart_E1[instrument][point] = \ ... ... @@ -381,7 +433,7 @@ if Two_epochs: del point, instrument, StDevXYZ, StDev_HZ_Z, StDev_S, StDev_meas # ============================================================================= # EPOCH comparisons, only happens if there are more than 1 Epoch # EPOCH comparisons, only happens if there are 2 Epochs # ============================================================================= all_lines_measured_same = True if Two_epochs: ... ...
 ... ... @@ -22,6 +22,7 @@ Pico_StDev = 0.00000001 #mm, PicoScale Standard Deviation IFM_StDev = (0.0004,0.00015) #mm, LT IFM, based on Leica's white paper ADM_StDev = 0.010 #mm, from 2-5m based on Leica's typical errors Ang_StDev = (0.015,0.003) #mm,ppm Max_diff_from_line = 0.5 #mm - maximum distance from line, report the excess Print_FIDs = False Line_differences_checking = False ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!