From 9e0b09787ca7a650ee0c7308b7c5a822c8ec88ab Mon Sep 17 00:00:00 2001 From: Joost van den Born Date: Mon, 18 May 2020 17:33:07 +0200 Subject: [PATCH] Restructured the code --- .gitignore | 1 + README.md | 17 +- atmospheric refraction example.html | 51 + atmospheric refraction example.ipynb | 36 + atmosphericModel.py | 1025 ----------------- 1976USSA.txt => atmosphericModel/1976USSA.txt | 0 atmosphericModel/__init__.py | 10 + .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 390 bytes .../__pycache__/ciddorModel.cpython-37.pyc | Bin 0 -> 10429 bytes .../dispersionModels.cpython-37.pyc | Bin 0 -> 14354 bytes .../__pycache__/examples.cpython-37.pyc | Bin 0 -> 1867 bytes .../refractionModels.cpython-37.pyc | Bin 0 -> 7117 bytes .../refractivityModels.cpython-37.pyc | Bin 0 -> 11298 bytes atmosphericModel/ciddorModel.py | 385 +++++++ atmosphericModel/dispersionModels.py | 448 +++++++ atmosphericModel/examples.py | 106 ++ atmosphericModel/refractionModels.py | 218 ++++ atmosphericModel/refractivityModels.py | 349 ++++++ manual.pdf | Bin 98463 -> 0 bytes 19 files changed, 1615 insertions(+), 1031 deletions(-) delete mode 100644 atmosphericModel.py rename 1976USSA.txt => atmosphericModel/1976USSA.txt (100%) create mode 100644 atmosphericModel/__init__.py create mode 100644 atmosphericModel/__pycache__/__init__.cpython-37.pyc create mode 100644 atmosphericModel/__pycache__/ciddorModel.cpython-37.pyc create mode 100644 atmosphericModel/__pycache__/dispersionModels.cpython-37.pyc create mode 100644 atmosphericModel/__pycache__/examples.cpython-37.pyc create mode 100644 atmosphericModel/__pycache__/refractionModels.cpython-37.pyc create mode 100644 atmosphericModel/__pycache__/refractivityModels.cpython-37.pyc create mode 100644 atmosphericModel/ciddorModel.py create mode 100644 atmosphericModel/dispersionModels.py create mode 100644 atmosphericModel/examples.py create mode 100644 atmosphericModel/refractionModels.py create mode 100644 atmosphericModel/refractivityModels.py delete mode 100644 manual.pdf diff --git a/.gitignore b/.gitignore index 5ca0973..05d4011 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store +__pychache__/ diff --git a/README.md b/README.md index ddb04a9..f2bfb9d 100644 --- a/README.md +++ b/README.md @@ -10,16 +10,21 @@ Author info: *Joost van den Born*, *born@astron.nl* *Below you can find a set of models describing the atmospheric refraction and dispersion.* **Contents:** -- atmosphericModel.py : Python model that can be used to calculate the atmospheric refraction and dispersion -- refractionModel.py : Python script that compares the output of the different rerfraction models. +- atmosphericModel : Python model that can be used to calculate the atmospheric refraction and dispersion, the main content of this repository. +- refractionModel.py : Python script that compares the output of the different refraction models. Can be used as an example on how to use atmosphericModel.py -- 1976USSA.txt : Table with temperature, pressure, density and more as a function of altitude. - Values derived from the 1976 U.S. Standard Atmosphere. -- manual.pdf : Manual for using atmosphericModel.py - atmospheric refraction example: jupyter notebook example -- [Tech note]...models.pdf : Tech note describing the models. +**On the contents of the atmosphericModel package** +The package contains the following files: +- 1976USSA.txt : Data file of the 1976 US Standard Atmosphere. +- ciddorModel.py : Contains the `Observatory()` class to calculate the refractive index of atmospheric air, using the Ciddor (1996) model. +- dispersionModels.py : Contains various atmospheric models that can be used to calculate the atmospheric dispersion +- examples.py : Contains several quick functions, e.g. to quickly calculate the refractive index. +- refractionModels.py : Contains various atmospheric models that can be used to calculate the atmospheric refraction +- refractivityModels.py : Contains various functions from literature to calculate the refractive index. Some examples of works included are Ciddor (1996), Barrell & Sears (1939), SLALIB, Owens (1967) and Edlen (1966). + **On the dispersion model:** diff --git a/atmospheric refraction example.html b/atmospheric refraction example.html index 65634ed..7b94324 100644 --- a/atmospheric refraction example.html +++ b/atmospheric refraction example.html @@ -13286,6 +13286,57 @@ div#notebook { + +
+
+
+

There are also some quick calculation functions defined in the examples.py file, if you just want to know the refractive index, the refraction or the dispersion at standard atmospheric conditions (conditions='STANDARD') or at Cerro Armazones (conditions='CERRO_ARMAZONES').

