| 109 ERaT, dERaT, nERaT = 0.001, 0.001, 1 |
109 ERaT, dERaT, nERaT = 0.001, 0.001, 1 |
| 110 RotaT, dRotaT, nRotaT = 0., 3., 1 |
110 RotaT, dRotaT, nRotaT = 0., 3., 1 |
| 111 DaT = (1-ERaT)/(1+ERaT) |
111 DaT = (1-ERaT)/(1+ERaT) |
| 112 TaT = 0.5*(1+ERaT) |
112 TaT = 0.5*(1+ERaT) |
| 113 # --- PBS MR reflecting path defined with (RS,RP); and +-Uncertainty |
113 # --- PBS MR reflecting path defined with (RS,RP); and +-Uncertainty |
| 114 RS, dRS, nRS = 1 - TS, 0., 0 |
114 RS_RP_depend_on_TS_TP = False |
| 115 RP, dRP, nRP = 1 - TP, 0., 0 |
115 if(RS_RP_depend_on_TS_TP): |
| |
116 RP, dRP, nRP = 1-TP, 0.00, 0 |
| |
117 RS, dRS, nRS = 1-TS, 0.00, 0 |
| |
118 else: |
| |
119 RP, dRP, nRP = 0.05, 0.01, 1 |
| |
120 RS, dRS, nRS = 0.98, 0.01, 1 |
| 116 TiR = 0.5 * (RP + RS) |
121 TiR = 0.5 * (RP + RS) |
| 117 DiR = (RP-RS)/(RP+RS) |
122 DiR = (RP-RS)/(RP+RS) |
| 118 # PolFilter |
123 # PolFilter |
| 119 RetR, dRetR, nRetR = 0., 180., 0 |
124 RetR, dRetR, nRetR = 0., 180., 0 |
| 120 ERaR, dERaR, nERaR = 0.001, 0.001, 1 |
125 ERaR, dERaR, nERaR = 0.001, 0.001, 1 |
| 266 ZiT = (1. - DiT**2)**0.5 |
271 ZiT = (1. - DiT**2)**0.5 |
| 267 TiR = 0.5 * (RP + RS) |
272 TiR = 0.5 * (RP + RS) |
| 268 DiR = (RP-RS)/(RP+RS) |
273 DiR = (RP-RS)/(RP+RS) |
| 269 ZiR = (1. - DiR**2)**0.5 |
274 ZiR = (1. - DiR**2)**0.5 |
| 270 |
275 |
| 271 # -------------------------------------------------------- |
276 # --- this subroutine is for the calculation with certain fixed parameters ----------------------------------------------------- |
| 272 def Calc(RotL, RotE, RetE, DiE, RotO, RetO, DiO, RotC, RetC, DiC, TP, TS, RP, RS, ERaT, RotaT, RetT, ERaR, RotaR, RetR, LDRCal): |
277 def Calc(RotL, RotE, RetE, DiE, RotO, RetO, DiO, RotC, RetC, DiC, TP, TS, RP, RS, ERaT, RotaT, RetT, ERaR, RotaR, RetR, LDRCal): |
| 273 # ---- Do the calculations of bra-ket vectors |
278 # ---- Do the calculations of bra-ket vectors |
| 274 h = -1. if TypeC == 2 else 1 |
279 h = -1. if TypeC == 2 else 1 |
| 275 # from input file: assumed LDRCal for calibration measurements |
280 # from input file: assumed LDRCal for calibration measurements |
| 276 aCal = (1.-LDRCal)/(1+LDRCal) |
281 aCal = (1.-LDRCal)/(1+LDRCal) |
| 821 # ******************************************************************************************************************************* |
826 # ******************************************************************************************************************************* |
| 822 |
827 |
| 823 # --- CALC truth |
828 # --- CALC truth |
| 824 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal0) |
829 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal0) |
| 825 |
830 |
| 826 # -------------------------------------------------------- |
831 # --- Print parameters to console and output file |
| 827 with open('output_' + LID + '.dat', 'w') as f: |
832 with open('output_files\output_' + LID + '.dat', 'w') as f: |
| 828 with redirect_stdout(f): |
833 with redirect_stdout(f): |
| 829 print("From ", dname) |
834 print("From ", dname) |
| 830 print("Running ", fname) |
835 print("Running ", fname) |
| 831 print("Reading input file ", InputFile) #, " for Lidar system :", EID, ", ", LID) |
836 print("Reading input file ", InputFile) #, " for Lidar system :", EID, ", ", LID) |
| 832 print("for Lidar system: ", EID, ", ", LID) |
837 print("for Lidar system: ", EID, ", ", LID) |
| 842 print("{0:12}{1:7.4f}±{2:7.4f}/{3:2d}, {4:7.4f}±{5:7.4f}/{6:2d}".format("RotaT , RotaR :", RotaT0, dRotaT, nRotaT, RotaR0,dRotaR,nRotaR)) |
847 print("{0:12}{1:7.4f}±{2:7.4f}/{3:2d}, {4:7.4f}±{5:7.4f}/{6:2d}".format("RotaT , RotaR :", RotaT0, dRotaT, nRotaT, RotaR0,dRotaR,nRotaR)) |
| 843 print("{0:12}".format(" --- PBS ---")) |
848 print("{0:12}".format(" --- PBS ---")) |
| 844 print("{0:12}{1:7.4f}±{2:7.4f}/{9:2d}, {3:7.4f}±{4:7.4f}/{10:2d}, {5:7.4f}±{6:7.4f}/{11:2d},{7:7.4f}±{8:7.4f}/{12:2d}".format("TP,TS,RP,RS :", TP0, dTP, TS0, dTS, RP0, dRP, RS0, dRS, nTP, nTS, nRP, nRS)) |
849 print("{0:12}{1:7.4f}±{2:7.4f}/{9:2d}, {3:7.4f}±{4:7.4f}/{10:2d}, {5:7.4f}±{6:7.4f}/{11:2d},{7:7.4f}±{8:7.4f}/{12:2d}".format("TP,TS,RP,RS :", TP0, dTP, TS0, dTS, RP0, dRP, RS0, dRS, nTP, nTS, nRP, nRS)) |
| 845 print("{0:12}{1:7.4f},{2:7.4f}, {3:7.4f},{4:7.4f}, {5:1.0f}".format("DT,TT,DR,TR,Y :", DiT, TiT, DiR, TiR, Y)) |
850 print("{0:12}{1:7.4f},{2:7.4f}, {3:7.4f},{4:7.4f}, {5:1.0f}".format("DT,TT,DR,TR,Y :", DiT, TiT, DiR, TiR, Y)) |
| 846 print("{0:12}".format(" --- Combined PBS + Pol.-filter ---")) |
851 print("{0:12}".format(" --- Combined PBS + Pol.-filter ---")) |
| 847 print("{0:12}{1:7.4f},{2:7.4f}, {3:7.4f},{4:7.4f}".format("DTa,TTa,DRa,TRa: ", DTa0, TTa0, DRa0, TRa0)) |
852 print("{0:12}{1:7.4f},{2:7.4f}, {3:7.4f},{4:7.4f}".format("DT,TT,DR,TR :", DTa0, TTa0, DRa0, TRa0)) |
| 848 print() |
853 print() |
| 849 print("Rotation Error Epsilon For Normal Measurements = ", RotationErrorEpsilonForNormalMeasurements) |
854 print("Rotation Error Epsilon For Normal Measurements = ", RotationErrorEpsilonForNormalMeasurements) |
| 850 #print ('LocC = ', LocC, Loc[LocC], '; TypeC = ',TypeC, Type[TypeC]) |
855 print(Type[TypeC], Loc[LocC]) |
| 851 print(Type[TypeC], Loc[LocC], "; Parallel signal detected in", dY[int(Y+1)]) |
856 print("Parallel signal detected in", dY[int(Y+1)]) |
| |
857 print("RS_RP_depend_on_TS_TP = ", RS_RP_depend_on_TS_TP) |
| 852 # end of print actual system parameters |
858 # end of print actual system parameters |
| 853 # ****************************************************************************** |
859 # ****************************************************************************** |
| 854 |
860 |
| 855 #print() |
861 #print() |
| 856 #print(" --- LDRCal during calibration | simulated and corrected LDRs -------------") |
862 #print(" --- LDRCal during calibration | simulated and corrected LDRs -------------") |
| 871 for i,LDRCal in enumerate(LDRCalList): |
877 for i,LDRCal in enumerate(LDRCalList): |
| 872 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal) |
878 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal) |
| 873 K0List[i] = K0 |
879 K0List[i] = K0 |
| 874 LDRsimxList[i] = LDRsimx |
880 LDRsimxList[i] = LDRsimx |
| 875 |
881 |
| 876 print("{0:8},{1:8},{2:8},{3:8},{4:9},{5:9},{6:9}".format(" GR", " GT", " HR", " HT", " K(0.004)", " K(0.2)", " K(0.45)")) |
882 print('========================================================================') |
| |
883 print("{0:8},{1:8},{2:8},{3:8},{4:9},{5:8},{6:9}".format(" GR", " GT", " HR", " HT", " K(0.004)", " K(0.2)", " K(0.45)")) |
| 877 print("{0:8.5f},{1:8.5f},{2:8.5f},{3:8.5f},{4:9.5f},{5:9.5f},{6:9.5f}".format(GR0, GT0, HR0, HT0, K0List[0], K0List[1], K0List[2])) |
884 print("{0:8.5f},{1:8.5f},{2:8.5f},{3:8.5f},{4:9.5f},{5:9.5f},{6:9.5f}".format(GR0, GT0, HR0, HT0, K0List[0], K0List[1], K0List[2])) |
| 878 print('========================================================================') |
885 print('========================================================================') |
| 879 |
886 |
| 880 print("{0:9},{1:9},{2:9}".format(" LDRtrue", " LDRsimx", " LDRCorr")) |
887 print("{0:9},{1:9},{2:9}".format(" LDRtrue", " LDRsimx", " LDRCorr")) |
| 881 LDRtrueList = 0.004, 0.02, 0.2, 0.45 |
888 LDRtrueList = 0.004, 0.02, 0.2, 0.45 |
| 882 for i,LDRtrue in enumerate(LDRtrueList): |
889 for i,LDRtrue in enumerate(LDRtrueList): |
| 883 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal0) |
890 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal0) |
| 884 print("{0:9.5f},{1:9.5f},{2:9.5f}".format(LDRtrue, LDRsimx, LDRCorr)) |
891 print("{0:9.5f},{1:9.5f},{2:9.5f}".format(LDRtrue, LDRsimx, LDRCorr)) |
| 885 |
892 |
| 886 |
893 |
| 887 file = open('output_' + LID + '.dat', 'r') |
894 file = open('output_files\output_' + LID + '.dat', 'r') |
| 888 print (file.read()) |
895 print (file.read()) |
| 889 file.close() |
896 file.close() |
| 890 |
897 |
| 891 ''' |
898 ''' |
| 892 if(PrintToOutputFile): |
899 if(PrintToOutputFile): |
| 902 sys.stdout = old_target |
909 sys.stdout = old_target |
| 903 ''' |
910 ''' |
| 904 # --- CALC again truth with LDRCal0 to reset all 0-values |
911 # --- CALC again truth with LDRCal0 to reset all 0-values |
| 905 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal0) |
912 GT0, HT0, GR0, HR0, K0, Eta0, LDRsimx, LDRCorr, DTa0, DRa0, TTa0, TRa0, F11sim0 = Calc(RotL0, RotE0, RetE0, DiE0, RotO0, RetO0, DiO0, RotC0, RetC0, DiC0, TP0, TS0, RP0, RS0, ERaT0, RotaT0, RetT0, ERaR0, RotaR0, RetR0, LDRCal0) |
| 906 |
913 |
| 907 # --- Start Errors calculation |
914 # --- Start Errors calculation with variable parameters ------------------------------------------------------------------ |
| 908 |
915 |
| 909 iN = -1 |
916 iN = -1 |
| 910 N = ((nRotL*2+1)* |
917 N = ((nRotL*2+1)* |
| 911 (nRotE*2+1)*(nRetE*2+1)*(nDiE*2+1)* |
918 (nRotE*2+1)*(nRetE*2+1)*(nDiE*2+1)* |
| 912 (nRotO*2+1)*(nRetO*2+1)*(nDiO*2+1)* |
919 (nRotO*2+1)*(nRetO*2+1)*(nDiO*2+1)* |