system_settings/optic_input_example_lidar.py

changeset 26
28b5510492ba
parent 23
ef8a64173c96
child 28
79fa4a41420f
equal deleted inserted replaced
25:4c66b9ca23be 26:28b5510492ba
23 TiE = 1.0 # Unpolarized transmittance 23 TiE = 1.0 # Unpolarized transmittance
24 RetE, dRetE, nRetE = 0., 180., 0 # Retardance in degrees 24 RetE, dRetE, nRetE = 0., 180., 0 # Retardance in degrees
25 RotE, dRotE, nRotE = 0., 1.0, 0 # beta: Rotation of optical element in degrees 25 RotE, dRotE, nRotE = 0., 1.0, 0 # beta: Rotation of optical element in degrees
26 26
27 # +++ MO Receiver optics including telescope 27 # +++ MO Receiver optics including telescope
28 DiO, dDiO, nDiO = 0.0, 0.1, 1 28 DiO, dDiO, nDiO = 0.0, 0.1, 1 # Diattenuation
29 TiO = 1.0 29 TiO = 1.0 # Unpolarized transmittance
30 RetO, dRetO, nRetO = 0., 180., 0 30 RetO, dRetO, nRetO = 0., 180., 0 # Retardance in degrees
31 RotO, dRotO, nRotO = 0., 0.5, 0 #gamma: Rotation of optical element in degrees 31 RotO, dRotO, nRotO = 0., 0.5, 0 #gamma: Rotation of the optical element in degrees
32 32
33 # +++++ PBS MT Transmitting path defined with TS, TP, PolFilter extinction ratio ERaT, and +-Uncertainty 33 # +++++ PBS MT Transmitting path defined with TS, TP, PolFilter extinction ratio ERaT, and +-Uncertainty
34 # --- Polarizing beam splitter transmitting path 34 # --- Polarizing beam splitter transmitting path
35 TP, dTP, nTP = 0.95, 0.01, 1 35 TP, dTP, nTP = 0.95, 0.01, 1 # transmittance of the PBS for parallel polarized light
36 TS, dTS, nTS = 0.02, 0.01, 1 36 TS, dTS, nTS = 0.02, 0.01, 1 # transmittance of the PBS for cross polarized light
37 RetT, dRetT, nRetT = 0.0, 180., 0 # Retardance in degrees 37 RetT, dRetT, nRetT = 0.0, 180., 0 # Retardance in degrees
38 # --- Pol.Filter behind transmitted path of PBS 38 # --- Pol.Filter behind transmitted path of PBS
39 ERaT, dERaT, nERaT = 0.001, 0.001, 1 # Extinction ratio 39 ERaT, dERaT, nERaT = 0.001, 0.001, 1 # Extinction ratio
40 RotaT, dRotaT, nRotaT = 0., 1., 1 # Rotation of the Pol.-filter in degrees; usually 0° because TP >> TS, but for PollyXTs it can also be 90° 40 RotaT, dRotaT, nRotaT = 0., 1., 1 # Rotation of the Pol.-filter in degrees; usually close to 0° because TP >> TS, but for PollyXTs it can also be close to 90°
41 # -- 41 # --
42 TiT = 0.5 * (TP + TS) 42 TiT = 0.5 * (TP + TS)
43 DiT = (TP-TS)/(TP+TS) 43 DiT = (TP-TS)/(TP+TS)
44 DaT = (1-ERaT)/(1+ERaT) 44 DaT = (1-ERaT)/(1+ERaT)
45 TaT = 0.5*(1+ERaT) 45 TaT = 0.5*(1+ERaT)
50 # --- Polarizing beam splitter reflecting path 50 # --- Polarizing beam splitter reflecting path
51 if(RS_RP_depend_on_TS_TP): 51 if(RS_RP_depend_on_TS_TP):
52 RP, dRP, nRP = 1-TP, 0.00, 0 # do not change this 52 RP, dRP, nRP = 1-TP, 0.00, 0 # do not change this
53 RS, dRS, nRS = 1-TS, 0.00, 0 # do not change this 53 RS, dRS, nRS = 1-TS, 0.00, 0 # do not change this
54 else: 54 else:
55 RP, dRP, nRP = 0.05, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False 55 RP, dRP, nRP = 0.05, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False; reflectance of the PBS for parallel polarized light
56 RS, dRS, nRS = 0.98, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False 56 RS, dRS, nRS = 0.98, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False; reflectance of the PBS for cross polarized light
57 RetR, dRetR, nRetR = 0.0, 180., 0 57 RetR, dRetR, nRetR = 0.0, 180., 0 # Retardance in degrees
58 # --- Pol.Filter behind reflected path of PBS 58 # --- Pol.Filter behind reflected path of PBS
59 ERaR, dERaR, nERaR = 0.001, 0.001, 1 # Extinction ratio 59 ERaR, dERaR, nERaR = 0.001, 0.001, 1 # Extinction ratio
60 RotaR, dRotaR, nRotaR = 90., 1., 1 # Rotation of the Pol.-filter in degrees; usually 90° because RS >> RP, but for PollyXTs it can also be 0° 60 RotaR, dRotaR, nRotaR = 90., 1., 1 # Rotation of the Pol.-filter in degrees; usually 90° because RS >> RP, but for PollyXTs it can also be 0°
61 # -- 61 # --
62 TiR = 0.5 * (RP + RS) 62 TiR = 0.5 * (RP + RS)
63 DiR = (RP-RS)/(RP+RS) 63 DiR = (RP-RS)/(RP+RS)
64 DaR = (1-ERaR)/(1+ERaR) 64 DaR = (1-ERaR)/(1+ERaR)
65 TaR = 0.5*(1+ERaR) 65 TaR = 0.5*(1+ERaR)
66 66
67 # +++ Parallel signal detected in the transmitted channel => Y = +1, or in the reflected channel => Y = -1 67 # +++ Orientation of the PBS with respect to the reference plane (see Polarisation-orientation.png and Polarisation-orientation-2.png in /system_settings)
68 # Y = +1: polarisation in reference plane is transmitted,
69 # Y = -1: polarisation in reference plane is reflected.
68 Y = +1. 70 Y = +1.
69 71
70 # +++ Calibrator Location 72 # +++ Calibrator Location
71 LocC = 3 #location of calibrator: 1 = behind laser; 2 = behind emitter; 3 = before receiver; 4 = before PBS 73 LocC = 3 #location of calibrator: 1 = behind laser; 2 = behind emitter; 3 = before receiver; 4 = before PBS
72 # --- Calibrator Type used; defined by matrix values below 74 # --- Calibrator Type used; defined by matrix values below
73 TypeC = 3 #Type of calibrator: 1 = mechanical rotator; 2 = hwp rotator (fixed retardation); 3 = linear polarizer; 4 = qwp; 5 = circular polarizer; 6 = real HWP calibration +-22.5° 75 TypeC = 3 #Type of calibrator: 1 = mechanical rotator; 2 = hwp rotator (fixed retardation); 3 = linear polarizer; 4 = qwp; 5 = circular polarizer; 6 = real HWP calibration +-22.5°
74 # --- MC Calibrator parameters 76 # --- MC Calibrator parameters
75 if TypeC == 1: #mechanical rotator 77 if TypeC == 1: #mechanical rotator
76 DiC, dDiC, nDiC = 0., 0., 0 78 DiC, dDiC, nDiC = 0., 0., 0 # Diattenuation
77 TiC = 1. 79 TiC = 1.
78 RetC, dRetC, nRetC = 0., 0., 0 80 RetC, dRetC, nRetC = 0., 0., 0 # Retardance in degrees
79 RotC, dRotC, nRotC = 0., 0.1, 1 #constant calibrator offset epsilon 81 RotC, dRotC, nRotC = 0., 0.1, 1 #constant calibrator rotation offset epsilon
80 # Rotation error without calibrator: if False, then epsilon = 0 for normal measurements 82 # Rotation error without calibrator: if False, then epsilon = 0 for normal measurements
81 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 1 calibrator 83 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 1 calibrator
82 elif TypeC == 2: # HWP rotator 84 elif TypeC == 2: # HWP rotator without retardance!
83 DiC, dDiC, nDiC = 0., 0., 0 85 DiC, dDiC, nDiC = 0., 0., 0 # Diattenuation; ideal 0.0
84 TiC = 1. 86 TiC = 1.
85 RetC, dRetC, nRetC = 180., 0., 0 87 RetC, dRetC, nRetC = 180., 0., 0 # Retardance in degrees
86 #NOTE: use here twice the HWP-rotation-angle 88 #NOTE: use here twice the HWP-rotation-angle
87 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon 89 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator rotation offset epsilon
88 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 2 calibrator 90 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 2 calibrator
89 elif TypeC == 3: # linear polarizer calibrator. Diattenuation DiC = (1-ERC)/(1+ERC); ERC = extinction ratio of calibrator 91 elif TypeC == 3: # linear polarizer calibrator. Diattenuation DiC = (1-ERC)/(1+ERC); ERC = extinction ratio of calibrator
90 DiC, dDiC, nDiC = 0.9998, 0.0001, 1 # ideal 1.0 92 DiC, dDiC, nDiC = 0.9998, 0.0001, 1 # Diattenuation; ideal 1.0
91 TiC = 0.4 # ideal 0.5 93 TiC = 0.4 # ideal 0.5
92 RetC, dRetC, nRetC = 0., 0., 0 94 RetC, dRetC, nRetC = 0., 0., 0 # Retardance in degrees
93 RotC, dRotC, nRotC = 0.0, 0.1, 0 #constant calibrator offset epsilon 95 RotC, dRotC, nRotC = 0.0, 0.1, 0 #constant calibrator rotation offset epsilon
94 RotationErrorEpsilonForNormalMeasurements = False # is in general False for TypeC == 3 calibrator 96 RotationErrorEpsilonForNormalMeasurements = False # is in general False for TypeC == 3 calibrator
95 elif TypeC == 4: # QWP calibrator 97 elif TypeC == 4: # QWP calibrator
96 DiC, dDiC, nDiC = 0.0, 0., 0 # ideal 1.0 98 DiC, dDiC, nDiC = 0.0, 0., 0 # Diattenuation; ideal 0.0
97 TiC = 1.0 # ideal 0.5 99 TiC = 1.0 # ideal 0.5
98 RetC, dRetC, nRetC = 90., 0., 0 100 RetC, dRetC, nRetC = 90., 0., 0 # Retardance in degrees
99 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon 101 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator rotation offset epsilon
100 RotationErrorEpsilonForNormalMeasurements = False # is False for TypeC == 4 calibrator 102 RotationErrorEpsilonForNormalMeasurements = False # is False for TypeC == 4 calibrator
101 elif TypeC == 6: # real half-wave plate calibration at +-22.5° => rotated_diattenuator_X22x5deg.odt 103 elif TypeC == 6: # real half-wave plate rotator calibration at +-22.5° => rotated_diattenuator_X22x5deg.odt
102 DiC, dDiC, nDiC = 0., 0., 0 104 DiC, dDiC, nDiC = 0., 0., 0 # Diattenuation; ideal 0.0
103 TiC = 1. 105 TiC = 1.
104 RetC, dRetC, nRetC = 180., 0., 0 106 RetC, dRetC, nRetC = 180., 0., 0 # Retardance in degrees
105 #Note: use real HWP angles here 107 #Note: use real HWP angles here
106 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon 108 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator rotation offset epsilon
107 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 6 calibrator 109 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 6 calibrator
108 else: 110 else:
109 print ('calibrator not implemented yet') 111 print ('calibrator not implemented yet')
110 sys.exit() 112 sys.exit()
111 113

mercurial