+ +
+
+
+
+
+
In [6]:
+
+
+
# Quick refractive index
+nq = quick_refractive_index(l=1.49, conditions='STANDARD')
+print('Quick refractive index: {}'.format(nq))
+
+# Quick refraction
+rq = quick_refraction(l1, zenith_obs, conditions='CERRO_ARMAZONES') * 3.6e3
+print('Quick refraction: {:.3f} arcsec'.format(rq))
+
+# Quick dispersion
+dq = quick_dispersion(l1, l2, zenith_obs, conditions='CERRO_ARMAZONES') * 3.6e6
+print('Quick dispersion: {:.3f} mas'.format(dq))
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Quick refractive index: 1.0002733131243147
+Quick refraction: 40.697 arcsec
+Quick dispersion: 31.019 mas
+
+
+
+ +
+
+
diff --git a/atmospheric refraction example.ipynb b/atmospheric refraction example.ipynb index 4d61886..a89f56d 100644 --- a/atmospheric refraction example.ipynb +++ b/atmospheric refraction example.ipynb @@ -159,6 +159,42 @@ "\n", "print ('The dispersion is %.03f +/- %.03f milli arc seconds' %(dispersion_obs, dispersion_unc))" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are also some quick calculation functions defined in the `examples.py` file, if you just want to know the refractive index, the refraction or the dispersion at standard atmospheric conditions (`conditions='STANDARD'`) or at Cerro Armazones (`conditions='CERRO_ARMAZONES'`)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quick refractive index: 1.0002733131243147\n", + "Quick refraction: 40.697 arcsec\n", + "Quick dispersion: 31.019 mas\n" + ] + } + ], + "source": [ + "# Quick refractive index\n", + "nq = quick_refractive_index(l=1.49, conditions='STANDARD')\n", + "print('Quick refractive index: {}'.format(nq))\n", + "\n", + "# Quick refraction\n", + "rq = quick_refraction(l1, zenith_obs, conditions='CERRO_ARMAZONES') * 3.6e3\n", + "print('Quick refraction: {:.3f} arcsec'.format(rq))\n", + "\n", + "# Quick dispersion\n", + "dq = quick_dispersion(l1, l2, zenith_obs, conditions='CERRO_ARMAZONES') * 3.6e6\n", + "print('Quick dispersion: {:.3f} mas'.format(dq))\n" + ] } ], "metadata": { diff --git a/atmosphericModel.py b/atmosphericModel.py deleted file mode 100644 index dc651e5..0000000 --- a/atmosphericModel.py +++ /dev/null @@ -1,1025 +0,0 @@ -#!/usr/bin/env Python3 -import numpy as np -from scipy import integrate - -''' -@ Author: Joost van den Born -@ Contact: born@astron.nl -@ Description: This script offers a complete model of the atmospheric refraction - and dispersion. It uses the Ciddor1996 paper to calculate the - index of refraction for a wide range of conditions, with corresponding - error propagation if needed. - The actual refraction is calculated by any of the following models: - - Plane parallel atmosphere - - Cassini spherical homogeneous atmosphere - - Other methods described in Corbard et al., 2019. -''' - - -class Observatory: - def __init__(self, dT=0.2, dP=20, dH=0.02, dCO2=20, dl=0.001): - self.dT = dT # in K - self.dP = dP # in Pa - self.dH = dH # relative humidity between 0 and 1 - self.dCO2 = dCO2 # in ppm - self.dl = dl # in micron - - def n_as(self, l): - ''' - Formula that calculate the refractive index for standard atmospheric - conditions, i.e. 15 C, 101,325 Pa, 0% RH, 450 ppm CO2. - It returns n_as, not (n_as - 1) * 1e8! - ''' - _s = 1 / l - _k0 = 238.0185 # um^-2 - _k1 = 5792105 # um^-2 - _k2 = 57.362 # um^-2 - _k3 = 167917 # um^-2 - return (_k1 / (_k0 - _s**2) + _k3 / (_k2 - _s**2)) / 1e8 + 1 - - - def n_axs(self, l, xc): - ''' - Formula that calculate the refractive index for standard atmospheric - conditions, i.e. 15 C, 101,325 Pa, 0% RH, but with xc ppm of CO2. - It returns n_axs, not (n_axs - 1) - ''' - _n_as = self.n_as(l) - return ( (_n_as - 1) * (1 + 0.534e-6 * (xc - 450) ) ) + 1 - - - def n_ws(self, l): - ''' - Formula that calculates the refractivity of air for standard moist conditions - as defined by B&S (1939), i.e. 20 C, 1333 Pa - Returns n_ws, not (n_ws - 1) * 1e8 - ''' - _s = 1 / l - _cf = 1.022 - _w0 = 295.235 # um^-2 - _w1 = 2.6422 # um^-2 - _w2 = -0.032380 # um^-4 - _w3 = 0.004028 # um^-6 - return (_cf * (_w0 + _w1 * _s**2 + _w2 * _s**4 + _w3 * _s**6) ) / 1e8 + 1 - - - def f(self, p, T): - ''' - Enhancement factor of water vapour in air - t in degrees celsius - p in Pascal (Pa) - ''' - _t = T - 273.15 - _a = 1.00062 - _b = 3.14e-8 # Pa^-1 - _c = 5.6e-7 # deg C^-2 - return _a + _b * p + _c * _t**2 - - - def svp(self, T): - ''' - Saturation vapour pressure in Pa. - ''' - _A = 1.2378847e-5 # K^-2 - _B = -1.9121316e-2 # K^-2 - _C = 33.93711047 - _D = -6.3431645e3 # K^-2 - return np.exp(_A*T**2 + _B*T + _C + _D/T) - - - def svp2(self, T): - ''' - Calculation of svp from IAPWS formula, based on documentation by NIST toolbox. - ''' - K1 = 1.16705214528e+03 - K2 = -7.24213167032e+05 - K3 = -1.70738469401e+01 - K4 = 1.20208247025e+04 - K5 = -3.23255503223e+06 - K6 = 1.49151086135e+01 - K7 = -4.82326573616e+03 - K8 = 4.05113405421e+05 - K9 = -2.38555575678e-01 - K10 = 6.50175348448e+02 - _W = T + K9 / (T - K10) - _A = _W**2 + K1*_W + K2 - _B = K3*_W**2 + K4*_W + K5 - _C = K6*_W**2 + K7*_W + K8 - _X = -_B + np.sqrt(_B**2 - 4*_A*_C) - return (2*_C / _X)**4 * 1e6 - - - def xw(self, p, T, RH): - ''' - Molar fraction of water vapour in moist air. - ''' - _f = self.f(p, T) - _svp = self.svp(T) - return _f * RH * _svp / p - - - def Z(self, p, T, RH, xw=''): - ''' - Compressibility of moist air - ''' - _a0 = 1.58123e-6 # K Pa^-1 - _a1 = -2.9331e-8 # Pa^-1 - _a2 = 1.1043e-10 # K^-1 Pa^-1 - _b0 = 5.707e-6 # K Pa^-1 - _b1 = -2.051e-8 # Pa^-1 - _c0 = 1.9898e-4 # K Pa^-1 - _c1 = -2.376e-6 # Pa^-1 - _d = 1.83e-11 # K^2 Pa^-2 - _e = -0.765e-8 # K^2 Pa^-2 - _t = T - 273.15 - if xw == '': - _xw = self.xw(p, T, RH) - else: - _xw = xw - Z = 1 - (p/T) * (_a0 + _a1*_t + _a2*_t**2 + (_b0 + _b1*_t)*_xw + (_c0 + _c1*_t)*_xw**2) + (p/T)**2 * (_d + _e*_xw**2) - return Z - - - def rho(self, p, T, RH, xc, xw=''): - ''' - Calculates the density of air for the given parameters. - T in Kelvin - p in Pascal - RH between 0 and 1 - xc in ppm - ''' - _Ma = 1e-3 * (28.9635 + 12.011e-6 * (xc - 400) ) # Molar mass in kg/mol of dry air containing xc ppm of CO2 - _Mw = 0.018015 # kg/mol - _R = 8.314510 # J mol^-1 K^-1, gas constant - if xw == '': - _xw = self.xw(p, T, RH) - else: - _xw = xw - _Z = self.Z(p, T, RH, xw=_xw) - return ( ( p * _Ma ) / (_Z * _R * T) ) * ( 1 - _xw * (1 - _Mw/_Ma)) - - - def n_tph(self, l, T, p, RH, xc): - ''' - Calculates the refraction of the atmosphere for any conditions. - ''' - _n_a = self.n_axs(l, xc) - _n_w = self.n_ws(l) - _La = (_n_a**2 - 1) / (_n_a**2 + 2) - _Lw = (_n_w**2 - 1) / (_n_w**2 + 2) - - # Calculate the density of the dry air components, using the partial pressure of the dry air, i.e. p_dry = p_atm - p_water - _rho_a = self.rho(p=p-RH*self.svp(T), T=T, RH=0, xc=xc) # Dry air component for the actual conditions. - _rho_axs = self.rho(p=101325, T=288.15, RH=0, xc=xc) # Dry air component at standard conditions. - - if RH == 0: - # nan is returned for _rho_w if we put in a (partial) pressure of 0 - _rho_w = 0 - else: - # Partial pressure of water vapour is p_water = h*svp - _rho_w = self.rho(p=RH*self.svp(T), T=T, RH=RH, xc=xc) # Moist air component for the actual conditions. - _rho_ws = self.rho(p=1333, T=293.15, RH=1333/self.svp(293.15), xc=xc) # Moist air component at standard conditions. - - _Ltotal = ( _rho_a / _rho_axs ) * _La + ( _rho_w / _rho_ws ) * _Lw - - # print 'Dry air component = ', (_rho_a/_rho_axs)*(_n_a-1)*1e8 - # print 'Wet component = ', ( _rho_w / _rho_ws ) * (_n_w - 1)*1e8 - # print 'Sum of components = ', (_rho_a/_rho_axs)*(_n_a-1)*1e8+( _rho_w / _rho_ws ) * (_n_w - 1)*1e8 - return np.sqrt( (1 + 2 * _Ltotal) / (1 - _Ltotal) ) - - - def dn_tph(self, l, T, p, RH, xc, dl=None, dT=None, dP=None, dRH=None, dCO2=None): - ''' - Calculates the uncertainty in the refractive index, following the Ciddor model, - by using fully propagated error analysis. - This involves almost endless use of the chain rule and evaluation of both the moist - air and dry air components. Note: dry air does not contain any water, i.e. H=0, x_w=0, etc. - - Parameters: - l - Wavelength in micron (0.4 - 2.5 micron) - T - Temperature in Kelvin - p - Pressure in Pascals - RH - Relative humidity (no units, don't use percentage but value 0JAw@CuYG zr+$GGo3vFCYk9`IvpcqY(eLjwip%%Ur!V5~CfPDeG>m0uv9E#u6NATeJm?2M(T{%>1qr z!b0Yy0gR8f+N<`pS_M=_~V zqj3gGocr8jIRmG&Ve2@&(*9beLk9*Vf{?q0ym>MSrOf7Xs*CAgu^kpkq6_VlXMUgyG)XNlg)Wf1IN}?%Bvd^;5%bVr$tmEBj z_sApJ**w*xcH`Kw9k?kFRCNDn6%=lhw&>#zS$2^GY2czYin?WiCQVS-N|45h+ayTq zw!d#?Z+Se*Zi=EPiJ6_}H#6VkH#6Vdv4)12g1^uG+Ut+M-LEL$rA+0|k3mYs5Fqn%EkABWx{e#y85= zu@-z|Ok*3^Mo_3@_p(;D38{LvnYE#=fo)@3*jAJ@vUW^y`%>Nc3EQw{^-{r_fBVT==*_beqen9#6w@DleF(=9>}`m+%9XUjeTY@= zN9^MP#C{$`9AFBDQqRSMOFlM^Fp4m|6kx~C_ac>xhn51ik(;z4pkzfUB0*Sn6xAcT zsaTEp{QTMOi!#wWkc$ zJye=5*u^Qs%4W2)1!m;5Q`yppKA~Ag&d_b6TVHN4E$S_!sAsO~W;SnDSBlQvnJi-k zOQgGs^GlI*I-Ady(&=@Wo-MRT4Y~gdEmfTDsx-_H+vqQhK=KzXOd`QluC^(TkNF%w z^E&|+aDpu8guqBY_p#7ArB!KDcnB=@avK#EZbQ$F#Nf!n@5Z9h=mQ07dM2l9r769n zW%OJInUaC5fi+KBdZv_}HMDG=8FSiX!P4xKo@ctnv?@*zolGImvZZVxZ+B|hE~86J z^lQgEwM0*%v#+;b8`V3to*mlQaHqDfzeg(;r!|PPi+Y|eVWiTGmAAEgT1WSMp``7m zq_$T}#I+7BVH~^{E$^sUw|W1!&Oh_g?dfDTt3RxmGcU9TF1<36%>Lk6pK^z|Wg;lo z-+F0CC_y}IH6XvF=9YYEd&!@^+Cx!-qF##nL^ByRQOf|0ycsE*bV&(C)PVcHu%=o> z)GR}GPJaOePdsGvT)6=)UsN4G_cOH>OlLj_!r!X2C>s%6Ap{ow@c%~$6Eh{PoGndh za~UCw!sG|YW3Eadb5bIhv9%U!G~f8Rb~W_<#lh_BkW5^)HlZ*c5Dd3S#g}|@nN%=M zoT}w=5QTI0ZZxuqcSo%YnbN6nw?zVhtrwv{x0 z{)6w|KD0fUG}nJ^!zbEbyz#1e<(&ruU;1eAsMQRn-62-rAvCTrlE|{mEW&aaMrIOG znT(}O#!@C@Dc{Xl%62b$*o3&%#u89#&856-E`(+@7lCG-NI)ns5+IomNahEU1q6}> zxk}~&0s2``3Ju5=TDU@-I+>r+^BIF6T$=<=0h}O|GSJJ?X7yrW#sX}Skf?Eq(hQrb zVc1&6$l2K$o63t+J_<|LbK34vJ&rPSlKz^nCC#T___r-j`@rBU=f5!g`M-Z+(ER;{ z?*$+G^Opw&J68fsaY@Byl`f@xX&qq#AycdM>f{g>E0Ny=mW76Dy`S`Sp5)}|{C;GZ zx)Sb7$_*8Js47_lt(VLSfMH-<8yL4p=Zet6Zd&OD9T=+WbR zo%g=|wYUED&Y=0k^^bq^sTW^()%>e3PYk^G(`3>lW$XC*AKw;BkNcK<`Qnn_m@CFZ zQh9b@hFJd)!ZC#72q$XS@3&`*=R6JsJYa3A<^bAwJRq1MJ_tqmJtS&*KwBQ!JPSJ! z7IC61>cm*gsly2)hEPYF;6}x%=k=^^9i2Gpg+lpJ)&P_cr7grSSsp@pBM*D!5w|>w z@+RI`rwE=m5-nEG8_=_<1sm-mwp3>gtD_uW15Bw$J!--I#)XT-{p0S=O6-T0VvX9Q zRhZUJ4~<^FKqx|+aHlqbGX~SphPj6mDKH?%xziWMwNjyw!x=`1>Zc!j-sm5AK52gU zz%O6?-lmmwVsm=9e~O5JV;vjs|g?0VNw+-DI~ z3q0jJlR)T2=tJ0t(2uYm;Q+!xghMI+nM6;@m%eOufQGe)BC>fDJzT3G z0WhZb5mee5BE{2?il)$ajoPBN;$N#l80wl4n+bZ7(s&576B)T7bKfEm25A@$Hs>In zmPq^vFc^qSUFaimoh{^afV(*UNQu?rio|-L3kd`K*@ZEzE<_c3xQ_~?QH%{^t&^!h z8dI!Yv2U(iKuen@tOV*+?1PQf)-YFIQZfVs^mjLN2m&)hz|1f(GXisn!W?2ShdP); zJiDPs zbkJlUdFAD6A4%Ubzx}2^{ATJOj+mRj7(DQ|KYVM@Z2R%_k8TAo-7??!YNq>UOUF_3 zy~c}wdG(+F?3VdQpZv_v-rxEMM@-}0#5WeFleaufxB9?Fae9$BrdqUnRaDxOnU$bs zRE2F%r(IB|T~Mc8aDuWEl+92olK|2&1j8adLkUEtrfTGD4We!i!QP7KZi*dIBkCGo zKxOL64I$-Sqv(P|Y9heULV^yJ42K;Ss2nSy2|;K=$cgYE3q#ubR!BPvX+uM}@+58# z07E~IvdA+5hoCY98;J1;VqXhDlSNS%1r&zbAX$>GfV0@bM}_<<7X^7TVn*JsITX z37CXSK!?lVBF+WqNveW_l@K@T$!*}3)Io{-P?t{uNb2+LqJLFys0tKE^sT2lay76p zQD>1w0H<5mK)`?;DG>kwsVKpP(^v}J08HV`E}#WBp+?%5#pxuv@Bm4;vOnT69Bc1y}j zVNp`HQ{nVTsZi2$HJGu4OH!#gwFugFDi2nMQz2 z6SkQ(*k;yZn`y?WYaOd|T3Efao;5fdSfjI%H94(pjkAfZbvCnRr;V+1+F6UUg{^nC zvJK8XY@?&GR_9)}$=L?|+>C8%J8N_9W9`lkw#C`WwmQ48J?(aNIZ)AMCoXi`%{!Ry zjUbOhOLt*Q+k;$)cZjXN6LSyC8g|b!erK=9qmJ+9olJu*biwJhjctbp-{*m7Hz)|& zP7m5gYDdRRx1#+H^iEJc+sSr$CB3ku-B*3jsa6rQ?-RBZsh%yyCR?K3eWG`qb+9;% z$U0nGqB;WZC}5e8pdV>KG>~9F?`L~}1f8&Fnc5?e-~iw6mCKYYKgbij7j}367TL%5 zA$3q#(PBN(LW>Qu zmAt`Wtm8Zm?sTKYCX9(T)L(4UcN_Ht={w}r&bP~Uyp3-cbT@&YE z3vV8%5i=wD&I5cGC#{P^3a8L&C(@XaGYpFe(b$WydAI&F?Cn8FrE7&$I#)^M3=m}m zwEnj;>F{LIRU?ztW1b~E`UPatStAozs62vWjUB6GB3o-fGOv}8i5RO&CM)WB7i4nI zl}SgHOh64|c=}Nz6ET*M$$8f4jINS}z+2t}IXwg_q^nhOkaj^<4cU$HA$|RittZgrGXN5Mcw(*C7lqA{Bo|Soa2kY7*`T612242Q72NxB1 zjTK==kMJE%YFXoFTIQmVizFG`JbgyvJ zGdxyF<9syBXW?Wxpzrc4%3ZD%Gw>H%B^}SJ^K_xCzG+k*xjJ#Z$mI%UyyuDfFB%$gUk z5E-~r3VC|V?9$E^O2%QYh7~X_J*eSTf)FLzw(q;M>r3~GqXoOMk z(ten-IW4+ZyR6UR6*O;RHXt;e%~-ge?e6K?hj+T(u70&NX5bZ)9v-J=rn7igoX3M;L7Tzjsoe?RXnt2oa1Z1&Sha2% z8a-$c*9@&^U~V8GW&yVWXyKg^o`30}z`UgwA z&Q(09>ekzXPUp=3$ve`AJ-_}UuLrBWGyiwKz7Ko95iSCMjf-Hl&w$)S|DD5WbuaP; ztn@SpPdZAKl`e;6pM`n&GdIN# zk1z1Uld)m>;|p?aTK7<-QFJdw+bCL3(FTe(Qbf*-n#TZZFO?-J8lq?)Mfg>XV$sW& zb%3IS6dj`IFh%!MG(ZvgUEyre$>TCHfha@I&SS&y#)wZDPMM-`%@ot+R45I&Lr#9F zE+y(x>9Tc{CB}aG=p-6|s3;JG>MPwvTX(!Nh?nJfl*D-MC}ni_Mkz0kQg%lvV-!i=?dOs& z(}={4(hx<*h~7v-PP{5zmg^oT!g5h5;#&%HAgN*YMQZKNUa!;<;o^|&J4%JbreT^= zO0@M@Ff1#}Rh7##A9hL0#k(^ovlNI=(X6MAN$KF>#^d=}J%trkRx)Q(&h_Xq)L{mw z8u&x)#o-+MsA3xoKt{#MemM!K$L8O5PywGsdIczA2Z(_0J=Z_R4V z7xJ~M?I?};=rOKU-RvJg%_W3mYD@S&jDJk+QlC=?(54>!0)hKLxl$Go^fcc9>hbd7 zYYlX%4E0;_V|fUY`T0SYNy&7Y{kd{v~Tr`6zZEnA>u#gTWGF+G?VOz z2dw~jVF?JOhZC719K~w@Jp@%g!E^K%Z(71HwDNeYNT-)#=`_xKIFKP-pH5$!(Q~rK zA`ia+$|`rUz*hmcJyh$xE=agNMP(xtHLi@v{cjQ0HzNoiZ$yoSBaM+*q$$!6sf%og zL}MFb>mpl3t9URK%+E|0=Y>-`6|^&1r0GXbqWW&smm&jl8H3bJ{MII-);IkZ;0gd6 literal 0 HcmV?d00001 diff --git a/atmosphericModel/__pycache__/dispersionModels.cpython-37.pyc b/atmosphericModel/__pycache__/dispersionModels.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7df2807617c1fd2c0ad6b653347cc25e344eea3a GIT binary patch literal 14354 zcmb_jYj7OLalXCVd*JXO34$W{5V;a5l90dyaD0j)LGUF(5(PpaNXaKsr^U@;am2m2 zyT=30vwB-EOO`CjmgI_K(oQOoTVvddM8%ZXE$D%)|YY|}2sa#XQp z=lS)_-rnH=Dvl$NJ3Bkm(=*fE)7>*Ycet}N9>Cw+XTEapw~hq@|4bkCKNXn~JoZi` zEWngpAf@0P%mwqIR7eT15L0t%KAZ|Gfm;GB%p#8lSi}fF5=upwax%~ty^NNDu|B2N zmMu7jY3Yt}SwRs>+D}Z`hIK)Aiq?FF!0LZ($c*5zA4Fn^E>l6Ku;8PCREWC7Ta}%q z!t5FrV{MNr=j8##wu)VacL!U| zdhzaLYuH-6yVw@Ck!gTj#-f@op?UG^H*3MQp=K zTbWwW%JhY5s%_+^tr$S9D3VtLRtH|cesSOwh-VL+D;8~M;HXtBO%>+`?lP>|f$^E6 z14oOQa^5I7_P}^~Dwnlq3^s7c$rtU?jA3On+8sq^4PQ%;rkbc%VTP@ogtc^Hu~yTZzY}@dlK*62ZUf$_8knKHCL^Bti&6b|V9l z1wg#uB_boF4J1>>`hvAEk!7@|jP`}BcEHt?@mk25DGGYXq?3x518%}#<&42bjjTE2 ztU;+AL=sS{>zanr3YVc_&>zi$CLo4%1{uLy1!)jZh=(pIm%!0WR3g551FkAysQ$_@ zVbrQz741|WzNGYu$yLYVZEbB6#QD&G)OJ^cu8HNq<6GRLah5((c zMXCm*5E7W47@{QEO4iO&PA?eax~1oGM(%1*#U?rh)XmCfrP|v>*9CxMnJ_`&k0?qj zTTu0{km0Ho=c*enM0ns_zzsXfMX_qmg?a+Wt9Zh7S_2})!>a@9i0TA~@ArZMMZX1s=g}3zvz@6a55FXX%c8pVPa9v<=Eeowgi(Z%>9)ni(;aHH$7h+;6 zm8}lAaUQuCMqPx*Y3(Y3^Be98@CXa9p;TD|d{8r31H{Xddfw1w9mKIUXT~U6 zM!sL0Dmz-Xkja%9@l4ldpk53MfMBiW7*?K^U)#;aa)AL(J5sc!bc<;QmT)f7uO$bE zZX^gR1oB-bjdWS$XoXn9D0-|H3@85ALXKV#T*q=Qm5c(D+;3ls`_=}+L$Xtgq^;vw z+o=W91w1;QDLfOc0-yr>uH9&0lbi*@lKZOCrNp4Sb4rg=UDhN81iiEfyo}bZ%UOtk z<%_`d`!51lWUIP>t>NnL6I+htNZK>7cD|yWE?W6=PS+~Xe40}!YM9}+YM)@GozNy{ zvbM&GhOHHfV4-cpq-uI$UL$nb0=3qK!q%sXkPL{4W;<3n6OL-{xx(N9;o0x7` zR?*U?%LQT2g;Ho`xRwE)DPy4_cSzuj^JOVjQ}f!^S;Huit|=B^^a-^y1M96#XD!>I zp_0;prkd8WjtvQ&&zGE{10gr&N_v4D)~zj)C4?$24MRiCsP=iwX_%N=sAOkrp-j=X z-hUyBW+Zv<^`$JbQ16^3DO+HDWP`~JnH>5fTS$W^?P*srC9c|W;Y7f#vUWPkIk8=! zt->>*GjTWOwuygnx83cK`9h3G-3}gcW6)EbFzv#Tb3@N5bL;E!`J8gL%k3gJgLhm~ z+zye8As6E+%u`sHmSrr$yI7<*z&luU4IC8SAL}&+Nh5QrWLWJi8(Q+?TNr63SoalIf@5;uMjW_VB*;JNEoFBrdz-S z0n_fo1Y2NMvJSq2chjoE3`CCHE4~t|rH6N3i~~nIo(|qaCQ}&A(=eKyG)trr&uDh) zL0B@9#Z$tQVY;J3O5wJe@K9kqjXd^FI_boItz;R{qR@^yEF?1^q0T&+S~$AiVj)?U z&P%^gvn2CoPG`1LEEwCFo-=5>A{Pi2OSW*KI14}6DPlq8GEn9Ytr0^j=}_swrE59b z189~m)wZ51VmT2+vt|~W9_ZlP7ArPnVv|&L# zG~t9ZH;?_9So;%3rkIENU>IoGHav5KA)Gp?orK9@~g7;%c2MxW5#hx`vwLol}e(-bUT5b<<>1RE$dhncxRL&)IAtqD+$1n;B4^D1o&B^EMc=qs2QtSMQXEU4*Rq0n%2e;wbCEwBSp zl!nPu5u3qCpgPoK$r@h4t@4~Am)M^xVvhDOGWFK)*HEn;7=}fsD&AE8BAAOdi+GA$IJhXzrIen@1WjlaflsBB{(a+(Wq|g7S@#9 zppZVs*+tQ;g)O~c8ps=khUvf-w4Co-)#9_(g4MxPaAGjE3Sw1X28~saic2+c6#66; z#Xg@haAId_N;(xzPeQGvBI$8bDEK@IUDD*{kaLq#(}na5>KKGUzAWr)Sv3_;dpw3a zEkq||?Lq@<4<&mk5eEs~i)F$_rQMGt5QoiDRAoz0Rn(BG#6#WinBz)Es5hjAD7TsZ zh1M%;mFm^+DQ6jRGy#+<9uof}c@#a2I1CU)MVC?`{6ay5*#4ZJ zpJMv(?*aN9Jb|j#G#&T}&Fe&h3e3`d4O=w3nhKwWc|E~#wvM5&Pn9PS${e^ljWvq{ z!j|5x?ST6X9(mM&UCDB#+O@EIf6hcYS{{OYMdBVeRDRpeW8ep8k+RjA0 zci6oC^Zf1P+Yb(#p|AeVcaC(%hD|MfIQ;mtn?|G=)IhV#wCt@x$`J$2`<<^x-ul5? z!{+=uXQqEpNe-J`cb0#dIF&sBX0|X}95D$#dmBp99M%d-#*sjIX6S4%lcZz^B|DLr zgS9p!X<;oP7G|p`bfN7R@z`{_8&EqS3iW^ENxeAq64u z2*>L}GE_)J7!rZQ97qNHc@`C%#6gqbB#v8Io$FE#sKnzsmvTTQ?Ve=B{8k;lWW-7P zLOq0hes{u(VA1{d{KoDtYZtMStvu;d2X0uIwv=M6uDv(p{NPUpZ!*=5?T;qk{NsJU zr7&1`f@VS(tO?|xahKqDpJaATnM{S!vvf|B7woo9QsYTVPEm52lDjCmn-XCn8g?Q+ zny%01O;pR{0~{x+!3F#dR#!D~yU|8iiywaC75aPY;AJ|F`r!wAUc2R=sxKbQkOa~n zIYp#Sgoghb#ELIt%52bD4p9iW%W#go3?Tz-w?yd{lq&9Wl%gJigrK_uqS6gfSqV|; zfvBv4s9eQj?rPTN_OiIUhPAtES%X;OLY!OnWBe?h@aq;|ac#UGt3U?nVr46Wffl z+Uw}#bu}J$PrWa9FW_k&3wp=AHvoPMTHi?ZY%AO5m+ZsoYTs<|ImP+{XmL|vy};1a zUeZLgzDcycp54H%ryki2bmZe<-j9+lEW#*eaRB*c2oEXluqX|Q(u1NDn`?K3A7K3} z18h4~x6Jhmx*g)fe!0xa^27W_z7IVe0-bN-`;j{=HtYi6;+M;uEI;Pq zIqKs%Ch*)0PA+HLSwBBQ-)uWS(hELfq__ArH+wZVdo`nc1xvtB8KCVr>j%al8ze7; z_pl-Hm837sa24AjzIV!R@atAN3sF9dI)AP-YRJ!REP>JN0%dpCd5p2GCM-Sh4*6B+ z3y|m+6qIdHzed*c-o>?q#l2n5Ui5kZus-FzUXQm@ppLmt4^XDxr$-B=$jG{P@IhJ6 z2dOQ;g;J7#k`s4~kMTRu?{R)R(%bm0L{W_E#3D+D7Em(87E&_A8k8JwqT~p$`rP*B zbmtW*8S*F@l4D#%Nz{Xqi)sZWCz>dE5OBWidA*(#lx&h1S2c8XlkBriYvERib?E&|0 z$je#@$Jeb6@T;LCgzVu^H+pdeUn{=>v5s&7V!ebS&srSUet-`_688XNBl-l49N`su zO_5H++PIeYNjQED?-O`6;N47lz6m+36r|VjEne*o2~BbW4A)@P*CHodZuX$JV3tD8 z2#VH&?91zCE8n)Tp6^1m=^j9BBb*)-jg406P-85B@W+7~F*2dc&+zShFTp~l&jO0p zK1Sr;3;otXeZxv@_v+KosrP{^yBBa}=OV7?ut8J6_5bBb(&x$U7M?8bGeb7#H{i+6 z7M|>EP#YLpc_N{=z*;TjiRi0|CkyKNZt#S8JV`e31lZ7rFCQ&D5q$}s7;L*cy@(gW zrt-bulL;&&t4(~6>w?xjcsIlE;&-F|19(#W9)507K5O0Z%i37Wqu{dJ1fxJlCgy;mn_Pgc*L~%U7bcdx7tT z)~qx%i?H~lL8R6o>iKkPkOL5m7z0D6e`9G~Yl<-lo48If<2{VUeH4`2;cf$M(mi1!Ei4Kzc)?M&m_ zeULwJB|7s5-$SM!g0_Z56SCiA<=ls1jo}$WqV{=`^ax7e<298$${%(=B(1jl7~8>@ z@_!!ZkGW5vZYhiYBu}F6oucn19pXL({{y}#dfM;x{b7{At86NHnm^?}!}hoz0r$Jf zD;B=SE@+)+MF~7&zvMYS%O3_EKY}OEpOQK7;}QNLKmTF=jGupuKaTvfL}&M-JmaHmi`~#NR&Zf7&|6{lV1{6(oA|ad=wDy!nyEue$!S$d%r|2 z`3bshLKyjJ3Q1EAlq=GKfS13(+x`4Q6a@6jU*Mg7{w4mgdLDCq8JK(c%i=tCul{|U z+$?dXfVh}pIXX@VMZAg5{`>3&3JD11eyNd$F7UhdJvRX%api13iSZ8TlZ zA)H*or9s^ku_PI=))CO2x3e;6B|~BeujMF;r{{2Y(9saX%HhCWM6v3poHH1kW|a|` zqq9llf}Zo@*8rHp35OU=zKAmpnw_4tWbhAHpD0g38ASGQQ!$~96&+)r#=IK;;zg!d zp!uWOyjH<*t$r<=FcRA6fx&)lE?uFQ;banV!Ves{#W8E(c%}JF6~QZ_3Fb+W`TERp z-a==wRAVF5V_fl|4p)5qXr#O-Cu97eImPPo^9V}XW(+xYx?G3I9KweCXew2$ZM&8d*YYrT6Ads{+~cF`dsLqr zB7noWvH{Li^b5GfSujCwK;^R;3v=5xnAoXp*OG}{UP+&5m!x*MB8l+d|Eb|5wWGj` z7tf`hZZ~olvIRn0qFND;p(Afpjq5~IG1Q4s*(DuoUjUiQ`7CZw%xl{UMXii`hju^i z*%Y=qLa=~71A)*@LtMBbfikqg{d4<=#PH`bgzLzOq#r;=U!_u>#=t<6?b@luOJ<62 zG-xDYlS{+m4qYp#nE4WD7X-JNF|9)e_GyEOq;|XLVw{G$M7w$%9Mi5hN)Ccxq7jI- zWFr~(ZX#b(>%qieQZxo#mTcTaucl_nL23l9pvQYol;oY3v)b_`qYvVuc8d(o&;*-W z${V*r1nbA$GISvtqq8w{>rm`->r-zZG=H(}%(Gvytr7FrKmExYH*N}#n5({e)x+yw zy!d7F%#UtUKl?!Gpn21GPdxL|8~KrJR=+!7mS5;qPrr72B>U56g8}nL?|kp8-~PAD z!{&XDKJ@h`Uwq-q=HGsPYX3XG92qgGi|haTOK+IpeeweXk6F(jG+%vu#))3iM$Er> zDfi~&<9|MEvio2A^!fYKubbcdW+?j2)OQY;Yd;y@^AA7!_OQ9`U-LhIJ$(9g^BZqw z243yC{-F6z*Qvjm{g=Od-TdMsPrv)08~*HoX}mr3)}{Q&>*h55b)O$GpL*fnuYM|s ziJdv|%IL@b@xEd6Ppdx;pZ(gWhsEipjIe}iO36y$5VIDX7{!6?eaMP$OBaQ674tt{ z{rNZVm>NH5ZvVn3fA$Bz*gs;v_W5nc?isv1oP7>~y`>suvfucy5|Bd)f}%hr{<6Ce z6_dpimW=p_P=UGc>A~-RWd7K&btB;9bu)2Rd@X&7=mEt6%x^rT%|?E5X*l~8bZq|N ztN-=x)nC7L7@=Gd93l`I9-wHC3>VX3zr0-}j+#YCfo`iI27IApO;Jvnt|_TnxRBQ8 z?3!9gS8R(ysv;;z-?}ZsPODMa_lg%Jtk!}#+*HmbC9&?K21GF{g9N_{$PH1FtOeO5 z9^4FP6QebiLG1BaZH$+q7Sl*7gOpG>qe9_~3WYOfsce?YW~pp;hc!k$oIrw8@gsPS zqWF%AxI2fOPVhRx>jXbVpHm`2GAItu(SYGG@HhmdQ~eZ@Or{o2PmJPXrg&9Su`~kQ zX{;37+|+ZW8J$9FsHU`nGFUl$$#(^%DN&a~9mYdgN@@E7>IsXEpA?8Us4GhElCaEnbB9H~}0_rgizMq)+!s4%u=|!0@mxV0^}9hA7#;> z*GmQX{az}KUMgNM74#y}d+j{*73z@)?i`}zFyT8sBnO_Nd{X9{$}3If6|e_{oum%s zWK-ZbOJQupOw6i8ExlRk^*ZXXbV#-xr$Qp%C=E3wV13ez%F0SpWn)I89%@MxZv+*V z0`eJ}&CFrRZY)NRN;-qUV&?T3&e=hkW?y|9+mX0rk1B0j`=b2Ia}jp9p06CQTg|1ZTCaP2G+%tSTKT%4oE}wD5*-9 zOz2_)`c6T#z3zp^*ni;;DsB!6^yl!lItnCfsz4Aj#5IGS1e%}g;As*5?SA(q!BvxkzZC+mFAD2f&g1u1WMlEes7w}lanYtdlVz-E diC<)i-q zK4J;uoA86Vqww(;%E8M}Kf{7AT>^(EVDiH`7u56=@_ z(G~$bUxd3>Z{Z2U&3dc}w+~9G?#ET39$*XzL|RUyDzR$(-COHh8|#CO zgkvWSI zS6Pp&+SmSFrY+62tsU)(&SST3>o!i^-BK=|GrU8CtF`pkub4GN#EkR=@AQP+X5spc z!C-rTeQVAV72jg26xoW`GbN#({;cT|~N%ojR;+?P>oJ zuOl6O@8DW^%$Wt>)q!TmoN#|SII4w%D|(G*gvGF6^jGvHC@P;}py$j2gvNzv%b=vF zSdFblg`)B`i>0gvQcM#mHf1^-RgIU#Wtrw_uQQ{KJycz~leygjd5dI-HuW5tOJtrW zbD7LbFn9pIV?u9cmMFIPciD^lO+?EpF#jpI4Z-b8cEBR0UPo@?&<+eb%Ut#!u+a8g zb_cS%ki7-jJ(3)=4cYCv><(miA^R*NL`GD%jqHIAjO_UKbxV6j_Rz!_^@DjVLX2bW zmfZkX!Fgl<822x)!aNlMHpk!%WN-DDX~zHfYd2w%3Q;K2c4pmk@vPGn xxrvsi=${|rG;E4Mt;K+*=rI@0Z*Vpw`|phlG0o)r)SOHD`XbO7dBJPJ%3sCYo3#J{ literal 0 HcmV?d00001 diff --git a/atmosphericModel/__pycache__/refractionModels.cpython-37.pyc b/atmosphericModel/__pycache__/refractionModels.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..748d73113a6b3a7078e2889034bbb209fcb7bdd1 GIT binary patch literal 7117 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 ZknC`)8MFLpwZBE`D5I#nUe?Rg{{(REtv~<( literal 0 HcmV?d00001 diff --git a/atmosphericModel/__pycache__/refractivityModels.cpython-37.pyc b/atmosphericModel/__pycache__/refractivityModels.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..84b446e21fd99247e773ccbd277011eb1b06c6ec GIT binary patch literal 11298 zcmdsd2UrwW*Z(%yWkE$n>^jB@R)uppu+cCcYd7S3{5S$5ai1%WKFVN28)jWL!e zSfWN_Z%7eii5iX3M2%~rQDY&--Vzh_J9k!;81p{)|KGgd^FH6gnYriInS09p-E*f) zjT%Z3{Z=piY-D=4NOX}gRX;f;qKRzTbO8~FO`>Ema3BM>0&%hg+(BL-N|u5GJm@Y1 zC3w=^4O)N~)Sw#f@EX(tZ%WCbHq@aq1=Ix}x_dxNXaEhVLnn>>`JFqBvh{7ds>% zZY-j-3?v|Rh(K0X)L2ws1a6deccmRNkh7PtT z#%Z|@At9XAn(0qflhTbg&QR44rS(>;$(X87F&Vft>c*aK;5c4yMuUw@(uRfvb_j{( z^k(3!+K8}_z|PcDW@bDFDXFg>W^0yR#Zk({1#*M+*#?urjP`WSXy!7Fsl3H(Vo zk|EP-;Pv(_-oOeI45nd&5IfPp$T+fm78r6kOWL1iM{gJ26ph&iGnZ;HQ>Qcn zJ#HnCT3`p^_pJ_xyFVOx>TSKQQo^$LR_u@PI&vqfk||Ur2~313-a{g{9Jr;!uz?}% zR@a@S!x`7N7Czj+Aqw}0uTEe4I8%pbN54Ju$2;qFIBv=4^U?9$bVw~l;|hXe{3T9l zLRhR*k=`#RjLoaR+$lCW#Ys-F)hUj5iu*am1Ds;>Y7t+Xnmqa-c%aR|+k!_~EH-;^ zSKeYxvE&2~Ht-q2{nEPzceSKuWg5(OTX4Uu6qC`GZh+wG)7#qu1{2raXz!&@;Yh;_ zdYd7*n&M;%<-EbFPtDMy(Tvp#g~q{r)#Q>CgdAItHP>0|na0MLLD1M5^sqL;Q+O-H zUSc5P>r!4Sn=|%f6X-@HSYl^NfY?E{lP?ymPt2^Z0rB7l?vCdiS&M}1R8IL~N=qG5 zvK&R;WsucTGTE!io3ofrxj`JWpG*tsW}3;6 zV@xrcn2KfD4AiV|3Qc&n-frP@gUqknt?7P(%KaVHr`G?ZX7bE?8IAfOB2=I2J7Zo& zW;D;H(0Kh_i3qdiG>{Ei*DG33t%6hYVg!Zpm+?#rPO*)zMR(qtU6>}hE_GO$yKCB7 zQrf1Vi>QV|%rSx0qx7o zUnvFNhgJMbId}*&!RDb8)q5_AR!kHPDCd7s6yep)hpgwnSQJ|2sb$^?7173-+ggb# zC$Je7j3Pg(%8lD%Uu_hBQyk&p-Tx$xMob)4pn}=V%b?;pm>^&w01S`_?#&IP3=Yxq zPmqE+IIS|9PyyGZhfrGX6mg`Gze26>2D;ipi6su{-~3t;+3{uL2A8 zPk;F^@uF`u-Y<5({n)V51s0e`_m}VY4Y$lFV-pugeF%`_&y@-xzz=gQ4ikLSw$J~51SRml18Dz*#hGUXN&RRT&< za8IVX3_ml4bx0U;W(v%d8)~^wwvUMA3m97h-c?4BuW%>?MfY%ckfPVt*Q}=KT?ojf zrW1JXXR&9QY#BxY5p*V%s#;xaTzCLS2%6>5|KC~6|4n^lI6RQ+r|0d)R1-mKLc;`+ z$&v`n6FjA2W)}Y>To9HZhA~|VI_X;f9U~X+iZ(X?sHLcyf-a`D+y!^5`$_zA>hZHb zc%Ii`U~H3X7s6FKTrhwB{L0-AqER(H>zkZ0-PN=zf|&a24SbdHd-%qEmWu@2)Hl7 zP1=jR3f25QxA+e$iAy(r?!Tj199u)B+gnxFjko^YHB{M!O_(rS)0pt8;H7|Rn*S$7 zR$3*peumTxas>kn24IU+Xk-Li@2Z5ubzsx}-zk*`e#76L;2?_~d8V}plP<1UxOeIs zF32wc(4RezMPu!A(}o6r^8bf$lx%KX6SMG7(%~ql^6Jy4Pp{DSHoJUDp6*IX*{Rd# z9A~ttf*7fstsiW~5jJttDFL*7Gl??A`3kYfE-93Pv`C!qL0dK%xqS(W@|AX(gMut} zw+sp2(IG-{z9=WaA?hj`(JJ55p)7QFC<^5c4+rfh91@4r;puR5xI5%U9z|lYXtZju z$gW`Rfwj+bC_&tiwutpbiEK0vhq8!D7zZq*BG+fprk%u_*ej-2k1lLKXA?I4Hhrey z4*>z!wpVZClH+>E451b&v@ZtQ8w%COSojPZbJFpabb~pA_S!5iV>G9lSeS){MiLE1 z+E-`l&E_C#oRn_JkPCr6TFhchcB4HD3~XxHn_7gOGOcTV&-U3`3KcO=Xd;If z$n~Pg)xWMD7}k+hx0`sXZm$+GGU=^00|liBqrT`nC?q7j6RU5q+Niz@ZnEW+MjMlE zBtOj_DphYvrTG?uW(=FASa>^$_IWp{l9voMFh*y(OF=}pEI%sDoAR@&5V z(JugFAAe=C!kX(U=UY*Ar^IY^%E5qPydIn~d#=^sbW1Z?^meB^#pn!XNcN!WuQO$` zIHj~{cFOfO3KZ&d{k>jVX9Y0m6sJ=)y**h*#T8zH|}!c!`y?yvhh1x>JhzZ7+#X=Q%=T_2fi?6PQh)mm;6y43W*7?ve}{-^?xo zX(2^-ifAJwW~H(WF@KUpc3ja^P@+3UT|HUUl;J+`CfVYru?ogjafLZJp znh-CCrY!DD(d8EK8u1E>5VwNX&<5IqAMqaG5AC2m1VA7J5wC<`2!T)tgAUMpoJ*VK{W9-ASS;ibjhy;vH9N6HNUp-+_G6>egUQ8GQ=ze-JmF!Nj}65Eu%{Fbsyn2;${15?+TlKo2R9 zO1uI943Gv0>0l(@14cmxm>?6(U?E-!Ru~OD*uV~1#Ct+EjDZ};g*ugv$Yx3Sk@OA|=^ZEq1uzLF!xWeb)2NLM-iCKzI?RBX@GkLgFbm#; z*)Rv*hq=VN!v`=AK7{$O02UH2hehxaEQTde2t~vzU@0tv<*))ihLyy7z$#b`pTHVe z3!f6NgmthUHo!*M1e=NXge|ZYw!wDT0ma07!A>ZFQYeFR*hPE|sK~GLk{l+|J4pH0 z=pA;`J5UNfgFUbp_Q8JmoZ86X033uv@C6)(BgDJGmv9umf@5$Tz9!xszJU{P5>COl zaGH2IIN=O@2j9b4I7hq!et`3E0WQLiaEW*ixC~d|DpbNxaE*8+{0!IO2Hb>OaGQ8f zxC3|L9^8iq@Q`>f_yvB2NAMf`4v&ei0Z;z)4!h|cWPB1loh1el5$O|1h@?a^YD1a^ zZba@xav}wh2NAOsmhVaAMO1^RCQ&USW;d*UZK66vb%}h4>Jc#;V*S)7YCzPGs1Z?P zB4$sl|E5IEh?)~|L@kJzZLx7%615^~P1J^{EfKRbCEfjr+7Y!U3Lpw3Vm8N~F_){RO{dCFYCPMy@t^Hvu7fhR5fZ{M@>3y zs>hx@LX___OE!AkV3EToQRLT!)+7A}*B1Ht=?IH)yO2*xF4tR6(H~m6!$LwL`~$db zTDE|#mUM;^8q~4cX-+I15eVpp7FvQn)PXV0NGmEWN}0k@P`cf2wW)%G(P&T4N(oA} zWCmL;rd++5HsZN2jt>mN(M*uhoMs8MrSe8A9a^NAEGfa6dYj$A2Uq2}9;|g(2zxTR z1ro&=dAf!MbqEX#>Xem92M{kdPye@0qg;{Z!}oNRECQStKhQ>pG6Jx9Ca`DFm7Qi0 zyr~vR^D}ARR0VZN%lBt7IkUx1D3oMDr$e;Hw0L&F=QID82ZlUM2 z=(*mZ(>1?aig8!Bc-gw62EV(!yYkxRH6=JH`YT2EeWz6T==!ya$d>DLxI(>;zrGd9 z(f8o8uYO4XR*QX3A9ilK7hHxb!Z!_B*vY0rt7L48wrpkzX1-tWy66~QA6VYhl;O%-qq-0MC|!fGz8@X84Cq#la%r7@ z)9U7Ev30$+jSd_=TZ;097av^zx}yd^-rYUt)9X1UICHk_*OEaiRLF7OgU#(hi=*fJ zY3Dk!H0b`#t>(s?&JvtGIcmsUU6>jV`OWQF<8;co{;^>{If|#HD78OO}kqxTf)I)yUfjPskT={rtoz5t2`{CF& zjg&f^wsKPsrAbqcd;J1N+)P-i#h)S`=arrQr4-$M@%k$Jd#wfwwOzzJ*BVPOGxTb! zI;}s6!Z*HkyR_l*FfE?2D)OECCu?x*p4(#&*7{hDT>HgE;w4vi;_|z9=l;CiSB3Sa zzT5WE-cL*M%N3VyuJ(FgjmXmKDPgG&S;ud$kQs))p@576vlJk2y zk#%L5y)7$aU#$Q^AMU^ZjD1?LNH>@3vKR(iZJ*6`#kfhP_Hz(Y`sKxqI zjz*NM>QArn&bhKi=MI(PL-(33jGt>uvE82S5vNyeP~)8j!EHBjq(JBReUlfq$u7sv zKQ$P6^uYx!ZrC2!_v*=(TKvH=@sf8UHTTLs_s-bQ6{T4CIKFm6UylkL()Qh3CFOLG z`r+g^PqsZ=SdQk^x+_gQeaf-*=k4@+tP`|2b&)(Vbnzn%X5HH{q6z%(NsWf=+C!(VAO%|Xz_dyA zbi4*-Ek${khMp?HHeW=18vS!Z31YpoO$Vm!P~p1K9b@m=JE*XI_OGVU>!d)vZ->6w zDB-LId-Pqn_4W9E8XRGsleTl${t`@_5O)3kLsbbLnZ0cNX0Np>1mDe;Ha?_4J-eQm zns7NmjiHNAjq@)!tiq<7d}r<5-*qRh9ueKO+q(D6b znupFbzOKc~m5SF_bv>-XmW@9%o_iWoiphIA6zb;}mtfBE=z(Dhe>JYstZwe?v%VCs zw4PZb=HMJPcKfC2hI<1VmS9ckkwu3!1uERQa=oT-xm1OX9@j3OG7pP!STg+{ef&&; z(i%qN#-ushXGV~=ES$Ko)varHw0KiqV|e1VLF72@Oe@}`d0LA5-s)Dce{fF?4wQe> z{{E8&8ccbx>H3yVq%CvfKAb)$VtzRe=M0rS#*((&AAjW1#0`?p+mAsKF`s)+BCdbEX9M9sT;j@EfKQ)PCB0R%XM% z65O?Z#^pQW^(u63TGOr#)0XMu&rY(hxT-<#c~=z6UmvK!gb>rTUhUhI;K~Ja*OspY zHU9QVS4)`KM~zYS-HLAeleR4C`E**r61^HXH+pjCt((VHXx+Xf^X&4Ro!F$up;MBt zE=1zq^`9npkDMKeb5<0*Yg|`bhtWOPC#*ebAeZenr@UF_G%Yq$W}W%HZiE&u4xcxs zd4u~J92C2D=q6=$DZX_}e?FOM%ZFVWS#F*qb2#4h_@?umQ-ceShKsg;Fo=B9#c2s! zhFv7v*|KiU)FG*AJb7Vm!kF>vN^!gTc=7_}b~W}5=u*6E99M$b9paa+2rN@!!-+GW zTrVH66HlyY(Y~<#u3}vC3H`biMnCf{LD6ViY^f{nK-%(X$sF^x4YWK|jy>o8MVG`f zJUxBW#-&3_HF*EaptFgw$)%W?y;q->`L!B%s57>YNGENP?n%Amb*Z!*Yo4uLulA@` zQK;y3!~gi9S!HM%H*e&xxz{xKg>lr7g0_4qW-J)9XsNVO1>TsOyJlVNBprU=|MKEd zy6fdQr@U^sxoB_{dbC-cwEb>b8AkrtEV%qYj27$dUv^^dH-pP@#^WPzUuv*Ni|ZHO z9=uH5t_){>xnTDEPIEOl>LX==HIGbh(%Xf6o&63qR*b*PHQY$Pdrj7Ck#R?b26uZT zG&bC7Lps)ev!7+^Y&AaZ93Wni_i!hEdw$^FFURMqaEPvLtI%ttEhCFo&YI+PP=nj7 z&3m66Ov{6E_jlW#tXf-wol^Ynx;;rO!Fl?7Bf7l*g$gYzZgpDNmbAsYSXF#*vYKRZ zziYvd1IcTdbjKFhmbc%DNx>V}CPy7F#zPxtHGXL55s3lvxNRRjZmh#fe>ApRJh>d} z-<_OS=6h3%N9GOLGpydwG8{W2w@#mTcWJQBhQN`tZj;{#pYovZclTFEVbJZs1^exN zw0K~KHlpK$y&7!V=0Tn+pX$`!-fcLaM_#mS+=#(Vzv{2X0kfv`pIkf77XA-1u#qM;o&XBJunCoA({MH8UDv>XXn1 zElEiRb(9}Eu+cvXzf~9f@b!}IW%%3utj!4lUA5RhK49u1uag?=HEY1|(dJR5c(Sb} z-0K8=lM}z$KQ`gLJLNcPxN_^$%z`L%zW0-Q*VUF4`1-hCi|_rkq72`dv_16Z%}6b3 z7Y+>o!aHxc=$*)1`f&=|_;Z^0_QwbkBqcH26E%hIbu}9(Z4qewx4wuu? z=Du@^sN7zT{r0?NTJ;^N@udEd!y5cPr3~BnN++$*kfT1ip*V94jM#oZ|Um{zo9dzZBKB0M)LwDr?#HTS7-<%a26 z>z$!Hg)=Zw^jOyi0HUdTqJ;wwR~U}P=qlOSrf^d0FLk#4O zSH;$nWvLX0OO~W2B}-G2k|+^RiTHS@B-QGardq8mn`I@jRJ=7=W@GhbNy3$4m6VRB ztDPMZADu`k*QqW0KF28@^-@sI>Fz@NUs0*;6S|0Md5ddG6jE>TpZ+8=iq_Ge)aU=b z)YbB@+E$gyl+s3$CgPX>+@FoBWRXHi1F^*IsYov7*|%NK59ZjEvk&QnSRp$_pcsz0 z0R`;+C3!6`z%=*^usam9Htsiew7+{{a=B0Wkmo literal 0 HcmV?d00001 diff --git a/atmosphericModel/ciddorModel.py b/atmosphericModel/ciddorModel.py new file mode 100644 index 0000000..6b25f67 --- /dev/null +++ b/atmosphericModel/ciddorModel.py @@ -0,0 +1,385 @@ +#!/usr/bin/env Python3 +import numpy as np +from scipy import integrate + +''' +@ Author: Joost van den Born +@ Contact: born@astron.nl +@ Description: This script offers a complete model of the atmospheric refraction + and dispersion. It uses the Ciddor1996 paper to calculate the + index of refraction for a wide range of conditions, with corresponding + error propagation if needed. + The actual refraction is calculated by any of the following models: + - Plane parallel atmosphere + - Cassini spherical homogeneous atmosphere + - Other methods described in Corbard et al., 2019. +''' + +class Observatory: + def __init__(self, dT=0.2, dP=20, dH=0.02, dCO2=20, dl=0.001): + self.dT = dT # in K + self.dP = dP # in Pa + self.dH = dH # relative humidity between 0 and 1 + self.dCO2 = dCO2 # in ppm + self.dl = dl # in micron + + def n_as(self, l): + ''' + Formula that calculate the refractive index for standard atmospheric + conditions, i.e. 15 C, 101,325 Pa, 0% RH, 450 ppm CO2. + It returns n_as, not (n_as - 1) * 1e8! + ''' + _s = 1 / l + _k0 = 238.0185 # um^-2 + _k1 = 5792105 # um^-2 + _k2 = 57.362 # um^-2 + _k3 = 167917 # um^-2 + return (_k1 / (_k0 - _s**2) + _k3 / (_k2 - _s**2)) / 1e8 + 1 + + + def n_axs(self, l, xc): + ''' + Formula that calculate the refractive index for standard atmospheric + conditions, i.e. 15 C, 101,325 Pa, 0% RH, but with xc ppm of CO2. + It returns n_axs, not (n_axs - 1) + ''' + _n_as = self.n_as(l) + return ( (_n_as - 1) * (1 + 0.534e-6 * (xc - 450) ) ) + 1 + + + def n_ws(self, l): + ''' + Formula that calculates the refractivity of air for standard moist conditions + as defined by B&S (1939), i.e. 20 C, 1333 Pa + Returns n_ws, not (n_ws - 1) * 1e8 + ''' + _s = 1 / l + _cf = 1.022 + _w0 = 295.235 # um^-2 + _w1 = 2.6422 # um^-2 + _w2 = -0.032380 # um^-4 + _w3 = 0.004028 # um^-6 + return (_cf * (_w0 + _w1 * _s**2 + _w2 * _s**4 + _w3 * _s**6) ) / 1e8 + 1 + + + def f(self, p, T): + ''' + Enhancement factor of water vapour in air + t in degrees celsius + p in Pascal (Pa) + ''' + _t = T - 273.15 + _a = 1.00062 + _b = 3.14e-8 # Pa^-1 + _c = 5.6e-7 # deg C^-2 + return _a + _b * p + _c * _t**2 + + + def svp(self, T): + ''' + Saturation vapour pressure in Pa. + ''' + _A = 1.2378847e-5 # K^-2 + _B = -1.9121316e-2 # K^-2 + _C = 33.93711047 + _D = -6.3431645e3 # K^-2 + return np.exp(_A*T**2 + _B*T + _C + _D/T) + + + def svp2(self, T): + ''' + Calculation of svp from IAPWS formula, based on documentation by NIST toolbox. + ''' + K1 = 1.16705214528e+03 + K2 = -7.24213167032e+05 + K3 = -1.70738469401e+01 + K4 = 1.20208247025e+04 + K5 = -3.23255503223e+06 + K6 = 1.49151086135e+01 + K7 = -4.82326573616e+03 + K8 = 4.05113405421e+05 + K9 = -2.38555575678e-01 + K10 = 6.50175348448e+02 + _W = T + K9 / (T - K10) + _A = _W**2 + K1*_W + K2 + _B = K3*_W**2 + K4*_W + K5 + _C = K6*_W**2 + K7*_W + K8 + _X = -_B + np.sqrt(_B**2 - 4*_A*_C) + return (2*_C / _X)**4 * 1e6 + + + def xw(self, p, T, RH): + ''' + Molar fraction of water vapour in moist air. + ''' + _f = self.f(p, T) + _svp = self.svp(T) + return _f * RH * _svp / p + + + def Z(self, p, T, RH, xw=''): + ''' + Compressibility of moist air + ''' + _a0 = 1.58123e-6 # K Pa^-1 + _a1 = -2.9331e-8 # Pa^-1 + _a2 = 1.1043e-10 # K^-1 Pa^-1 + _b0 = 5.707e-6 # K Pa^-1 + _b1 = -2.051e-8 # Pa^-1 + _c0 = 1.9898e-4 # K Pa^-1 + _c1 = -2.376e-6 # Pa^-1 + _d = 1.83e-11 # K^2 Pa^-2 + _e = -0.765e-8 # K^2 Pa^-2 + _t = T - 273.15 + if xw == '': + _xw = self.xw(p, T, RH) + else: + _xw = xw + Z = 1 - (p/T) * (_a0 + _a1*_t + _a2*_t**2 + (_b0 + _b1*_t)*_xw + (_c0 + _c1*_t)*_xw**2) + (p/T)**2 * (_d + _e*_xw**2) + return Z + + + def rho(self, p, T, RH, xc, xw=''): + ''' + Calculates the density of air for the given parameters. + T in Kelvin + p in Pascal + RH between 0 and 1 + xc in ppm + ''' + _Ma = 1e-3 * (28.9635 + 12.011e-6 * (xc - 400) ) # Molar mass in kg/mol of dry air containing xc ppm of CO2 + _Mw = 0.018015 # kg/mol + _R = 8.314510 # J mol^-1 K^-1, gas constant + if xw == '': + _xw = self.xw(p, T, RH) + else: + _xw = xw + _Z = self.Z(p, T, RH, xw=_xw) + return ( ( p * _Ma ) / (_Z * _R * T) ) * ( 1 - _xw * (1 - _Mw/_Ma)) + + + def n_tph(self, l, T, p, RH, xc): + ''' + Calculates the refraction of the atmosphere for any conditions. + ''' + _n_a = self.n_axs(l, xc) + _n_w = self.n_ws(l) + _La = (_n_a**2 - 1) / (_n_a**2 + 2) + _Lw = (_n_w**2 - 1) / (_n_w**2 + 2) + + # Calculate the density of the dry air components, using the partial pressure of the dry air, i.e. p_dry = p_atm - p_water + _rho_a = self.rho(p=p-RH*self.svp(T), T=T, RH=0, xc=xc) # Dry air component for the actual conditions. + _rho_axs = self.rho(p=101325, T=288.15, RH=0, xc=xc) # Dry air component at standard conditions. + + if RH == 0: + # nan is returned for _rho_w if we put in a (partial) pressure of 0 + _rho_w = 0 + else: + # Partial pressure of water vapour is p_water = h*svp + _rho_w = self.rho(p=RH*self.svp(T), T=T, RH=RH, xc=xc) # Moist air component for the actual conditions. + _rho_ws = self.rho(p=1333, T=293.15, RH=1333/self.svp(293.15), xc=xc) # Moist air component at standard conditions. + + _Ltotal = ( _rho_a / _rho_axs ) * _La + ( _rho_w / _rho_ws ) * _Lw + + # print 'Dry air component = ', (_rho_a/_rho_axs)*(_n_a-1)*1e8 + # print 'Wet component = ', ( _rho_w / _rho_ws ) * (_n_w - 1)*1e8 + # print 'Sum of components = ', (_rho_a/_rho_axs)*(_n_a-1)*1e8+( _rho_w / _rho_ws ) * (_n_w - 1)*1e8 + return np.sqrt( (1 + 2 * _Ltotal) / (1 - _Ltotal) ) + + + def dn_tph(self, l, T, p, RH, xc, dl=None, dT=None, dP=None, dRH=None, dCO2=None): + ''' + Calculates the uncertainty in the refractive index, following the Ciddor model, + by using fully propagated error analysis. + This involves almost endless use of the chain rule and evaluation of both the moist + air and dry air components. Note: dry air does not contain any water, i.e. H=0, x_w=0, etc. + + Parameters: + l - Wavelength in micron (0.4 - 2.5 micron) + T - Temperature in Kelvin + p - Pressure in Pascals + RH - Relative humidity (no units, don't use percentage but value 0 24: + print('Using the Mathar model at this wavelength (l={:.3f}) is not recommended!'.format(l)) + + if l <= 2.65: + ######################################################################## + # model parameters for wavelengths between 1.3 and 2.5 microns + cref = [ 0.200192e-3, 0.113474e-9, -0.424595e-14, 0.100957e-16, -0.293315e-20, 0.307228e-24] # cm^j + cT = [ 0.588625e-1, -0.385766e-7, 0.888019e-10, -0.567650e-13, 0.166615e-16, -0.174845e-20] # cm^j · K + cTT = [-3.01513, 0.406167e-3, -0.514544e-6, 0.343161e-9, -0.101189e-12, 0.106749e-16] # cm^j · K^2 + cH = [-0.103945e-7, 0.136858e-11, -0.171039e-14, 0.112908e-17, -0.329925e-21, 0.344747e-25] # cm^j · %^-1 + cHH = [ 0.573256e-12, 0.186367e-16, -0.228150e-19, 0.150947e-22, -0.441214e-26, 0.461209e-30] # cm^j · %^-2 + cp = [ 0.267085e-8, 0.135941e-14, 0.135295e-18, 0.818218e-23, -0.222957e-26, 0.249964e-30] # cm^j · Pa^-1 + cpp = [ 0.609186e-17, 0.519024e-23, -0.419477e-27, 0.434120e-30, -0.122445e-33, 0.134816e-37] # cm^j · Pa^-2 + cTH = [ 0.497859e-4, -0.661752e-8, 0.832034e-11, -0.551793e-14, 0.161899e-17, -0.169901e-21] # cm^j · K · %^-1 + cTp = [ 0.779176e-6, 0.396499e-12, 0.395114e-16, 0.233587e-20, -0.636441e-24, 0.716868e-28] # cm^j · K · Pa^-1 + cHp = [-0.206567e-15, 0.106141e-20, -0.149982e-23, 0.984046e-27, -0.288266e-30, 0.299105e-34] # cm^j · %^-1 · Pa^-1 + + sref = 1e4/2.25 # cm^−1, reference wavenumber + Tref = 273.15+17.5 # K, reference temperature + pref = 75000 # Pa, reference pressure + Href = 10 #%, reference humdity in percent + ######################################################################## + + if l > 2.65 and l <= 4.275: + ######################################################################## + # model parameters for wavelengths between 2.8 and 4.2 microns + cref = [ 0.200049e-3, 0.145221e-9, 0.250951e-12, -0.745834e-15, -0.161432e-17, 0.352780e-20] # cm^j + cT = [ 0.588432e-1, -0.825182e-7, 0.137982e-9, 0.352420e-13, -0.730651e-15, -0.167911e-18] # cm^j · K + cTT = [-3.13579, 0.694124e-3, -0.500604e-6, -0.116668e-8, 0.209644e-11, 0.591037e-14] # cm^j · K^2 + cH = [-0.108142e-7, 0.230102e-11, -0.154652e-14, -0.323014e-17, 0.630616e-20, 0.173880e-22] # cm^j · %^-1 + cHH = [ 0.586812e-12, 0.312198e-16, -0.197792e-19, -0.461945e-22, 0.788398e-25, 0.245580e-27] # cm^j · %^-2 + cp = [ 0.266900e-8, 0.168162e-14, 0.353075e-17, -0.963455e-20, -0.223079e-22, 0.453166e-25] # cm^j · Pa^-1 + cpp = [ 0.608860e-17, 0.461560e-22, 0.184282e-24, -0.524471e-27, -0.121299e-29, 0.246512e-32] # cm^j · Pa^-2 + cTH = [ 0.517962e-4, -0.112149e-7, 0.776507e-11, 0.172569e-13, -0.320582e-16, -0.899435e-19] # cm^j · K · %^-1 + cTp = [ 0.778638e-6, 0.446396e-12, 0.784600e-15, -0.195151e-17, -0.542083e-20, 0.103530e-22] # cm^j · K · Pa^-1 + cHp = [-0.217243e-15, 0.104747e-20, -0.523689e-23, 0.817386e-26, 0.309913e-28, -0.363491e-31] # cm^j · %^-1 · Pa^-1 + + sref = 1e4/3.4 # cm^−1, reference wavenumber + Tref = 273.15+17.5 # K, reference temperature + pref = 75000 # Pa, reference pressure + Href = 10 #%, reference humdity in percent + ######################################################################## + + if l > 4.275 and l <= 6.35: + ######################################################################## + # model parameters for wavelengths between 4.35 and 5.2 microns + cref = [ 0.200020e-3, 0.275346e-9, 0.325702e-12, -0.693603e-14, 0.285610e-17, 0.338758e-18] # cm^j + cT = [ 0.590035e-1, -0.375764e-6, 0.134585e-9, 0.124316e-11, 0.508510e-13, -0.189245e-15] # cm^j · K + cTT = [-4.09830, 0.250037e-2, 0.275187e-6, -0.653398e-8, -0.310589e-9, 0.127747e-11] # cm^j · K^2 + cH = [-0.140463e-7, 0.839350e-11, -0.190929e-14, -0.121399e-16, -0.898863e-18, 0.364662e-20] # cm^j · %^-1 + cHH = [ 0.543605e-12, 0.112802e-15, -0.229979e-19, -0.191450e-21, -0.120352e-22, 0.500955e-25] # cm^j · %^-2 + cp = [ 0.266898e-8, 0.273629e-14, 0.463466e-17, -0.916894e-23, 0.136685e-21, 0.413687e-23] # cm^j · Pa^-1 + cpp = [ 0.610706e-17, 0.116620e-21, 0.244736e-24, -0.497682e-26, 0.742024e-29, 0.224625e-30] # cm^j · Pa^-2 + cTH = [ 0.674488e-4, -0.406775e-7, 0.289063e-11, 0.819898e-13, 0.468386e-14, -0.191182e-16] # cm^j · K · %^-1 + cTp = [ 0.778627e-6, 0.593296e-12, 0.145042e-14, 0.489815e-17, 0.327941e-19, 0.128020e-21] # cm^j · K · Pa^-1 + cHp = [-0.211676e-15, 0.487921e-20, -0.682545e-23, 0.942802e-25, -0.946422e-27, -0.153682e-29] # cm^j · %^-1 · Pa^-1 + σref = 1e4/4.8 # cm^−1, reference wavenumber + Tref = 273.15+17.5 # K, reference temperature + pref = 75000 # Pa, reference pressure + Href = 10 #%, reference humdity in percent + ######################################################################## + + if l > 6.35 and l <= 15.05: + ######################################################################## + # model parameters for wavelengths between 7.5 and 14.1 microns + cref = [ 0.199885e-3, 0.344739e-9, -0.273714e-12, 0.393383e-15, -0.569488e-17, 0.164556e-19] # cm^j + cT = [ 0.593900e-1, -0.172226e-5, 0.237654e-8, -0.381812e-11, 0.305050e-14, -0.157464e-16] # cm^j · K + cTT = [-6.50355, 0.103830e-1, -0.139464e-4, 0.220077e-7, -0.272412e-10, 0.126364e-12] # cm^j · K^2 + cH = [-0.221938e-7, 0.347377e-10, -0.465991e-13, 0.735848e-16, -0.897119e-19, 0.380817e-21] # cm^j · %^-1 + cHH = [ 0.393524e-12, 0.464083e-15, -0.621764e-18, 0.981126e-21, -0.121384e-23, 0.515111e-26] # cm^j · %^-2 + cp = [ 0.266809e-8, 0.695247e-15, 0.159070e-17, -0.303451e-20, -0.661489e-22, 0.178226e-24] # cm^j · Pa^-1 + cpp = [ 0.610508e-17, 0.227694e-22, 0.786323e-25, -0.174448e-27, -0.359791e-29, 0.978307e-32] # cm^j · Pa^-2 + cTH = [ 0.106776e-3, -0.168516e-6, 0.226201e-9, -0.356457e-12, 0.437980e-15, -0.194545e-17] # cm^j · K · %^-1 + cTp = [ 0.77368e-6, 0.216404e-12, 0.581805e-15, -0.189618e-17, -0.198869e-19, 0.589381e-22] # cm^j · K · Pa^-1 + cHp = [-0.206365e-15, 0.300234e-19, -0.426519e-22, 0.684306e-25, -0.467320e-29, 0.126117e-30] # cm^j · %^-1 · Pa^-1 + σref = 1e4/10.1 # cm^−1, reference wavenumber + Tref = 273.15+17.5 # K, reference temperature + pref = 75000 # Pa, reference pressure + Href = 10 #%, reference humdity in percent + ######################################################################## + + + if l > 15.05: + ######################################################################## + # model parameters for wavelengths between 16 and 24 microns + cref = [ 0.199436e-3, 0.299123e-8, -0.214862e-10, 0.143338e-12, 0.122398e-14, -0.114628e-16] # cm^j + # something seems to be wrong with cT... + cT = [ 0.621723e-1, -0.177074e-4, 0.152213e-6, -0.954584-9, -0.996706e-11, 0.921476e-13] # cm^j · K + cTT = [-23.2409, 0.108557, -0.102439e-2, 0.634072e-5, 0.762517e-7, -0.675587e-9 ] # cm^j · K^2 + cH = [-0.772707e-7, 0.347237e-9, -0.272675e-11, 0.170858e-13, 0.156889e-15, -0.150004e-17] # cm^j · %^-1 + cHH = [-0.326604e-12, 0.463606e-14, -0.364272e-16, 0.228756e-18, 0.209502e-20, -0.200547e-22] # cm^j · %^-2 + cp = [ 0.266827e-8, 0.120788e-14, 0.522646e-17, 0.783027e-19, 0.753235e-21, -0.228819e-24] # cm^j · Pa^-1 + cpp = [ 0.613675e-17, 0.585494e-22, 0.286055e-24, 0.425193e-26, 0.413455e-28, -0.812941e-32] # cm^j · Pa^-2 + cTH = [ 0.375974e-3, -0.171849e-5, 0.146704e-7, -0.917231e-10, -0.955922e-12, 0.880502e-14] # cm^j · K · %^-1 + cTp = [ 0.778436e-6, 0.461840e-12, 0.306229e-14, -0.623183e-16, -0.161119e-18, 0.800756e-20] # cm^j · K · Pa^-1 + cHp = [-0.272614e-15, 0.304662e-18, -0.239590e-20, 0.149285e-22, 0.136086e-24, -0.130999e-26] # cm^j · %^-1 · Pa^-1 + σref = 1e4/20 # cm^−1, reference wavenumber + Tref = 273.15+17.5 # K, reference temperature + pref = 75000 # Pa, reference pressure + Href = 10 #%, reference humdity in percent + ######################################################################## + + s = 1e4/l # cm^-1 + n = 1 + H = H*100 + + for j in range(0, 6): + n += ( cref[j] + cT[j]*(1/T-1/Tref) + cTT[j]*(1/T-1/Tref)**2 + + cH[j]*(H-Href) + cHH[j]*(H-Href)**2 + + cp[j]*(p-pref) + cpp[j]*(p-pref)**2 + + cTH[j]*(1/T-1/Tref)*(H-Href) + + cTp[j]*(1/T-1/Tref)*(p-pref) + + cHp[j]*(H-Href)*(p-pref) ) * (s-sref)**j + return n + + +def K2C(K): + ''' + Kelvin to Celsius conversion + ''' + return K - 273.15 + +def hPA2mmHg(hPa): + ''' + hPa to mmHg conversion + ''' + return 0.7500616827 * hPa \ No newline at end of file diff --git a/manual.pdf b/manual.pdf deleted file mode 100644 index 865eed457917ed77728dbb0e04c91b1a5699934c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98463 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
DPSE1=4jx~VbRdOdddhk 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