system_settings/optic_input_ver8c_PollyXT_RALPH_7.py

Thu, 10 Nov 2016 16:02:34 +0200

author
Iannis <ulalume3@yahoo.com>
date
Thu, 10 Nov 2016 16:02:34 +0200
changeset 0
d56e90f31b9e
child 3
d55a57e732be
permissions
-rw-r--r--

Initial commit during ACTRIS WP2 meeting in Barcelona.

ulalume3@0 1 # This Python script will be executed from within the main calc_lidar_correction_parameters_G_H_K.py
ulalume3@0 2 # Probably it will be better in the future to let the main script rather read a conguration file, which might improve the portability of the code within an executable.
ulalume3@0 3 # Due to problems I had with some two letter variables, most variables are now with at least three letters mixed small and capital.
ulalume3@0 4
ulalume3@0 5 # Header to identify the lidar system
ulalume3@0 6 # Values of DO, DT, and DR etc. from fit to lamp calibrations in Leipzig (LampCalib_2_invers_c_D0=0.opj)
ulalume3@0 7 EID = "oh" # Earlinet station ID
ulalume3@0 8 LID = "POLLY_XT_RALPH LampCalib_2_invers_c_DO=0.opj ver8c-7" # Additional lidar ID (short descriptive text)
ulalume3@0 9 # firet fit intern (FITLN1) => DO = 0, DT fixed -0.9998, eta and DR fitted,
ulalume3@0 10 # => internal calib with LinPol before the receiver
ulalume3@0 11 print(" Lidar system :", EID, ", ", LID)
ulalume3@0 12
ulalume3@0 13
ulalume3@0 14 # --- IL Laser IL and +-Uncertainty
ulalume3@0 15 bL = 1. #degree of linear polarization; default 1
ulalume3@0 16 RotL, dRotL, nRotL = 90, 1., 0 #alpha; rotation of laser polarization in degrees; default 0
ulalume3@0 17 # --- ME Emitter and +-Uncertainty
ulalume3@0 18 DiE, dDiE, nDiE = 0., 0.1, 0 # Diattenuation
ulalume3@0 19 TiE = 1. # Unpolarized transmittance
ulalume3@0 20 RetE, dRetE, nRetE = 0., 180.0, 0 # Retardance in degrees
ulalume3@0 21 RotE, dRotE, nRotE = 0., 1.0, 0 # beta: Rotation of optical element in degrees
ulalume3@0 22
ulalume3@0 23 # --- MO Receiver Optics including telescope
ulalume3@0 24 DiO, dDiO, nDiO = 0.0, 0.0022, 0
ulalume3@0 25 TiO = 1.0
ulalume3@0 26 RetO, dRetO, nRetO = 0., 180.0, 0
ulalume3@0 27 RotO, dRotO, nRotO = 0., 0.5, 0 #gamma
ulalume3@0 28
ulalume3@0 29 # --- PBS MT transmitting path defined with (TS,TP); and +-Uncertainty
ulalume3@0 30 # --- Pol.Filter
ulalume3@0 31 ERaT, dERaT, nERaT = 0.0001, 0.0001, 1 # Extinction ratio
ulalume3@0 32 RotaT, dRotaT, nRotaT = 90., 2., 0 # Rotation of the pol.-filter in degrees
ulalume3@0 33 DaT = (1-ERaT)/(1+ERaT)
ulalume3@0 34 TaT = 0.5*(1+ERaT)
ulalume3@0 35 # --- PBS combined with Pol.Filter
ulalume3@0 36 TP, dTP, nTP = 0.512175, 0.0024, 1
ulalume3@0 37 TS, dTS, nTS = 1-TP, 0.02, 0
ulalume3@0 38 TiT = 0.5 * (TP + TS)
ulalume3@0 39 DiT = (TP-TS)/(TP+TS)
ulalume3@0 40 RetT, dRetT, nRetT = 0., 180., 0 # Retardance in degrees
ulalume3@0 41
ulalume3@0 42 # --- PBS MR reflecting path defined with (RS,RP); and +-Uncertainty
ulalume3@0 43 # --- Pol.Filter
ulalume3@0 44 ERaR, dERaR, nERaR = 1, 0.003, 0
ulalume3@0 45 RotaR, dRotaR, nRotaR = 0., 2., 0
ulalume3@0 46 DaR = (1-ERaR)/(1+ERaR)
ulalume3@0 47 TaR = 0.5*(1+ERaR)
ulalume3@0 48 # --- PBS 50/50
ulalume3@0 49 RP, dRP, nRP = 1-TP, 0.02, 0
ulalume3@0 50 RS, dRS, nRS = 1-TS, 0.00, 0
ulalume3@0 51 RetR, dRetR, nRetR = 0., 180., 0
ulalume3@0 52 TiR = 0.5 * (RP + RS)
ulalume3@0 53 DiR = (RP-RS)/(RP+RS)
ulalume3@0 54
ulalume3@0 55 # --- Parallel signal detected in the transmitted channel => Y = 1, or in the reflected channel => Y = -1
ulalume3@0 56 Y = -1.
ulalume3@0 57
ulalume3@0 58 # --- Calibrator Location
ulalume3@0 59 LocC = 3 #location of calibrator: 1 = behind laser; 2 = behind emitter; 3 = before receiver; 4 = before PBS
ulalume3@0 60 # --- Calibrator Type used; defined by matrix values below
ulalume3@0 61 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°
ulalume3@0 62 # --- MC Calibrator
ulalume3@0 63 if TypeC == 1: #mechanical rotator
ulalume3@0 64 DiC, dDiC, nDiC = 0., 0., 0
ulalume3@0 65 TiC = 1.
ulalume3@0 66 RetC, dRetC, nRetC = 0., 0., 0
ulalume3@0 67 RotC, dRotC, nRotC = 0., 0.1, 1 #constant calibrator offset epsilon
ulalume3@0 68 # Rotation error without calibrator: if False, then epsilon = 0 for normal measurements
ulalume3@0 69 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 1 calibrator
ulalume3@0 70 elif TypeC == 2: # HWP rotator
ulalume3@0 71 DiC, dDiC, nDiC = 0., 0., 0
ulalume3@0 72 TiC = 1.
ulalume3@0 73 RetC, dRetC, nRetC = 180., 0., 0
ulalume3@0 74 #NOTE: use here twice the HWP-rotation-angle
ulalume3@0 75 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon
ulalume3@0 76 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 2 calibrator
ulalume3@0 77 elif TypeC == 3: # linear polarizer calibrator
ulalume3@0 78 DiC, dDiC, nDiC = 0.9998, 0.0001, 1 # ideal 1.0
ulalume3@0 79 TiC = 0.505 # ideal 0.5
ulalume3@0 80 RetC, dRetC, nRetC = 0., 0., 0
ulalume3@0 81 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon
ulalume3@0 82 RotationErrorEpsilonForNormalMeasurements = False # is in general False for TypeC == 3 calibrator
ulalume3@0 83 elif TypeC == 4: # QWP calibrator
ulalume3@0 84 DiC, dDiC, nDiC = 0.0, 0., 0 # ideal 1.0
ulalume3@0 85 TiC = 1.0 # ideal 0.5
ulalume3@0 86 RetC, dRetC, nRetC = 90., 0., 0
ulalume3@0 87 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon
ulalume3@0 88 RotationErrorEpsilonForNormalMeasurements = False # is False for TypeC == 4 calibrator
ulalume3@0 89 elif TypeC == 6: # real half-wave plate calibration at +-22.5° => rotated_diattenuator_X22x5deg.odt
ulalume3@0 90 DiC, dDiC, nDiC = 0., 0., 0
ulalume3@0 91 TiC = 1.
ulalume3@0 92 RetC, dRetC, nRetC = 180., 0., 0
ulalume3@0 93 #Note: use real HWP angles here
ulalume3@0 94 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon -1.15
ulalume3@0 95 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 6 calibrator
ulalume3@0 96 else:
ulalume3@0 97 print ('calibrator not implemented yet')
ulalume3@0 98 sys.exit()
ulalume3@0 99
ulalume3@0 100 # --- LDRCal assumed atmospheric linear depolarization ratio during the calibration measurements (first guess)
ulalume3@0 101 LDRCal,dLDRCal,nLDRCal= 0.006, 0.02, 1
ulalume3@0 102
ulalume3@0 103 # ====================================================
ulalume3@0 104 # NOTE: there is no need to change anything below.
ulalume3@0 105
ulalume3@0 106 # --- LDRtrue for simulation of measurement => LDRsim
ulalume3@0 107 LDRtrue = 0.4
ulalume3@0 108 LDRtrue2 = 0.004
ulalume3@0 109
ulalume3@0 110 # --- measured LDRm will be corrected with calculated parameters GHK
ulalume3@0 111 LDRmeas = 0.3
ulalume3@0 112
ulalume3@0 113 # --- this is just for correct transfer of the variables to the main file
ulalume3@0 114 RotL0, dRotL, nRotL = RotL, dRotL, nRotL
ulalume3@0 115 # Emitter
ulalume3@0 116 DiE0, dDiE, nDiE = DiE, dDiE, nDiE
ulalume3@0 117 RetE0, dRetE, nRetE = RetE, dRetE, nRetE
ulalume3@0 118 RotE0, dRotE, nRotE = RotE, dRotE, nRotE
ulalume3@0 119 # Receiver
ulalume3@0 120 DiO0, dDiO, nDiO = DiO, dDiO, nDiO
ulalume3@0 121 RetO0, dRetO, nRetO = RetO, dRetO, nRetO
ulalume3@0 122 RotO0, dRotO, nRotO = RotO, dRotO, nRotO
ulalume3@0 123 # Calibrator
ulalume3@0 124 DiC0, dDiC, nDiC = DiC, dDiC, nDiC
ulalume3@0 125 RetC0, dRetC, nRetC = RetC, dRetC, nRetC
ulalume3@0 126 RotC0, dRotC, nRotC = RotC, dRotC, nRotC
ulalume3@0 127 # PBS
ulalume3@0 128 TP0, dTP, nTP = TP, dTP, nTP
ulalume3@0 129 TS0, dTS, nTS = TS, dTS, nTS
ulalume3@0 130 RetT0, dRetT, nRetT = RetT, dRetT, nRetT
ulalume3@0 131
ulalume3@0 132 ERaT0, dERaT, nERaT = ERaT, dERaT, nERaT
ulalume3@0 133 RotaT0,dRotaT,nRotaT= RotaT,dRotaT,nRotaT
ulalume3@0 134
ulalume3@0 135 RP0, dRP, nRP = RP, dRP, nRP
ulalume3@0 136 RS0, dRS, nRS = RS, dRS, nRS
ulalume3@0 137 RetR0, dRetR, nRetR = RetR, dRetR, nRetR
ulalume3@0 138
ulalume3@0 139 ERaR0, dERaR, nERaR = ERaR, dERaR, nERaR
ulalume3@0 140 RotaR0,dRotaR,nRotaR= RotaR,dRotaR,nRotaR
ulalume3@0 141
ulalume3@0 142 LDRCal0,dLDRCal,nLDRCal=LDRCal,dLDRCal,nLDRCal

mercurial