From b11f614286af06a70a874c89db54ba9800e82f72 Mon Sep 17 00:00:00 2001 From: whitetuft Date: Sun, 29 Oct 2023 19:19:51 +0100 Subject: [PATCH] [feature] add R23 absorption model --- pyrtlib/_lineshape/h2o_lineshape.nc | Bin 59853 -> 65745 bytes pyrtlib/_lineshape/h2oll.py | 8 +- pyrtlib/_lineshape/o2_lineshape.nc | Bin 125023 -> 139851 bytes pyrtlib/_lineshape/o2ll.py | 4 +- pyrtlib/_lineshape/o3_lineshape.nc | Bin 91535 -> 119221 bytes pyrtlib/absorption_model.py | 130 ++++++- pyrtlib/rt_equation.py | 2 +- .../tb_tot_ground_ros03_19sd_21sd_era5.csv | 364 +++++++++--------- ...16_17_18_19_19sd_20_20sd_98_mak11_21sd.csv | 364 +++++++++--------- pyrtlib/tests/test_main_ground.py | 37 +- pyrtlib/tests/test_main_sat.py | 15 +- pyrtlib/utils.py | 1 - 12 files changed, 522 insertions(+), 403 deletions(-) diff --git a/pyrtlib/_lineshape/h2o_lineshape.nc b/pyrtlib/_lineshape/h2o_lineshape.nc index ddd797d4d19a453841f7c78c5f6b52a9a8db6589..508bd361d39ea8352ba1316ec961dde922a190da 100644 GIT binary patch delta 826 zcmZ`%Ur1A76#wqGZ)>x! zBLuN5+tNZ1*H!4r1cMYDbEw(M3W=gJ=d6c7*zEq>!l3WroR8n1a}Jyno>xS>h)setYTjcB=1R)f2w zytdMYR0t!aURVh7L79*3uO~u~O_-sFz zLoKw>Hd`#&mx2*b5piF-dj(cJdkfM>Cb3@miYqcbgiqPE**LHd9ctmS9ytvK5W38O uud#`-C$|Zap7hUv@0pG2f`Nf45;T8EL6=5{?MYxS9H2Y5Bzext=gB`s5aD|O delta 295 zcmccE$a3~F^8^`{vo9IIzyLxqT((+s!QaCrh>2$llM+~rnR}wcYL?f%5-l6w|L5cR z$iTqQ2$VRR)a$VM7rz+`7gQ(11@6rYMN+vZZxBh}%%)HqIk~-3XtDz*%jEc;h|M1> z<5eav6S)lLRL|#UVf;9`d$Bqr_vD2l>XUCRR$w_2pzA#O-(m@CZU%0sky+ZDVNM|) zE(~l8Oh9XaqA414mO&&Ds$TSlrMU$IRWW>=9Js`tWfkMm#L07($V@)GB$?&=ztSB* zXVo%Jp0jK<%R~2D-+{b9MxZm;Cco3>nOu-myJdAZ0(knHBW I8$MV70C6N^PXGV_ diff --git a/pyrtlib/_lineshape/h2oll.py b/pyrtlib/_lineshape/h2oll.py index 3b051c81..03b60f56 100644 --- a/pyrtlib/_lineshape/h2oll.py +++ b/pyrtlib/_lineshape/h2oll.py @@ -78,14 +78,14 @@ xh = mtx[:, 9] shs = mtx[:, 10] / 1000.0 xhs = mtx[:, 11] -if H2OAbsModel.model in ['R19', 'R19SD', 'R20', 'R20SD', 'R21SD', 'R22SD']: +if H2OAbsModel.model in ['R19', 'R19SD', 'R20', 'R20SD', 'R21SD', 'R22SD', 'R23', 'R23SD']: aair = mtx[:, 12] aself = mtx[:, 13] -if H2OAbsModel.model in ['R19SD', 'R20SD', 'R21SD', 'R22SD']: +if H2OAbsModel.model in ['R19SD', 'R20SD', 'R21SD', 'R22SD', 'R23', 'R23SD']: w2 = mtx[:, 14] / 1000.0 -if H2OAbsModel.model in ['R19SD', 'R20SD', 'R22SD']: +if H2OAbsModel.model in ['R19SD', 'R20SD', 'R22SD', 'R23', 'R23SD']: w2s = mtx[:, 15] / 1000.0 -if H2OAbsModel.model in ['R21SD', 'R22SD']: +if H2OAbsModel.model in ['R21SD', 'R22SD', 'R23', 'R23SD']: xw2 = mtx[:, 15] w2s = mtx[:, 16] / 1000.0 xw2s = mtx[:, 17] diff --git a/pyrtlib/_lineshape/o2_lineshape.nc b/pyrtlib/_lineshape/o2_lineshape.nc index 040ec7c5b2a253bdfdce7bec61853dd3c92c4d21..31487332257b1d025456f170fc47ad44072d33f5 100644 GIT binary patch delta 5921 zcma)A2V4|K7vH%%ia?NZNB1cHq$vtE)U4S>@dQyo5fn=VgW?zS;UOScPb?8IDrCh) zLoA6J3!*>~lG$UlLEaND zL)8?1qAuT?G$Ee;-RL!cBYHqL`rbA~59~%?^b*mhcB8v?Ao?^!S7E}&fx1ZYpl%Dy zO%Z*1H~JkJq6c@QpSD8ukZ$x1{ScieV|6<4mwG@A7${P^*8n@=e{MF21nVpcEI@&a zp+2V1FZeOPB28WF1LIE;FT%C_%ER9uk0Mz)iUt{NUa(FlZ{E18;&! z>U&E;u}E?*>)}E=Cl1sZ0f{hQJZF(WqPS&w{! z#J7UU87?gVXN;Bbzngo{zuZa_*sjk2QlWmwpV z^^A-#%HV$GMQV%HOvk`P0;qg#mi`znV&8FidEaQd9NW6*J;jlNB7 z+IWRfwU1GjCS4)=a|^18c`hYJ7YnP2D@Ege`Oh5?KfM*Ni1hcU-x?Iluj?03O?vYXAx2kEM#2GNhqNt5+wuk4#(O){(djf(WP zCV!Yv@b~NMa*~s@LQdXqKlHSGialb)_S@UE=VeUpPm-qLMHPPiNfXXA6oJ-d5f=+j zY|(BxNEG@Shz4#tNKAsA*&*V^-pFGQVvZAglXLGjrJpBE-PrX57n~z@jNkm#{q}Q& zOYZzesE z3{PZMN^>UOT@k^c%|mEqKCld7?J3%&yOQ~~MCHS*UQN7$ip*cjxQ(}YSU++FvAoIA zL-+71e$g`GC3HQNzyzPm+V4-s5K%vZQ(7jm3|gn;*VDE6pitH5^v7rYwvA>!tqs^h zN3G-6Ch>DqiJH=Xf;0!dV^AD@FYqQ#$YCICm}cyYqQF*X~IY5oA73oEqcf|ke`rm;MF^?3^K z+BO&lBy0laTA!s$;$!ATM8$asDB!T?GRID_Wuk#>0zK($0u>6Wat-JvZBMDW=`oV? z{id>l+@OH#cmZc3VK8h2Rc7aD*SD@dxJu{^zQU-q(z)_6&ykFfIc)i{8-2T}_tqIl+tK8A zossz((Ry@-&&>lP3k7HB^RqkeP`Fsz5;{Y;MzuL-EEI6pc151yzdZpJ3?Hy9rJJZd zc_O+63E6`uAUEgZcVxIwg!X?s zE2qNiI6{W!IcP~;lNh@Q@z9@VCG_HgNW*c{Co3>5<%>iE>@J}9Du9*Fx`C4hVICrS zY6@_*zR3F23Y+j`!3=B&yIh8?&jPbCh^B4meJNn0WbrJszgXxf0mo985kO|cPT`ve zJINfYBPLFzz@WoaYJx<>0iw>64m~xNG?k(F>J@~&c>1CE(t+HBqY3MX@1LYa^%?^~ z$9T8$GGl?eA`28g-dz)d((X+K5b_wN!=0V^3xwhaNRV6@CYry1#d%cA3QJMV-*j#X zkcq^t^x0HkCED9Ydrbi{F`Ej~*8-V&=g|X_cSD-CO9K`n*ACk2DliqZ!qI_gz}!M8 zcYs7FFhr3aEBc72yDKflY|XR7A4qMzq$nDI#E{nprQG;o?(S^;L%FY#4$(Ci=CCJ` zYg+O1+3^Dw0^OLWgM>Uw5pDb}FthX!sw5yWkJC=Yw-d+)_$7UaVw9E=`t zI4bwDj)X>iWC)n+BfjrXF*=Z+a4*7=ar+&0TW4BBIGi;a6s)uDm}p=te6ZkGIaco{ zhR15eWY1);u*SVS?#}1?Vgh2;gr*C`?^n6TBF&8&z|tC(pVf~#gaAVTq|W}ZWsS6s~? zm|Mf_e!?Og&l(1bdClP_!$MgW2;XFiTAk-?JAa!&aOO78r;foedT$~y)bT+Z)9xoh zvg%%Q$!GM;2Y7mmeq+_GtGKUGQrtdxbGORvQ+F2sIq_IY_V7cv^iPA* zZ5>B(&nF#eGtTeC<7C)SEr2&cer;;T6d}Q>i<+AO#USzw&FzOkuPAkx;_zg4+8;@-Dp&{5nPHSGJVc36cpDWaz>MWUF%n!5y(G4PR0;5ImhhXQ_d&K^pjP*Y1S3->5iw%aDb0Gvy`wU_rT` zL1kSTFMSnb&Xq{?no2NK8&yU0k?(+&Hh0cy)&FCE1FFt05I$tQH=zac??=5PH1tjt zAgkxGcCUBZ9)k}iG{{d#Xz;0PM6``>*Mue)vc8bS0=|4U1!dFsypNdkX}%XV(5u=C z%U9_inU|dmKd1)eC#V5m=4Ld^?&zw9vv4s9YDE1OT7foa>lOCuh5W@*3{YvqEF8qH z=rV3ug`Q^;`RB&YEBXYBI0`M2%bC=V=CSd;JPc2$LyLPfXPXUDyBBk!$H>qG>d%if z=aIf2G$-UIm@}CDU1pS>+|`_N_Hq_1$@S^|ciQ%-#%bG+QUh*<&`Kq7_0u?=CKDX}>&N^(T!NT*wlFDy#hAG! zI;>{t&!1zn@x3D-7tDYQ9Ge5L#xQP9xay0Qm>i(@vPoi_1miYMpeC5M(BfHk+mARh z9%SUrZZmpqe^$hJgo#CDhL7s>b)}3C Swu@&oax+4t9+xxL6aWChl4l+O diff --git a/pyrtlib/_lineshape/o2ll.py b/pyrtlib/_lineshape/o2ll.py index 451fc695..f084bc52 100644 --- a/pyrtlib/_lineshape/o2ll.py +++ b/pyrtlib/_lineshape/o2ll.py @@ -43,9 +43,11 @@ w300 = d.variables['w300'][:].data if O2AbsModel.model in ['R98', 'R03', 'R17', 'R18', 'R19', 'R19SD']: v = d.variables['v'][:].data +if O2AbsModel.model in ['R98', 'R03', 'R17', 'R18', 'R19', 'R19SD', 'R23']: y300 = d.variables['y300'][:].data -else: +if O2AbsModel.model not in ['R98', 'R03', 'R17', 'R18', 'R19', 'R19SD', 'R23']: y0 = d.variables['y0'][:].data +if O2AbsModel.model in ['R16', 'R20', 'R20SD', 'R21', 'R22', 'R23']: y1 = d.variables['y1'][:].data g0 = d.variables['g0'][:].data g1 = d.variables['g1'][:].data diff --git a/pyrtlib/_lineshape/o3_lineshape.nc b/pyrtlib/_lineshape/o3_lineshape.nc index c053d65035a6f5b6cbbaa1340434a99805846b63..c6b1c6a7391967da3ad74d2fe64ae0fcbd034505 100644 GIT binary patch delta 3382 zcmeH~eRNx89mns}^ewE6-r9Bvt6T3}-O|m`bX$AVS(dDfHJf9k3~1zSaiUbFI}y*Z zRXncDKd65IITvV)3e=&tfM}Gl)z`-Pmf=g|%Uncs8NLt&M^MKyl==DP=6X2u56;L3#wWI&Cfr`2(E0&e|T&_fL zMN@sf6r0{-&kmMGw8ZUuE4M%UiRR>~WX(X0-KW)-zwao|b!z9^>35$u|MBzq3*Q?EVx+MXSK z{o7>q>r-6=e)E)c@o~ofv-d#f+PiPIH~ZA+se#f7)Doo{HLXG^<>WZuu0~DihIR6h z<`&ll^1!;^XD`0X-d}5K&^WGj;y|O-QE`bCtGK3SUDrCTZk1-uRjgcN{}kapM;<;u z$$7S&Z%MLFJmM+mjK6VCYiqZYb7@uSa)x)dKV;{uP-;0R;z-U(oSgIPQtk&TJ?*Y` z=g&#g9^6vfplL4EcB_5beK*_3EuVI-veEkV=X)2(=_I-Cdd+IB3a^(9N(;(6$=y2k zv6HLiF4-HND}RFJ%c7@q}rOK>?y)GOZN&zHC|vC_*f0T50fq#k3|tebuyv zAOnFXO=}9=2TdyuSqMEvKIn(Yha7|tlMmim@*xkAuaOVN*U5(hM882k_`XR#6e0F4 z^1=UY@50KPDeC5cmoC;QlH3kcH4Z`JiXWha7}|Mm~6dPCn!z@(c38_$B#J zfao#u!S^fjp$M_#`JnzzK4c*95Awl%n*7r})-$KOtk5gu zgMNm5$U(SBK6uaeSo_a*S^2Z%ze+wB|0Ev@5d9bV;CqdHC_?NU`RC00{K~vKc#LQKm)y3(=%VEkr}2j3{ssni9F|QM_Jtj~}mB8^-%|Hki@r z(;Mg;Zs1tC2Fmc8P*UV=M5Cg-DAL5d!%fUHnkmObg=YE&7txwq#DLF3d5?!y(L-O% zi_#+h#SBbb%z#=ojT{bm#wWksPSXl4mh>X*_QUdlB;x0GuRw^AlW zUIUF9OnKg5m&h{8S&{J;G$tyDqRUZgIltPfHa1AKvEob{D`IbDAT9E*K$9Z15)G|n z%Dl8ppIo1hvbLR8yq&(RD6|UAi1gKr4zFf3x0*8iHk1^3*ATgX4UzdZl#xr&tjOp< zW1@m6%A+-&^0UjzPIgIjQWiTYcdeyNucg(oj=qU?lxjVj-nyPmGwT^JyXc$hV$|J@ z;@$Ke@1`$g(wa7D=>Y~tM7aQc{XO(0dnmmdDEDok%x|EKydBMoj9v!r>}88hPEwhhZrut~PFGF!rRutOIlX%cFh;pLv z7L*iu`{nxj<@)+5BVjZfrmuA?tvk2M^=+jb+(s+4jXvKyP(oA`#kQlg$bSX%Caz$f z+Ce!a%7_A2GVt(~47ekdaZy$j8bC85{VJvmU&WN1wEB0_O75iPxtiAK)lA8YBG;f< zk#Q{=6BR_!L6jPl=PxSHUzD;aioFx1MgHs9Z{j-kQ`b`ti87+V4QNW_z7fT5WZrRU z1#e>V%uTfPU1&s<6NO_aDe}Gxjf(Q3$Zpmi-pw-O-Kw+Eeznq+yx__UW$D#v-vgdy lu6Fx9@1@)Ax1418KOno8nTOB&zhiOjnFALd(zJW~{tf(0R$%}D delta 110 zcmdnGn7#ir>jW8<{!~T=5HJ9f3=Fd;nmYM=xCAlrY++IYi!n1zbWj&%69aJ=S)j@o tn1c*0-cPK_XW6_}<>|)v8`(KwG6|bMa)|OzzA($9nN4Cln*?L0F96Uh7+wGX diff --git a/pyrtlib/absorption_model.py b/pyrtlib/absorption_model.py index 861673f8..38416d7d 100644 --- a/pyrtlib/absorption_model.py +++ b/pyrtlib/absorption_model.py @@ -30,6 +30,21 @@ def __init__(self, model, message): super().__init__(self.message) +class AbsModelError(Exception): + """Exception raised for errors in the input model. + + Attributes: + model -- input model which caused the error + message -- explanation of the error + """ + + def __init__(self, model, message): + self.model = model + self.message = message + + super().__init__(self.message) + + class AbsModel: """This is an abstraction class to define the absorption model. """ @@ -160,7 +175,7 @@ def liquid_water_absorption(water: np.ndarray, freq: np.ndarray, temp: np.ndarra fs = np.dot(39.8, fp) eps = (eps0 - eps1) / complex(1.0, freq / fp) + \ (eps1 - eps2) / complex(1.0, freq / fs) + eps2 - elif LiqAbsModel.model in ['R17', 'R16', 'R19', 'R20', 'R19SD', 'R22SD']: + elif LiqAbsModel.model in ['R17', 'R16', 'R19', 'R20', 'R19SD', 'R22SD', 'R23', 'R23SD']: eps = dilec12(freq, temp) else: raise ValueError( @@ -204,7 +219,7 @@ def n2_absorption(t: np.ndarray, p: np.ndarray, f: np.ndarray) -> np.ndarray: fdepen = 0.5 + 0.5 / (1.0 + (f / 450.0) ** 2) if N2AbsModel.model in ['R16', 'R17', 'R18', 'R19', 'R19SD']: l, m, n = 6.5e-14, 3.6, 1.34 - elif N2AbsModel.model in ['R20', 'R20SD', 'R21SD', 'R22', 'R22SD']: + elif N2AbsModel.model in ['R20', 'R20SD', 'R21SD', 'R22', 'R22SD', 'R23', 'R23SD']: l, m, n = 9.95e-14, 3.22, 1 elif N2AbsModel.model == 'R03': l, m, n = 6.5e-14, 3.6, 1.29 @@ -250,6 +265,34 @@ def set_ll() -> None: H2OAbsModel.model, f"Model {H2OAbsModel.model} is not available. It is necessary to define water vapour absorption model manually") H2OAbsModel.h2oll = import_lineshape("h2oll") + def h2o_continuum(self, frq: np.ndarray, vx: np.ndarray, nfreq: int): + nf = 6 + deltaf = 299.792458 + selfcon = np.array([2.877e-21, 2.855e-21, 2.731e-21, + 2.49e-21, 2.178e-21, 1.863e-21]) + selftexp = np.array([6.413, 6.414, 6.275, 6.049, 5.789, 5.557]) + t = 300.0 / vx + theta = 296./t + + a = np.zeros((nf)) + cs = np.zeros((nfreq)) + + for j in range(nf): + a[j] = 6.532E12*selfcon[j]*theta**(selftexp[j]+3.) + + for i in range(nfreq): + fj = frq/deltaf + j = int(fj) + j = np.minimum(j, nf-3) + p = fj - j + c = (3.-2.*p)*p*p + b = 0.5*p*(1.-p) + b1 = b*(1.-p) + b2 = b*p + cs[i] = -a[j-1]*b1+a[j]*(1.-c+b2)+a[j+1]*(c+b1)-a[j+2]*b2 + + return cs + def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, frq: np.ndarray, amu: Optional[dict] = None) -> Union[ Tuple[np.ndarray, np.ndarray], None]: """Compute absorption coefficients in atmosphere due to water vapor for all models. @@ -339,7 +382,7 @@ def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, pvap = (rho * t) / 216.68 if H2OAbsModel.model in ['R03', 'R16', 'R17', 'R98']: pvap = (rho * t) / 217.0 - if H2OAbsModel.model in ['R22SD']: + if H2OAbsModel.model in ['R22SD', 'R23SD']: pvap = (constants("Rwatvap")[0] * 1e-05) * rho * t pda = p - pvap if H2OAbsModel.model in ['R03', 'R16', 'R98']: @@ -361,15 +404,23 @@ def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, ti = self.h2oll.reftline / t df = np.zeros((2, 1)) - if H2OAbsModel.model.startswith(('R19SD', 'R20SD', 'R21SD', 'R22SD')): + if H2OAbsModel.model.startswith(('R19SD', 'R20SD', 'R21SD', 'R22SD', 'R23SD')): tiln = np.log(ti) ti2 = np.exp(2.5 * tiln) summ = 0.0 + if H2OAbsModel.model.startswith('R23SD'): + if self.h2oll.cs > 0: + # npp_cs = np.zeros(1) + con = self.h2oll.cs * ti * self.h2oll.xcs + # for i in len(frq): + npp_cs = con + else: + npp_cs = self.h2o_continuum(frq, vx, 1) for i in range(0, nlines): width0 = self.h2oll.w0[i] * pda * ti ** self.h2oll.x[i] + \ self.h2oll.w0s[i] * pvap * ti ** self.h2oll.xs[i] width2 = self.h2oll.w2[i] * pda + self.h2oll.w2s[i] * pvap - if H2OAbsModel.model in ['R21SD', 'R22SD']: + if H2OAbsModel.model in ['R21SD', 'R22SD', 'R23SD']: if self.h2oll.w2[i] > 0: width2 = self.h2oll.w2[i] * pda * ti ** self.h2oll.xw2[i] + self.h2oll.w2s[i] * pvap * ti ** \ self.h2oll.xw2s[i] @@ -388,7 +439,7 @@ def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, df[0] = f - self.h2oll.fl[i] - shift df[1] = f + self.h2oll.fl[i] + shift base = width0 / (562500.0 + wsq) - if H2OAbsModel.model in ["R21SD", 'R22SD']: + if H2OAbsModel.model in ["R21SD", 'R22SD', 'R23SD']: delta2 = self.h2oll.d2[i] * pda + self.h2oll.d2s[i] * pvap res = 0.0 for j in range(0, 2): @@ -404,7 +455,7 @@ def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, delta2 = 0.0 xc = complex((width0 - np.dot(1.5, width2)), df[j] + np.dot(1.5, delta2)) / complex( width2, -delta2) - elif H2OAbsModel.model in ["R21SD", 'R22SD']: + elif H2OAbsModel.model in ["R21SD", 'R22SD', 'R23SD']: xc = complex( (width0 - 1.5 * width2), df[j] + 1.5 * delta2) / complex(width2, -delta2) @@ -412,7 +463,7 @@ def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, pxw = 1.77245385090551603 * xrt * \ _dcerror(-np.imag(xrt), np.real(xrt)) sd = 2.0 * (1.0 - pxw) / ( - width2 if H2OAbsModel.model not in ['R20SD', 'R21SD', 'R22SD'] else complex(width2, -delta2)) + width2 if H2OAbsModel.model not in ['R20SD', 'R21SD', 'R22SD', 'R23SD'] else complex(width2, -delta2)) res += np.real(sd) - base elif np.abs(df[j]) < 750.0: res += width0 / (df[j] ** 2 + wsq) - base @@ -445,7 +496,7 @@ def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, summ += s * res * (f / self.h2oll.fl[i]) ** 2 elif H2OAbsModel.model in ['R19', 'R20']: tiln = np.log(ti) - ti2 = np.exp(2.5 * tiln) + ti2 = ti ** 2.5 summ = 0.0 for i in range(0, nlines): widthf = self.h2oll.w0[i] * pda * ti ** self.h2oll.x[i] @@ -491,7 +542,12 @@ def h2o_absorption(self, pdrykpa: np.ndarray, vx: np.ndarray, ekpa: np.ndarray, # separate the following original equ. into line and continuum # terms, and change the units from np/km to ppm # abh2o = .3183e-4*den*sum + con - if H2OAbsModel.model == 'R22SD': + + if H2OAbsModel.model == 'R23SD': + conf = self.h2oll.cf * ti**self.h2oll.xcf + con = (conf * pda + npp_cs * pvap) * pvap * f**2 + + if H2OAbsModel.model in ['R22SD', 'R23SD']: h20m = 2.9915075E-23 # mass of water molecule (g) npp = (1.e-10 * rho * summ / (np.pi * h20m) / db2np) / factor else: @@ -526,7 +582,7 @@ def o2ll(self, o2ll) -> None: @staticmethod def set_ll() -> None: if O2AbsModel.model not in O2AbsModel.implemented_models()['Oxygen']: - raise AbsModelError(H2OAbsModel.model, + raise AbsModelError(O2AbsModel.model, f"Model {O2AbsModel.model} is not available. It is necessary to define oxygen absorption model manually") O2AbsModel.o2ll = import_lineshape("o2ll") @@ -626,7 +682,7 @@ def o2_absorption(self, pdrykpa: float, vx: float, ekpa: float, frq: float, amu: preswv = vapden * temp / 216.68 if O2AbsModel.model in ['R03', 'R16', 'R17', 'R18', 'R98']: preswv = vapden * temp / 217.0 - if O2AbsModel.model in ['R22', 'R22SD']: + if O2AbsModel.model in ['R22', 'R22SD', 'R23', 'R23SD']: preswv = 4.615228e-3 * vapden * temp presda = pres - preswv den = 0.001 * (presda * b + 1.2 * preswv * th) @@ -636,8 +692,11 @@ def o2_absorption(self, pdrykpa: float, vx: float, ekpa: float, frq: float, amu: den = 0.001 * (presda * th ** 0.9 + 1.1 * preswv * th) if O2AbsModel.model == 'R98': den = 0.001 * (presda + 1.1 * preswv) * th - dfnr = self.o2ll.wb300 * den pe2 = den * den + if O2AbsModel.model in ['R23', 'R23SD']: + pe1 = 0.99 * den + pe2 = pe1**2 + dfnr = self.o2ll.wb300 * den # intensities of the non-resonant transitions for o16-o16 and o16-o18, from jpl's line compilation # 1.571e-17 (o16-o16) + 1.3e-19 (o16-o18) = 1.584e-17 @@ -671,6 +730,41 @@ def o2_absorption(self, pdrykpa: float, vx: float, ekpa: float, frq: float, amu: sf2 = (df - (freq + fcen) * y) / \ ((freq + self.o2ll.f[k]) ** 2 + df * df) summ += strr * (sf1 + sf2) * (freq / self.o2ll.f[k]) ** 2 + elif O2AbsModel.model in ['R23', 'R23SD']: + summ = 0. + anorm = 0. + a = np.zeros(nlines) + g = np.zeros(nlines) + for k in range(0, nlines): + a[k] = self.o2ll.s300[k]*np.exp(-self.o2ll.be[k] * th1)/self.o2ll.f[k]**2 + g[k] = self.o2ll.g0[k] + self.o2ll.g1[k]*th1 + if k > 1 and k <= 38: + summ = summ + a[k]*g[k] + anorm = anorm + a[k] + off = summ/anorm + summ = (1.584e-17/th) * dfnr/ ((freq * freq) + (dfnr * dfnr)) + for k in range(0, nlines): + width = self.o2ll.w300[k] * den + y = pe1*(self.o2ll.y300[k]+self.o2ll.y1[k]*th1) + if k > 1 and k <= 38: + gfac = 1. + pe2 * (g[k] - off) + else: + gfac = 1. + fcen = self.o2ll.f[k] + pe2 * (self.o2ll.dnu0[k] + self.o2ll.dnu1[k] * th1) + if k == 1 and np.abs(freq-fcen) < 10 * width: + width2 = .076 * width + xc = complex(width-1.5*width2, freq-fcen)/width2 + xrt = np.sqrt(xc) + pxw = 1.77245385090551603 * xrt * \ + _dcerror(-np.imag(xrt), np.real(xrt)) + asd = complex(1.,y)*2.*(1.-pxw)/width2 + sf1 = np.real(asd) + else: + sf1 = (width*gfac + (freq-fcen)*y)/((freq-fcen)**2 + width**2) + sf2 = (width*gfac - (freq+fcen)*y)/((freq+fcen)**2 + width**2) + summ += a[k] * (sf1+sf2) + if k == 38: + summ = np.maximum(summ, 0.) else: for k in range(0, nlines): df = self.o2ll.w300[k] * den @@ -687,6 +781,8 @@ def o2_absorption(self, pdrykpa: float, vx: float, ekpa: float, frq: float, amu: summ += strr * (sf1 + sf2) * (freq / self.o2ll.f[k]) ** 2 o2abs = 1.6097e+11 * summ * presda * th ** 3 + if O2AbsModel.model in ['R23', 'R23SD']: + o2abs = 1.6097e+11 * summ * presda * freq * freq * th**3 if O2AbsModel.model in ['R03', 'R98']: o2abs = 5.034e+11 * summ * presda * th ** 3 / 3.14159 # o2abs = 1.004 * np.maximum(o2abs, 0.0) @@ -779,7 +875,7 @@ def o3_absorption(self, t: np.ndarray, p: np.ndarray, f: np.ndarray, o3n: np.nda if o3n.any() <= 0: abs_o3 = 0 - return + return abs_o3 den = 1e-06 * o3n ti = self.o3ll.reftline / t @@ -788,9 +884,9 @@ def o3_absorption(self, t: np.ndarray, p: np.ndarray, f: np.ndarray, o3n: np.nda # add resonances within 1 ghz of f. most of the ozone is in the # stratosphere, so lines are relatively narrow, and lorentz shape # factor is ok. + summ = 0.0 + nlines = len(self.o3ll.fl) if O3AbsModel.model in ["R22", "R22SD"]: - summ = 0.0 - nlines = len(self.o3ll.fl) for k in range(0, nlines): if self.o3ll.fl[k] > (f + 1.0): break @@ -804,8 +900,6 @@ def o3_absorption(self, t: np.ndarray, p: np.ndarray, f: np.ndarray, o3n: np.nda abs_o3 = .56419e-4 * summ * qvinv * ti2 * den else: - summ = 0.0 - nlines = len(self.o3ll.fl) for k in range(0, nlines): if self.o3ll.fl[k] > (f + 1.0): break diff --git a/pyrtlib/rt_equation.py b/pyrtlib/rt_equation.py index a92af008..d3ffda5b 100644 --- a/pyrtlib/rt_equation.py +++ b/pyrtlib/rt_equation.py @@ -560,7 +560,7 @@ def clearsky_absorption(p: np.ndarray, t: np.ndarray, e: np.ndarray, frq: np.nda raise ValueError( 'No model avalaible with this name: {} . Sorry...'.format('model')) - if isinstance(o3n, np.ndarray) and O3AbsModel.model in ['R18', 'R21', 'R21SD', 'R22', 'R22SD']: + if isinstance(o3n, np.ndarray) and O3AbsModel.model in ['R18', 'R21', 'R21SD', 'R22', 'R22SD', 'R23', 'R23SD']: aO3[i] = O3AbsModel().o3_absorption(t[i], p[i], frq, o3n[i], amu) adry[i] = aO2[i] + aN2[i] + aO3[i] diff --git a/pyrtlib/tests/data/tb_tot_ground_ros03_19sd_21sd_era5.csv b/pyrtlib/tests/data/tb_tot_ground_ros03_19sd_21sd_era5.csv index cc586aa9..a012474e 100644 --- a/pyrtlib/tests/data/tb_tot_ground_ros03_19sd_21sd_era5.csv +++ b/pyrtlib/tests/data/tb_tot_ground_ros03_19sd_21sd_era5.csv @@ -1,182 +1,182 @@ -,ros03,ros19sd,rose21sd_era5 -0,38.12960242898641,38.58977014360568,31.70676448590102 -1,53.631602226928855,54.91734457369989,45.29089620392229 -2,68.6633259373816,70.73732614793848,58.93820161771155 -3,68.99693833348464,70.45411130439788,58.42444938746749 -4,58.55227935244471,59.01570578736212,48.44816331237986 -5,48.30725024500511,48.21486514261613,39.51872698128005 -6,41.06485867131381,40.73624659525353,33.55379340115662 -7,36.420987945196636,35.998760296787644,29.85918968771724 -8,33.57133631501517,33.11036461875976,27.651160606182124 -9,31.914346061511605,31.43396258600618,26.407825335982277 -10,31.064451390446468,30.57024688443505,25.811601011887443 -11,30.78221985928195,30.27452006584521,25.67083182610757 -12,30.91870971517769,30.395853760405977,25.868632430847693 -13,31.380653027358967,30.84026331277366,26.333196707449112 -14,32.109887244599335,31.54934693855165,27.02094219889021 -15,33.071337996842544,32.48794668078936,27.906887030235264 -16,34.246038256299435,33.63703159218405,28.97920374092387 -17,35.62717703020167,34.98968417607817,30.236209510860466 -18,37.21807732047087,36.54904339826257,31.685026208667026 -19,39.03152998152404,38.32760995404279,33.34122103367209 -20,41.09023651480447,40.347655272404886,35.22953663016915 -21,43.42834895546511,42.64271298761295,37.3854424099477 -22,46.094313851378836,45.26034805127533,39.85833532156544 -23,49.15549906041627,48.26666302393341,42.71560960798814 -24,52.70550208745232,51.75340526860158,46.0497043421092 -25,56.87577805032862,55.84924508279947,49.98968772216583 -26,61.85468474040296,60.73818380479031,54.71800739600288 -27,67.92015821846397,66.69102392213392,60.50014276434323 -28,75.499964019793,74.1234446016528,67.73801737389888 -29,85.29678473597586,83.720400510761,77.07698717259537 -30,98.61481527361853,96.85230983015312,89.75174722408049 -31,118.7445843823721,117.53940861776104,109.47152305189968 -32,155.56552219031454,154.09746980010854,144.65160542538365 -33,214.81756065339312,214.17593411821468,204.9727767589885 -34,272.6660426929382,272.6868510455636,267.7179971252937 -35,292.88294200340033,292.9027733371299,290.44667230437136 -36,296.84184804223224,296.8073828405693,294.3365991974703 -37,298.239713786382,298.2000248527692,295.5962758794672 -38,298.7866853055752,298.75537622360724,296.11221656402853 -39,298.9901388006028,298.9609720348795,296.31667935905983 -40,299.12782560105313,299.09818078712664,296.4778999404937 -41,299.17846427488956,299.15094241855024,296.5589382846052 -42,299.07902249919107,299.0480576631749,296.431759739947 -43,298.48434479268576,298.4591564224707,295.8119048178414 -44,296.65089188055157,296.66317537769874,294.10068250988786 -45,291.0325758490955,291.12396946251243,288.04496015180075 -46,263.14972556509787,263.0673823764544,255.46591701302933 -47,208.52648521361246,207.4835252310555,195.89065002459276 -48,163.25988110077614,162.0056035769513,150.41313060019402 -49,137.63170418702094,136.04325891165726,125.15950570190644 -50,123.32895817660018,121.40648606180194,110.69700282146164 -51,113.9626563010715,112.2208184533206,101.2927235314244 -52,107.4979578611851,105.88322336839067,94.6174117564576 -53,102.94799641240232,101.41170760390384,89.77288146169201 -54,99.73715829648087,98.24822489961142,86.22960227061027 -55,97.49962871880304,96.03796862273585,83.64355137113596 -56,95.99043915988236,94.5426142929962,81.78035496292325 -57,95.0393020973395,93.59602017740151,80.4749848213756 -58,94.5243498467968,93.079008509195,79.6081857681875 -59,94.3562657117507,92.90407103457908,79.09190259255716 -60,94.46826165402953,93.00567386912196,78.85990998982597 -61,94.80952751701079,93.3339004925896,78.86159960830007 -62,95.3408224253095,93.85016219552436,79.05775422017356 -63,96.03144103790166,94.52423989019448,79.41761040134732 -64,96.85707948617805,95.3321994187302,79.91677810661304 -65,97.79830861252346,96.25489788347052,80.5357428562324 -66,98.83946469483011,97.27689706586428,81.25877199687467 -67,99.96783296486285,98.38566283469645,82.07310669349046 -68,101.17304024409307,99.57096912301564,82.96835762537957 -69,102.44659962321855,100.8244508516806,83.93605373239954 -70,103.78156775945926,102.1392673297152,84.96929988969987 -71,105.17228734308542,103.50984932683173,86.06252122135267 -72,106.61419562315108,104.93171138498674,87.21127391955231 -73,108.10368587779442,106.40131693267082,88.41211047726884 -74,109.63801322507976,107.91598255152144,89.66248670587049 -75,111.21523979948103,109.47382939711758,90.96071689216072 -76,112.83421753237485,111.07376627606229,92.30596422039004 -77,114.49460998828098,112.71551337509575,93.6982749235423 -78,116.19695836694281,114.3996693957225,95.1386612577151 -79,117.94280145112994,116.12783452017368,96.6292448794916 -80,119.73486578109076,117.9028023551844,98.1734795634155 -81,121.57735211803761,119.72884949899873,99.77648315148632 -82,123.4763580122751,121.6121628889712,101.44552561958672 -83,125.44050345713634,123.56147023925604,103.190747383898 -84,127.4818602705993,125.5889782886388,105.02622693519736 -85,129.61735810169773,127.71179078793756,106.97159329896635 -86,131.87095331113142,129.95409579890733,109.0545126451464 -87,134.27705910211563,132.35062457449166,111.31462048727737 -88,136.8861303607713,134.95228264193253,113.80992472593948 -89,139.7740660843502,137.83562906617286,116.62758904267928 -90,143.05865448886445,141.11945384936482,119.90280365598028 -91,146.92959971416033,144.9950414736216,123.8532716031325 -92,151.7060351768034,149.7841268405058,128.84535194577072 -93,157.9523850003084,156.05562291631793,135.52760167215288 -94,166.72272649896468,164.87176799395448,145.11352043602523 -95,180.08309006309523,178.3143761612623,159.99070116273973 -96,202.0711505646465,200.4550413159357,184.8664930364608 -97,238.45909907532916,237.16276778336217,226.68818020416063 -98,279.8821981194895,279.33362120100725,275.42124392358863 -99,287.56075218778517,287.28881740667254,284.65499479477404 -100,261.71542383428954,260.72390479311736,253.0580447548965 -101,221.54595757208025,220.0433770417861,205.19048195148625 -102,196.8634731164369,195.1299566858534,176.0374181853322 -103,183.97874722044165,182.11761458655485,160.7172337507271 -104,177.3396413662373,175.40153716220544,152.64583899733688 -105,173.99238283733072,172.0053776972382,148.37767184094108 -106,172.47649013309737,170.4573121167468,146.22129459817216 -107,172.0417509731208,170.0010487650908,145.31136457887834 -108,172.28053314973033,170.22553366971397,145.1789284285209 -109,172.95900317808307,170.8949237500092,145.5554918807126 -110,173.93647506318962,171.8673110182365,146.27976273870368 -111,175.12470870919043,173.05368944624655,147.25072464380244 -112,176.46642614639956,174.39629472088595,148.40290114906242 -113,177.92336693479984,175.85655557497256,149.69262355278465 -114,179.4693611655339,177.40810607146,151.0900807813505 -115,181.0861810074638,179.0326009988416,152.57456141470274 -116,182.76097143602314,180.71712317197745,154.1315097551776 -117,184.48461434172518,182.4525328970175,155.7506532195955 -118,186.25066119108394,184.2323915747112,157.42478268336822 -119,188.05462352972037,186.05224560320923,159.14894238041157 -120,189.89349327997596,187.9091421496269,160.91988361801444 -121,191.76541334720997,189.801299024054,162.73569277582772 -122,193.66945257957036,191.72787619329867,164.59553733584474 -123,195.60545066590626,193.6888208326812,166.4994939080295 -124,197.57391350597211,195.68476219729803,168.44843479850428 -125,199.57594515326784,197.716943628537,170.44395767720147 -126,201.61320712744165,199.78718218888105,172.4883481127904 -127,203.68789884956442,201.8978495863744,174.58456820380948 -128,205.80275491668866,204.05187001660587,176.73626687883808 -129,207.96184367827192,206.2527318426582,178.94780905093938 -130,210.17202872348858,208.50167051834504,181.22432192749923 -131,212.43773436825788,210.80874208252973,183.57090872151295 -132,214.76344862730085,213.17674112277896,185.9943816886424 -133,217.15210281870594,215.61172738439708,188.50349381538496 -134,219.6095310047119,218.11537964426915,191.1071464689872 -135,222.14271767577063,220.70497416841792,193.81436788454928 -136,224.759811701582,223.38439550342787,196.63863326992856 -137,227.46957516721253,226.1595831455856,199.591958115681 -138,230.28176208414132,229.04718823120467,202.6889974765858 -139,233.20734520527785,232.05528917402435,205.94618593521164 -140,236.2580241208943,235.19575742187132,209.38153606193 -141,239.44607078067492,238.4788977790691,213.0154829717625 -142,242.78439018870654,241.92125826121804,216.8710758698131 -143,246.28545491390088,245.53313942521044,220.9702766579323 -144,249.96089682154488,249.32421215852312,225.33905094328705 -145,253.81986546084835,253.30433927779512,230.00069206729447 -146,257.86708316679113,257.4746909794348,234.9781831385944 -147,262.0998480897132,261.83079568925393,240.2886440510635 -148,266.5036196842347,266.35332234828223,245.9391558760529 -149,271.0462388040278,271.0055472181177,251.91906985551043 -150,275.6703396608858,275.72335282205336,258.1897899701302 -151,280.2846873241048,280.40870334370555,264.66967519584824 -152,284.7564210935207,284.9220814012993,271.2161394762901 -153,288.9089030368886,289.0826833041407,277.6081669676915 -154,292.534128422259,292.68401950808305,283.53900193712644 -155,295.4314790457503,295.5353353845906,288.64000675431544 -156,297.478535111903,297.5319074200093,292.5647829887486 -157,298.70937164598973,298.7258274707327,295.1452735197668 -158,299.32653327426266,299.32634923394767,296.54611026224705 -159,299.5886251073669,299.58535369132363,297.2213697897999 -160,299.67836683907575,299.67661370148863,297.59629946911826 -161,299.6977681856997,299.69738733719794,297.84101383295206 -162,299.69985026201397,299.6998084307497,297.9815000398348 -163,299.6999773261411,299.69996924280247,298.03499889854646 -164,299.699963262145,299.6999485871899,298.0230008891595 -165,299.69962422238723,299.6994986589722,297.94276277841004 -166,299.6954213685952,299.6944875879516,297.7787883215131 -167,299.668289825578,299.66491393131247,297.52744921829816 -168,299.57359543749175,299.56701437623656,297.16592708918853 -169,299.34637464654924,299.3383686782236,296.5671858943684 -170,298.8962493794775,298.89155183485576,295.50151269886084 -171,298.12680285769943,298.13117833987303,293.7918992286476 -172,296.99083371228477,297.0061540848697,291.4312007392004 -173,295.5176770532094,295.53850690013513,288.5602388828923 -174,293.7943597957042,293.80856600756084,285.3837626612161 -175,291.9284821538874,291.9204006337221,282.0988155734645 -176,290.02111063826857,289.97493755705506,278.86250067199194 -177,288.15300628312326,288.0549899365626,275.7841340188108 -178,286.3815088223643,286.221195902799,272.9308966305671 -179,284.74297340795204,284.5131663500106,270.33790679546 -180,283.25718641467284,282.954021865568,268.01748815886094 +,Unnamed: 0,ros03,ros19sd,rose21sd_era5,r23sd +0,0,38.12960242898641,38.58977014360568,31.70676448590102,40.100942579594985 +1,1,53.631602226928855,54.91734457369989,45.29089620392229,56.80997130624406 +2,2,68.6633259373816,70.73732614793848,58.93820161771155,73.73817007547433 +3,3,68.99693833348464,70.45411130439788,58.42444938746749,72.84859281811453 +4,4,58.55227935244471,59.01570578736212,48.44816331237986,60.44953556554906 +5,5,48.30725024500511,48.21486514261613,39.51872698128005,49.51280317894791 +6,6,41.06485867131381,40.73624659525353,33.55379340115662,42.18698040924202 +7,7,36.42098794519664,35.998760296787644,29.85918968771724,37.61552780837567 +8,8,33.57133631501517,33.11036461875976,27.651160606182124,34.852237669805525 +9,9,31.914346061511605,31.43396258600618,26.40782533598228,33.264167672366426 +10,10,31.064451390446468,30.57024688443505,25.811601011887443,32.46365224016742 +11,11,30.78221985928195,30.27452006584521,25.67083182610757,32.215130250082574 +12,12,30.91870971517769,30.395853760405977,25.868632430847693,32.373738019538834 +13,13,31.380653027358967,30.84026331277366,26.333196707449112,32.849394699617314 +14,14,32.109887244599335,31.54934693855165,27.02094219889021,33.58623230101076 +15,15,33.071337996842544,32.48794668078936,27.906887030235264,34.55083698845902 +16,16,34.246038256299435,33.63703159218405,28.97920374092387,35.725407856374304 +17,17,35.62717703020167,34.98968417607817,30.236209510860466,37.10392076128171 +18,18,37.21807732047087,36.54904339826257,31.685026208667026,38.69035389199941 +19,19,39.03152998152404,38.32760995404279,33.34122103367209,40.49786104093632 +20,20,41.09023651480447,40.347655272404886,35.22953663016915,42.549168015259916 +21,21,43.42834895546511,42.64271298761295,37.3854424099477,44.87861444938389 +22,22,46.09431385137884,45.26034805127533,39.85833532156544,47.5339008654452 +23,23,49.15549906041627,48.26666302393341,42.71560960798814,50.58159356258784 +24,24,52.70550208745232,51.75340526860158,46.0497043421092,54.113653359211426 +25,25,56.87577805032862,55.84924508279947,49.98968772216583,58.25721009530578 +26,26,61.85468474040296,60.73818380479031,54.71800739600288,63.1938580194669 +27,27,67.92015821846397,66.69102392213392,60.50014276434323,69.18803316415219 +28,28,75.499964019793,74.1234446016528,67.73801737389888,76.63737213626153 +29,29,85.29678473597586,83.720400510761,77.07698717259537,86.18308741969287 +30,30,98.61481527361852,96.85230983015312,89.75174722408049,99.05170088410496 +31,31,118.7445843823721,117.53940861776104,109.47152305189968,118.88319322728313 +32,32,155.56552219031454,154.09746980010854,144.65160542538365,153.72583795634927 +33,33,214.81756065339312,214.17593411821468,204.9727767589885,212.23259876791798 +34,34,272.6660426929382,272.6868510455636,267.7179971252937,271.6227416179824 +35,35,292.8829420034004,292.9027733371299,290.44667230437136,292.86473019055734 +36,36,296.84184804223224,296.8073828405693,294.3365991974703,296.8766683018806 +37,37,298.239713786382,298.2000248527692,295.5962758794672,298.2490647891456 +38,38,298.7866853055752,298.75537622360724,296.11221656402853,298.77831665291893 +39,39,298.9901388006028,298.9609720348795,296.31667935905983,298.9728713606684 +40,40,299.12782560105313,299.09818078712664,296.4778999404937,299.1165998412373 +41,41,299.1784642748896,299.15094241855024,296.5589382846052,299.18336180872507 +42,42,299.07902249919107,299.0480576631749,296.431759739947,299.0758956454222 +43,43,298.48434479268576,298.4591564224707,295.8119048178414,298.4749006183608 +44,44,296.6508918805516,296.66317537769874,294.10068250988786,296.61986226128073 +45,45,291.0325758490955,291.12396946251243,288.04496015180075,290.6902585874886 +46,46,263.14972556509787,263.0673823764544,255.46591701302933,260.9711200055558 +47,47,208.5264852136125,207.4835252310555,195.8906500245928,205.46655975485191 +48,48,163.25988110077614,162.0056035769513,150.41313060019402,162.18436278032732 +49,49,137.63170418702094,136.04325891165726,125.15950570190644,137.92851551819638 +50,50,123.32895817660018,121.40648606180194,110.69700282146164,124.07142517352533 +51,51,113.9626563010715,112.2208184533206,101.2927235314244,115.13975646889165 +52,52,107.4979578611851,105.88322336839067,94.6174117564576,108.87657676159677 +53,53,102.94799641240232,101.41170760390384,89.77288146169201,104.40684069908725 +54,54,99.73715829648089,98.24822489961142,86.22960227061027,101.21407279969169 +55,55,97.49962871880304,96.03796862273585,83.64355137113596,98.96178311845549 +56,56,95.99043915988236,94.5426142929962,81.78035496292325,97.42042249792141 +57,57,95.0393020973395,93.59602017740151,80.4749848213756,96.4280359600728 +58,58,94.5243498467968,93.079008509195,79.6081857681875,95.86740719128433 +59,59,94.3562657117507,92.90407103457908,79.09190259255716,95.65186133993049 +60,60,94.46826165402952,93.00567386912196,78.85990998982597,95.71612007021055 +61,61,94.8095275170108,93.3339004925896,78.86159960830007,96.01022825277794 +62,62,95.3408224253095,93.85016219552436,79.05775422017356,96.49541708784149 +63,63,96.03144103790166,94.52423989019448,79.41761040134732,97.14122659708912 +64,64,96.85707948617804,95.3321994187302,79.91677810661304,97.92346247979893 +65,65,97.79830861252346,96.25489788347052,80.5357428562324,98.82272633604443 +66,66,98.83946469483011,97.27689706586428,81.25877199687467,99.82334000093007 +67,67,99.96783296486284,98.38566283469645,82.07310669349046,100.91254996200948 +68,68,101.17304024409307,99.57096912301564,82.96835762537957,102.07993294703498 +69,69,102.44659962321856,100.8244508516806,83.93605373239954,103.3169486663501 +70,70,103.78156775945926,102.1392673297152,84.96929988969987,104.61660215234146 +71,71,105.17228734308542,103.50984932683173,86.06252122135267,105.97318940932375 +72,72,106.61419562315108,104.93171138498674,87.21127391955231,107.38210822828701 +73,73,108.10368587779442,106.40131693267082,88.41211047726884,108.83972189995804 +74,74,109.63801322507976,107.91598255152144,89.66248670587049,110.34326231268449 +75,75,111.21523979948104,109.47382939711758,90.96071689216072,111.8907803481297 +76,76,112.83421753237484,111.07376627606229,92.30596422039004,113.4811282736312 +77,77,114.49460998828098,112.71551337509575,93.6982749235423,115.11398289557808 +78,78,116.1969583669428,114.3996693957225,95.1386612577151,116.78991327222923 +79,79,117.94280145112994,116.12783452017368,96.6292448794916,118.51050294579572 +80,80,119.73486578109076,117.9028023551844,98.1734795634155,120.2785432016471 +81,81,121.5773521180376,119.72884949899873,99.77648315148632,122.09832371745927 +82,82,123.4763580122751,121.6121628889712,101.44552561958672,123.97606085729386 +83,83,125.44050345713634,123.56147023925604,103.190747383898,125.92053113867438 +84,84,127.4818602705993,125.5889782886388,105.02622693519736,127.94401142415148 +85,85,129.61735810169773,127.71179078793756,106.97159329896635,130.0636998945896 +86,86,131.87095331113142,129.95409579890733,109.0545126451464,132.30390576742343 +87,87,134.27705910211563,132.35062457449166,111.31462048727737,134.69950840903155 +88,88,136.8861303607713,134.95228264193253,113.80992472593948,137.3015819982694 +89,89,139.7740660843502,137.83562906617286,116.62758904267928,140.18685057230675 +90,90,143.05865448886445,141.11945384936482,119.90280365598028,143.4741951000913 +91,91,146.92959971416033,144.9950414736216,123.8532716031325,147.35472609029148 +92,92,151.7060351768034,149.7841268405058,128.84535194577072,152.1492164245416 +93,93,157.9523850003084,156.05562291631793,135.52760167215288,158.42335865060872 +94,94,166.72272649896468,164.87176799395448,145.11352043602523,167.22949428095498 +95,95,180.08309006309523,178.3143761612623,159.99070116273973,180.61866913179705 +96,96,202.0711505646465,200.4550413159357,184.8664930364608,202.5640768897396 +97,97,238.4590990753292,237.16276778336217,226.68818020416063,238.65629516400978 +98,98,279.8821981194895,279.33362120100725,275.42124392358863,279.68926611145696 +99,99,287.5607521877852,287.28881740667254,284.65499479477404,287.370172369939 +100,100,261.71542383428954,260.72390479311736,253.0580447548965,261.28422771830185 +101,101,221.54595757208023,220.0433770417861,205.19048195148625,221.20491076076226 +102,102,196.8634731164369,195.1299566858534,176.0374181853322,196.56831844693048 +103,103,183.97874722044165,182.11761458655485,160.7172337507271,183.6815727891012 +104,104,177.3396413662373,175.40153716220544,152.64583899733688,177.03146323390555 +105,105,173.99238283733072,172.0053776972382,148.37767184094108,173.6735792740889 +106,106,172.47649013309737,170.4573121167468,146.22129459817216,172.14852071808025 +107,107,172.0417509731208,170.0010487650908,145.31136457887834,171.7057087815029 +108,108,172.28053314973033,170.22553366971397,145.1789284285209,171.93711629004764 +109,109,172.9590031780831,170.8949237500092,145.5554918807126,172.6086815066785 +110,110,173.93647506318962,171.8673110182365,146.27976273870368,173.579626275146 +111,111,175.12470870919043,173.05368944624655,147.25072464380244,174.76170177184116 +112,112,176.46642614639956,174.39629472088595,148.40290114906242,176.09767155447827 +113,113,177.92336693479984,175.85655557497256,149.69262355278465,177.549343150587 +114,114,179.4693611655339,177.40810607146,151.0900807813505,179.09062905876678 +115,115,181.0861810074638,179.0326009988416,152.57456141470274,180.70339158555308 +116,116,182.76097143602317,180.71712317197745,154.1315097551776,182.37487018111477 +117,117,184.4846143417252,182.4525328970175,155.7506532195955,184.09604394058724 +118,118,186.25066119108396,184.2323915747112,157.42478268336822,185.86056434792226 +119,119,188.0546235297204,186.05224560320923,159.14894238041157,187.6640450942242 +120,120,189.893493279976,187.9091421496269,160.91988361801444,189.50358314248416 +121,121,191.76541334721,189.801299024054,162.73569277582772,191.37743065023776 +122,122,193.6694525795704,191.72787619329867,164.59553733584474,193.28477001332212 +123,123,195.60545066590623,193.6888208326812,166.4994939080295,195.22555976705252 +124,124,197.5739135059721,195.68476219729803,168.44843479850428,197.20043076276005 +125,125,199.57594515326784,197.716943628537,170.44395767720147,199.2106188902178 +126,126,201.61320712744163,199.78718218888105,172.4883481127904,201.25792511217685 +127,127,203.6878988495644,201.8978495863744,174.58456820380948,203.34469652602698 +128,128,205.80275491668863,204.05187001660587,176.73626687883808,205.47382411684566 +129,129,207.96184367827192,206.2527318426582,178.94780905093938,207.64875414660088 +130,130,210.17202872348855,208.50167051834504,181.22432192749923,209.87117645855446 +131,131,212.43773436825788,210.80874208252973,183.57090872151292,212.15011563095686 +132,132,214.76344862730085,213.17674112277896,185.9943816886424,214.4887622415526 +133,133,217.15210281870597,215.61172738439708,188.50349381538496,216.8930923626637 +134,134,219.6095310047119,218.11537964426915,191.1071464689872,219.36560044509733 +135,135,222.14271767577063,220.70497416841792,193.81436788454928,221.92170404918107 +136,136,224.759811701582,223.38439550342787,196.63863326992856,224.56600466975013 +137,137,227.46957516721253,226.1595831455856,199.591958115681,227.30490161370602 +138,138,230.2817620841413,229.04718823120467,202.6889974765858,230.1537307808728 +139,139,233.20734520527785,232.05528917402435,205.94618593521164,233.12094770588698 +140,140,236.2580241208943,235.1957574218713,209.38153606193,236.21822478699372 +141,141,239.4460707806749,238.4788977790691,213.0154829717625,239.45601184438453 +142,142,242.7843901887065,241.92125826121804,216.8710758698131,242.84992319330462 +143,143,246.28545491390088,245.53313942521044,220.9702766579323,246.40956195372144 +144,144,249.96089682154488,249.32421215852312,225.33905094328705,250.14688353959625 +145,145,253.81986546084835,253.30433927779512,230.00069206729447,254.06882048814234 +146,146,257.86708316679113,257.4746909794348,234.9781831385944,258.17738641980714 +147,147,262.0998480897132,261.83079568925393,240.2886440510635,262.46782926387897 +148,148,266.5036196842347,266.35332234828223,245.9391558760529,266.9209879257395 +149,149,271.0462388040278,271.0055472181177,251.91906985551043,271.50023447633464 +150,150,275.6703396608858,275.72335282205336,258.1897899701302,276.14256567122226 +151,151,280.2846873241048,280.40870334370555,264.66967519584824,280.75082721352015 +152,152,284.7564210935207,284.9220814012993,271.2161394762901,285.1876782135951 +153,153,288.9089030368886,289.0826833041407,277.6081669676915,289.2754177808129 +154,154,292.534128422259,292.68401950808305,283.53900193712644,292.81147157425784 +155,155,295.4314790457503,295.5353353845906,288.64000675431544,295.60948335982823 +156,156,297.478535111903,297.5319074200093,292.5647829887486,297.5681481117698 +157,157,298.70937164598973,298.7258274707327,295.1452735197668,298.740002265278 +158,158,299.32653327426266,299.32634923394767,296.54611026224705,299.3306632244631 +159,159,299.5886251073669,299.58535369132363,297.2213697897999,299.5863227713917 +160,160,299.6783668390757,299.67661370148863,297.59629946911826,299.6767153091908 +161,161,299.6977681856997,299.69738733719794,297.84101383295206,299.69737830909594 +162,162,299.699850262014,299.6998084307497,297.9815000398348,299.6998056845282 +163,163,299.6999773261411,299.69996924280247,298.03499889854646,299.6999687469896 +164,164,299.699963262145,299.6999485871899,298.0230008891595,299.69994843634765 +165,165,299.69962422238723,299.6994986589722,297.94276277841004,299.69950217063695 +166,166,299.6954213685952,299.6944875879516,297.7787883215131,299.6945404959949 +167,167,299.668289825578,299.66491393131247,297.52744921829816,299.66525967387616 +168,168,299.57359543749175,299.56701437623656,297.16592708918853,299.5683768107973 +169,169,299.34637464654924,299.3383686782236,296.5671858943684,299.3425376699111 +170,170,298.8962493794775,298.89155183485576,295.50151269886084,298.90231600845397 +171,171,298.12680285769943,298.13117833987303,293.7918992286476,298.1544554542835 +172,172,296.9908337122848,297.0061540848697,291.4312007392004,297.04872421201384 +173,173,295.5176770532094,295.53850690013513,288.5602388828923,295.6063457640216 +174,174,293.7943597957042,293.80856600756084,285.3837626612161,293.90577377802265 +175,175,291.9284821538874,291.9204006337221,282.0988155734645,292.0489562382794 +176,176,290.02111063826857,289.97493755705506,278.86250067199194,290.1349173272992 +177,177,288.15300628312326,288.0549899365626,275.7841340188108,288.2451852155823 +178,178,286.3815088223643,286.221195902799,272.9308966305671,286.43938840637304 +179,179,284.74297340795204,284.5131663500106,270.33790679546,284.75660177337255 +180,180,283.25718641467284,282.954021865568,268.01748815886094,283.2197900037359 diff --git a/pyrtlib/tests/data/tb_tot_ros03_16_17_18_19_19sd_20_20sd_98_mak11_21sd.csv b/pyrtlib/tests/data/tb_tot_ros03_16_17_18_19_19sd_20_20sd_98_mak11_21sd.csv index 7892433a..9d80fee6 100644 --- a/pyrtlib/tests/data/tb_tot_ros03_16_17_18_19_19sd_20_20sd_98_mak11_21sd.csv +++ b/pyrtlib/tests/data/tb_tot_ros03_16_17_18_19_19sd_20_20sd_98_mak11_21sd.csv @@ -1,182 +1,182 @@ -Unnamed: 0,ros03,ros16,ros17,ros19,ros19sd,ros20,ros20sd,ros18,mak11,rosen,ros21sd,rayt_37_19sd -0,298.10838309634505,298.10996873107524,298.1118782804224,298.09606061365685,298.0953614263866,298.09495254382085,298.10814927336685,298.09626638301614,297.391837790353,298.1063909200954,298.10815559561087,297.09043291803306 -1,297.29419091155967,297.2456301324807,297.24594239686934,297.2281270105679,297.2406353508394,297.2268290930972,297.23939353543824,297.22834506911363,296.186240161788,297.2942840277885,297.2393456504609,295.74355448629103 -2,296.2955346241682,296.1535169648351,296.1517428813754,296.1477730200307,296.1896063528624,296.1462910585942,296.1164102100876,296.14800185871394,294.748245217739,296.2981431390718,296.11645701569813,294.1140349470342 -3,296.4163354405162,296.3402405942239,296.3397768188032,296.3346575022148,296.36235467706285,296.3328994807589,296.33261979297566,296.3349085638539,294.953482605179,296.41818955658897,296.3329122750313,294.3866400422129 -4,297.15139874042865,297.15844084227786,297.16105316183746,297.14404732111547,297.1479474162035,297.14193098321044,297.16273266612774,297.14433011126107,296.027798821902,297.15068271766467,297.16302810802244,295.60295172053674 -5,297.68307854343,297.7154253722828,297.72058585666286,297.7024533842302,297.6980348160805,297.6999594997964,297.714378487644,297.7027685908482,296.81041972369,297.6802729592638,297.71463166679155,296.4618509294365 -6,297.99499309485407,298.03031840229755,298.0375139687284,298.021701346934,298.0155999451597,298.0188203699366,298.0259028708181,298.02204794866094,297.275643863032,297.99063602604514,298.02613259440227,296.9621194347186 -7,298.1681623163257,298.20053473824163,298.2095012692732,298.1962448316429,298.1904685974497,298.1929628378,298.195729483292,298.1966221960331,297.53867643906,298.16256033831485,298.195951638453,297.2390740154711 -8,298.2580577178716,298.28652056870334,298.2971646635907,298.2860007080316,298.2810252788935,298.2822988262843,298.2828832200593,298.2864087089872,297.6799338071,298.251345702536,298.2831069687278,297.38266451281686 -9,298.2959921709582,298.32087216478845,298.333204888664,298.32364334639834,298.3194934969742,298.31949890917423,298.3190661467757,298.3240821913868,297.745347553335,298.2881963651297,298.31929666525406,297.44325892753415 -10,298.29927553671433,298.3211257739866,298.335226697341,298.3268788112886,298.3234642889092,298.3222662646449,298.32141736998113,298.3273488989377,297.760551820362,298.2903499147094,298.321657730713,297.44862262465136 -11,298.2775921293227,298.2969152554344,298.3129151140422,298.3054922756547,298.30270782958087,298.30038378583254,298.2994259227285,298.3059941055059,297.74004768715,298.267436433196,298.29967807502896,297.4142834346269 -12,298.23638697029213,298.2535808379744,298.2716544130614,298.26494483928803,298.2626973766584,298.25931075561806,298.25840065888457,298.2654789557976,297.692133204799,298.2248541679933,298.25866592551347,297.3489880472207 -13,298.1786258956016,298.19398877735085,298.2143536401786,298.208200877525,298.2064143506922,298.20201020439504,298.2012268534206,298.20876783327327,297.62148932374,298.16552332184506,298.2015061872791,297.2575285435866 -14,298.1057180725214,298.1194662083296,298.1423853081835,298.1366722558929,298.13528617477243,298.1298932539341,298.12927788722743,298.1372725851003,297.530548373651,298.0908042859652,298.1295720080746,297.1422229472098 -15,298.0180010055617,298.0302855365856,298.056072762235,298.0507104742034,298.0496770387011,298.0433115480167,298.04287942928664,298.0513446710529,297.420224761264,298.0009791702063,298.043188898192,297.00369558776845 -16,297.9149832158367,297.92590370972675,297.9549322494439,297.94985219683355,297.9491335431994,297.94180325853165,297.94155924307216,297.95052069513724,297.290293934019,297.89549107247376,297.9418845026348,296.84127149983823 -17,297.795441295313,297.8050559862684,297.8377697243767,297.8329184399796,297.83248436267144,297.82419303749435,297.8241430643328,297.8336215917943,297.139563142737,297.77303727115617,297.8244844588214,296.65314074512423 -18,297.657416239223,297.6657498589366,297.70267839648653,297.69801374073927,297.6978398994553,297.6885923996003,297.688726887966,297.6987517916958,296.96590283805,297.6315607613303,297.6890846712841,296.43636594970843 -19,297.49812531488004,297.5051755845538,297.5469538290749,297.54244236824815,297.5425088952577,297.532317868051,297.53262938890185,297.54321542721993,296.766166889275,297.4681558316411,297.5330037223235,296.18676130606895 -20,297.3137863306777,297.3195303704597,297.36692407176605,297.3625392327468,297.36282964428733,297.351725008324,297.3522208027686,297.36334723296494,296.536003508371,297.27888378789066,297.35261174461004,295.8986416897102 -21,297.09933362592267,297.1037359862244,297.15767516295267,297.15339594660134,297.1538962730548,297.14193962738153,297.1426001141327,297.1542385941206,296.26953658937,297.0584770360273,297.1430076025936,295.5644149761099 -22,296.84798358064427,296.8510086043275,296.91263157730805,296.90844169251113,296.9091397554193,296.8964472858316,296.8972818324971,296.9093183961182,295.958871700084,296.7998876266336,296.8977056541044,295.1739607149431 -23,296.55057489141336,296.5522082181208,296.6229200169422,296.6188073553607,296.61969212876875,296.60647238068003,296.6074741849657,296.6197171288612,295.593343968804,296.49360281657897,296.6079139339044,294.7136946333524 -24,296.1945533056884,296.1948416953523,296.2763919956065,296.27234841456504,296.2734094097067,296.26002778487845,296.26117177812074,296.2732897372206,295.158363363648,296.126592932465,296.2616267929843,294.16514589430307 -25,295.7623693760132,295.76149734867374,295.8560847353003,295.85210616404777,295.85333276804056,295.84042596123373,295.8417243311264,295.8530767755859,294.633602347536,295.6806526433456,295.8421935983735,293.50274550360217 -26,295.2288546723639,295.2272970951093,295.3377079053455,295.3337948521181,295.33517552581384,295.32386416201507,295.3253070263821,295.3347914421007,293.990050513005,295.1296878729092,295.3257890404311,292.6902713283742 -27,294.5567175425294,294.55555617099503,294.6853448735478,294.68150351748704,294.68302469851653,294.67533286363255,294.6768868738929,294.6825212350228,293.1850070565,294.4350650400219,294.6773794117895,291.6748828997229 -28,293.6882772401578,293.6898832823857,293.843587438294,293.8398317030832,293.841476129876,293.8412318864568,293.84290484918336,293.8408633410523,292.152978908239,293.5370929871113,293.84340460208045,290.3764510742771 -29,292.5286866967078,292.5381447343758,292.72144120228427,292.7177968011699,292.71954061209334,292.73459417972447,292.7363631357414,292.71883130901347,290.787160297144,292.3377821629213,292.7368650507161,288.66625590018856 -30,290.9048067636244,290.9277921884233,291.14644779872225,291.1429623309587,291.14476857704585,291.1943932518437,291.196208553623,291.1439812765466,288.886866151353,290.658773823641,291.1967043407477,286.3068341778615 -31,288.39779359600607,288.3308186873732,288.57227422565006,288.56905926504885,288.57085304590004,288.70635193230567,288.7081596454757,288.5700225642797,285.852977255463,288.071908394665,288.7086316011202,282.5545805244408 -32,283.1244194595652,283.2505540356831,283.44195829196855,283.43927477517974,283.4408860607276,283.75946571996474,283.7611027154977,283.4400913255821,280.049276954556,282.70248261209605,283.7615095677048,275.4245217397141 -33,271.8772584122019,272.28897879175514,272.202096774936,272.20041502240866,272.20151656659465,272.7893434077958,272.7904797768632,272.2009224798139,267.921055447095,271.3635295655782,272.7907426831215,261.1913039728095 -34,251.06805831453727,251.95377041565143,251.42895732077383,251.4284491147361,251.42883170222944,252.10403905520903,252.1044427597529,251.42859070517017,246.681311447706,250.54346359569183,252.1045218639394,238.81132935864477 -35,227.763890003344,228.319176440742,228.11326940518907,228.1132275535245,228.1132700916658,228.32559783692471,228.3256414541948,228.1132350586277,223.744803496226,227.2937234452841,228.3256467263101,218.3521020065058 -36,209.30350448075413,209.363357159018,209.3788132537165,209.3788129883673,209.37881371586684,209.3189814677079,209.318982148795,209.37881277981256,208.917335017692,209.24460676256152,209.31898217486184,207.70326597477364 -37,228.5671391322418,228.52913877117288,228.54896709258185,228.54896703754105,228.54896702733976,228.57181547899808,228.5718154783821,228.54896708334832,233.228746162335,228.64329691106943,228.5718154783905,233.58254181613495 -38,206.9471890442297,206.8751874131501,206.91498840949785,206.9149884067044,206.91498839500505,206.81293502093112,206.81293502426712,206.91498839554416,208.990690109535,207.06227966740727,206.8129350243008,209.6918139482349 -39,212.46314086428723,212.43495734005995,212.37949392988,212.37949390407329,212.37949387294745,212.32026125034704,212.32026124439255,212.3794939081219,215.943823070952,212.6634506247005,212.32026124439253,216.8680733652269 -40,208.74326600725445,208.63593636860392,208.6848321248798,208.6848321093128,208.68483207825813,208.7518163422673,208.75181633483672,208.6848321053481,211.693185476408,208.9289434934348,208.75181633483672,212.62500796292593 -41,212.8637127488633,212.9207638566611,212.81757956912125,212.81757954241127,212.8175795109884,212.99452156052752,212.99452155436745,212.81757954741929,216.459445406252,213.068820544525,212.99452155436745,217.35730467312297 -42,209.07020787643827,209.0613821945476,209.1002347425742,209.10023472817,209.1002347011305,209.07276415118372,209.07276414591948,209.1002347237213,211.924749630432,209.25262884173287,209.07276414592272,212.9696142473339 -43,262.0134123882028,261.969637608599,261.96915889358723,261.9691588483841,261.9691588525841,261.96857284628925,261.9685728462793,261.9691588978021,260.327375808256,261.9785849567927,261.9685728462793,263.3606835881257 -44,214.72381040254848,214.6460714483264,214.78958733712287,214.7895846410772,214.78958987852369,214.6299519077183,214.6299569909236,214.78958464189583,212.726411046327,214.5504952803853,214.629957246135,210.12326071654536 -45,236.8442669186108,237.80810349259187,237.25750278440336,237.2573734949252,237.25753042245827,237.7874030815489,237.78757173825588,237.25741375759225,232.488860202832,236.1969956968224,237.78759300544263,226.27841987590784 -46,259.880661710031,260.7249420106452,260.401560551092,260.4005865252846,260.4016020510552,261.199410548892,261.20048960374845,260.4009502895425,255.320111123575,259.0952188542479,261.2006782484702,248.49202559013244 -47,275.4788104315164,275.792058043601,275.9462825668511,275.94390706803387,275.9462856711777,276.5325287453545,276.5349816126759,275.9448449520318,271.455960387185,274.7518812258609,276.5354523682501,265.9737437748669 -48,283.4001312228245,283.3866722571395,283.71311666812085,283.70969870583883,283.71310926407483,284.0228953328857,284.02634946149465,283.7110824553489,279.976924193834,282.7958996938727,284.0270304438852,275.88504687398967 -49,287.243015094639,287.1518240202364,287.48687891646074,287.4828492486395,287.4869032387026,287.63582349798213,287.63989586980813,287.48450576420885,284.286832111521,286.7508548414205,287.64070443281474,281.0759698823528 -50,289.38860325673977,289.3293114130024,289.6275377158319,289.623116597873,289.627616003522,289.7037990715702,289.70830466731525,289.62495548499885,286.784823426117,288.98319568429395,289.7091999970123,284.14770396793733 -51,290.8443388560112,290.7718588010266,291.0307344294492,291.0260230697652,291.0308768943075,291.0758766523122,291.0807320161736,291.0280026362427,288.437036668128,290.503888657492,291.0816956721535,286.21177155293265 -52,291.89205474986784,291.81546097064523,292.0413464569589,292.036396596068,292.04155826652266,292.07024779101994,292.0754089996293,292.03849552646415,289.629172507669,291.60177126286976,292.0764313311231,287.7224620141624 -53,292.6723133849844,292.5961898105012,292.79482252430154,292.7896677702617,292.79510662043884,292.8143262180744,292.81976376386547,292.7918720730799,290.517418878427,292.4217594133873,292.8208383567982,288.86214338960144 -54,293.26721401664673,293.1935657336577,293.3696471755585,293.3643108164813,293.3700051894407,293.38331224830176,293.3890050419111,293.3666106647122,291.193135753732,293.0487912256492,293.3901273773013,289.73964595467663 -55,293.728567417699,293.6581729725412,293.8154837477143,293.809982538498,293.8159164779135,293.82529802717505,293.83123040392474,293.81237074666257,291.714600866189,293.536602479606,293.83239718753293,290.4254133599933 -56,294.0907688330372,294.0238209029048,294.1653959452145,294.15974228089567,294.16590363725714,294.1725262650868,294.1786862269686,294.16221343030907,292.12087183172,293.92093522523726,294.1798949953296,290.9671788514017 -57,294.37752819643754,294.3139403822984,294.44222711062434,294.436430372105,294.4428096292741,294.44738427417343,294.4537623816224,294.438980267862,292.439081046573,294.2264666379351,294.4550112537049,291.3983864100903 -58,294.6056851150509,294.545243301556,294.6622294763856,294.6562969051715,294.66288641541945,294.66585882489323,294.6724474653073,294.658922221981,292.688619869914,294.47074676396846,294.67373497883995,291.74310172374925 -59,294.7874972237434,294.7299357653598,294.8372491018916,294.831186389799,294.83797985582805,294.8396354386116,294.8464283264136,294.83388443225834,292.883676214591,294.66656542877934,294.84775332628413,292.0190304058444 -60,294.9320735234023,294.8771136359402,294.97609856855786,294.9699102670831,294.97690238027144,294.9774264093335,294.9844182342584,294.9726788025183,293.034838900646,294.8234372344276,294.98577979430445,292.23944706247266 -61,295.0463033996673,294.99367262558417,295.0854488149028,295.07913862663827,295.0863248075837,295.0858381953998,295.0930243688096,295.08197576549287,293.150146425243,294.94856605887094,295.0944217356557,292.41446669358606 -62,295.1354776382236,295.0849181027425,295.1704264648198,295.16399745541213,295.1713736635135,295.1699548430548,295.177331310807,295.1669015637368,293.23579109445,295.0474892326031,295.1787638627653,292.55190672929797 -63,295.2037123978683,295.15498470494146,295.23502223472246,295.22847699021924,295.2360395807455,295.23373820843267,295.2413013099053,295.231446624276,293.296604562031,295.1245195693775,295.2427685262272,292.6578824588407 -64,295.25424582033816,295.2071296096872,295.282377023467,295.2757177692943,295.2834633838671,295.2803090916192,295.28805545131064,295.2787516256767,293.336397608896,295.18305369714074,295.28955688885367,292.73722786396786 -65,295.28964896701626,295.2439421375398,295.3149855747073,295.3082142672672,295.3161397482572,295.31214781790214,295.3200742604126,295.3113111441954,293.358203398201,295.22579202728804,295.3216095355545,292.793797490814 -66,295.31197822135306,295.2674954703972,295.33484374667546,295.32796214519743,295.33606446728464,295.3312395458543,295.33934302780096,295.3311209117914,293.364453778865,295.25489777792376,295.3409118022035,292.8306861864142 -67,295.322886817686,295.2794579050594,295.34355635671454,295.33656608071675,295.34484229501146,295.3391808337661,295.34745838801365,295.3397856521168,293.357108735806,295.2721134861789,295.3490603571901,292.8503909455029 -68,295.32370726317936,295.28117521800056,295.34241692007487,295.3353194962559,295.3437666835027,295.33725852587384,295.345707214753,295.338598813041,293.337752355588,295.27884723770086,295.3473420987014,292.8549311920444 -69,295.31551261792185,295.27373200003007,295.33246695338283,295.32526385486733,295.3338790852221,295.3265084722419,295.335125347237,295.32860186552256,293.307664399112,295.2762369011397,295.3367928825673,292.84593864650435 -70,295.2991620865146,295.2579973547854,295.3145400983275,295.3072327784,295.31601307575573,295.3077592405572,295.3165413065219,295.31062842399166,293.26787373269,295.2651980508932,295.3182412396238,292.824724472775 -71,295.27533467147725,295.234658678965,295.28929468152,295.28188460355545,295.29082691287573,295.2816643738503,295.29060855618013,295.2853368038455,293.219197935808,295.2464594954508,295.2923406371436,292.7923290304629 -72,295.24455344940003,295.20424606774577,295.2572371792268,295.2497258365862,295.2588269929064,295.2487256149886,295.2578287283882,295.25323347705074,293.162272048849,295.220589096307,295.25959270548856,292.74955787640323 -73,295.20720216479987,295.16714903220446,295.2187382191614,295.21112712322605,295.2203838210617,295.2093086873523,295.21856740502864,295.21468904238566,293.097568436371,295.1880116671588,295.2203630187026,292.6970064202533 -74,295.1635351684079,295.1236265525744,295.17404210429345,295.16633290840883,295.175741670502,295.1636527873279,295.17306360942587,295.1699478849882,293.025408979212,295.1490200555047,295.17489058714983,292.6350749753536 -75,295.11368116420203,295.0738109323649,295.12327029711133,295.1154647724942,295.12502191643773,295.1118737613096,295.1214329812507,295.11913151182443,292.945970169124,295.1037799337313,295.1232910313481,292.56397421483325 -76,295.05764069809265,295.0177053902006,295.0664187849381,295.05851885064965,295.06822045211504,295.05396136238244,295.0636650296988,295.06223596978515,292.859281079171,295.05232828915393,295.0655538346106,292.48372161148205 -77,294.99527674847786,294.955174701498,295.00334863162567,294.99535638849085,295.0051982394027,294.9897696299366,294.999613507994,294.99912239923685,292.7652134941,294.99456502797057,295.00153271643893,292.39412745676873 -78,294.92629707951204,294.88592788983686,294.93376871846897,294.9256864894185,294.9356640477763,294.9189994377596,294.9289789530748,294.9294997782527,292.663463029425,294.9302364125494,294.930928170586,292.2947690578134 -79,294.85022607587564,294.80948988693865,294.85720760501925,294.84903798347665,294.8591463138357,294.8411701314727,294.85128031358346,294.8528967873624,292.553518057667,294.8589081186571,294.853259090724,292.1849484700723 -80,294.76636241616103,294.72515963152745,294.7729720072078,294.764717918109,294.7749516164017,294.7555777440576,294.7658131495501,294.76862029416145,292.434613366749,294.77992435452023,294.76782096684127,292.06363008469117 -81,294.6737168196986,294.6319481294783,294.68008545609734,294.6717502342902,294.68210333192377,294.6612333423753,294.6715879580682,294.67569402095745,292.305661600334,294.69234738838026,294.67362420624096,291.92934840688207 -82,294.5709212284332,294.52848790418864,294.5771986323287,294.5687861259032,294.57925196408473,294.5567729908136,294.5672401069276,294.5727688919997,292.165152918137,294.5948689996851,294.5693040604653,291.78007336789994 -83,294.4560943404055,294.412899642786,294.4624572810461,294.45397199086875,294.46454305187353,294.4403252313723,294.4508972713325,294.45799096702723,292.011007201888,294.48567898959703,294.4529880522648,291.61301221106845 -84,294.32664144989326,294.2825931153036,294.3333049349895,294.3247522077419,294.3354198827762,294.3093133122242,294.3199815986857,294.3288041919481,291.840353493693,294.36226902224115,294.3220981259452,291.4243142034359 -85,294.1789493258046,294.13396428772,294.1861825959415,294.1775688977853,294.18832315945724,294.1601543442115,294.170908769137,294.18165012191685,291.649194667505,294.2211329994655,294.1730496861012,291.20862229654347 -86,294.0079106648895,293.9619235216659,294.0160606204328,294.0073939352972,294.01822286283624,293.9877907186007,293.99861926542826,294.011499871443,291.431885632139,294.0572992127158,294.0007828336943,290.9583765900172 -87,293.8061617082864,293.7591397811781,293.8156882815426,293.8069787073076,293.8178677782113,293.78493947815184,293.7958275093983,293.81110377861086,291.180298566612,293.86357893429937,293.7980114489116,290.66270227801044 -88,293.5628192404416,293.5147895511454,293.574350583203,293.5656112523884,293.5765422512969,293.5408497436128,293.5517789044514,293.56974838745214,290.88244345642,293.6293192946396,293.553980145518,290.3055768347242 -89,293.2613066646474,293.2124052016023,293.27572845003425,293.2669770019541,293.2779262791546,293.2391655590385,293.25011202886793,293.27111692374893,290.520100735292,293.338252549953,293.25232631440707,289.86269578339113 -90,292.8754408632197,292.8260052257623,292.8940469228748,292.8853079523774,292.8962435303163,292.8540817509133,292.8650133409597,292.8894379974344,290.064575150225,292.96461682995954,292.8672345634418,289.2958781970357 -91,292.36200781287977,292.31275846503723,292.38676678859434,292.3780761073687,292.3889526474692,292.3430555579923,292.3539266672301,292.3821781744216,289.46867534308,292.46577885772774,292.3561457133754,288.54257001418387 -92,291.64576125444427,291.5981745127685,291.67981613553485,291.6712285833513,291.68197815538787,291.6320893795996,291.6428317530396,291.6752753798534,288.650599545239,291.7672923857377,291.64503438504886,287.49495674695805 -93,290.58673672357315,290.5438626489851,290.6354054682143,290.62701010742325,290.6375242034308,290.5836799373177,290.5941846761744,290.6309578646361,287.459090052418,290.7302452294044,290.59634741191974,285.95543924223847 -94,288.90217580600364,288.8705764375005,288.9751187009426,288.96707037517,288.97716241085305,288.9202770159915,288.9303571098152,288.9708437664236,285.591082062061,289.07299642795505,288.9324386795587,283.5337573860346 -95,285.9579840000782,285.952756862384,286.07431377080644,286.06690288002443,286.07622461193625,286.0197544263752,286.02906132761075,286.0703618629841,282.375245803025,286.1612450415364,286.03098385402933,279.38681297606854 -96,280.1337071124774,280.1925502631667,280.33473773813137,280.328546862275,280.3363969876031,280.2912398824979,280.2990726799973,280.33141320070547,276.130034932952,280.36541844855464,280.30067980684794,271.50270827858793 -97,266.6402765781018,266.85836174767167,267.01395264341755,267.0101118294352,267.01509751213644,267.0119711864594,267.01693973595343,267.01185592632646,262.065161550851,266.8409735554523,267.01793076354187,254.75207365072097 -98,231.294409559485,231.70702030218524,231.8011898565091,231.80057521291468,231.8014416623589,231.85574394874303,231.85660102479167,231.80083409539927,227.317974145462,231.26319502713,231.8567553117679,219.60444153176704 -99,208.90373927345345,208.85611626839795,208.85082038246043,208.85080642077563,208.8508281036441,208.7812003049092,208.78122110536395,208.85081155910925,209.998315240777,208.91863604622625,208.78122451919413,209.26331782319417 -100,253.223302508461,253.8778258606931,253.73402593331497,253.7318226051058,253.73475354279745,254.06077384403616,254.06372990128855,253.7327882299082,248.816680186615,252.8520802537336,254.06431390071955,240.01071955214724 -101,274.9183518646682,275.3534855468639,275.20384547844657,275.1985264284709,275.20525917106323,275.4762678986132,275.4830481651682,275.2009319679695,270.908407937473,274.62474365032665,275.48449033661785,264.86114010144524 -102,283.4048239564105,283.689717889827,283.5633515982337,283.5562517866144,283.5650600196573,283.76689794620154,283.77575434390616,283.5594857409632,279.788221278806,283.1730542120505,283.7777040295029,275.9813236343719 -103,287.2746048548521,287.47406317313335,287.3692154250404,287.36117118799376,287.37103703061223,287.5259528003629,287.5358626468456,287.36483739239543,283.870164711317,287.0848689036106,287.538094579332,281.35084477475516 -104,289.2812402916802,289.42888828360424,289.3405980330722,289.3320239672656,289.34244998335686,289.46614029017866,289.4766059748664,289.33592352239555,285.982820964503,289.1217587656816,289.4790084296849,284.2174863722161 -105,290.4207726064126,290.5345712877047,290.45879244333423,290.4499037966829,290.460631152512,290.56270532394416,290.5734686539329,290.4539322359009,287.171507731684,290.2841124358809,290.57598430548313,285.8749278726835 -106,291.10876633224484,291.19903026328814,291.1328366691536,291.1237552756506,291.134635301987,291.22108758942966,291.23200054139056,291.12785254094274,287.877131795087,290.9899578252314,291.23459776160166,286.88953157798784 -107,291.5402700432616,291.6133310536241,291.554628460625,291.545429703994,291.5563679069871,291.6310999346832,291.6420685267489,291.5495578088438,288.30785424639,291.43584357018926,291.644728582391,287.534491390894 -108,291.8157703315439,291.875735996221,291.8230033752088,291.81373807919994,291.8246682643228,291.8903301320154,291.90128855008817,291.8178706577788,288.571259198241,291.7232189477517,291.90399962229554,287.9529610447078 -109,291.99101420089795,292.0406722344148,291.9927811340179,291.9834864801043,291.9943579038606,292.05282015322007,292.0637179289479,291.9876035600305,288.727129547879,291.9084745747826,292.0664721322234,288.2252557713353 -110,292.0988281233371,292.1401408278556,292.0962363910899,292.08694172282287,292.09771225959844,292.1503395567574,292.1611347586478,292.09102693195115,288.810690910913,292.0248821070268,292.1639265591276,288.399042522522 -111,292.1595099097183,292.1939005718776,292.15332224871224,292.14405239520505,292.15468466785654,292.2025018149218,292.2131571974166,292.1480913751649,288.843725056549,292.0930563743817,292.21598252674306,288.50396630823076 -112,292.1861257817614,292.21465229292176,292.1768804829241,292.1676576872595,292.1781167368424,292.2219130042314,292.2323936905939,292.1716371361288,288.840246162206,292.1262951869344,292.23524942406624,288.5591964676595 -113,292.1873736435971,292.21083807215814,292.17545745303147,292.16630263204155,292.1765544278012,292.2169514604888,292.22722346184145,292.17020969141447,288.809573825937,292.13346949998214,292.230107097818,288.57754174226943 -114,292.1692084404884,292.1882288110575,292.154902614073,292.14583619089564,292.1558466155129,292.1933440124683,292.2033732191669,292.14965802870734,288.75807941055,292.12066622476794,292.2062826746713,288.56780194985896 -115,292.1358031077305,292.1508614970925,292.1193131010212,292.110355596547,292.1200897074768,292.15509646608143,292.16484791297563,292.11407910275045,288.690218534755,292.09216081690874,292.1677813886602,288.53616506705566 -116,292.09013761622697,292.1016135083916,292.07161302380246,292.0627855047963,292.0722069559559,292.10506370880955,292.11450099926225,292.0663970532848,288.609164289434,292.05101427467537,292.11745688726603,288.48706771682447 -117,292.0343713445463,292.0425651912392,292.01391951333414,292.0052439559191,292.0143145116156,292.0453096085728,292.0543944294537,292.00872920399746,288.517207367018,291.9994510660636,292.0573712484147,288.4237408809424 -118,291.97008510424183,291.9752351001911,291.94778041600057,291.9392800212094,291.94795911901247,291.9773405014388,291.98603218602346,291.94262372859725,288.416015789703,291.93910511263823,291.98902853373164,288.34856544602263 -119,291.8984416387969,291.9007361415585,291.87433220294787,291.86603168844886,291.87427602240103,291.90226016281525,291.9105152731739,291.8692175438037,288.306807353077,291.8711830968126,291.9135297907801,288.2633092031281 -120,291.820294401731,291.81988129533323,291.7944069827527,291.7863328675717,291.79409597166443,291.8208747298966,291.8286466386832,291.78934331385483,288.190466397164,291.79657571060204,291.83167798261223,288.16928807332437 -121,291.7362628511252,291.7332559461121,291.7086057845914,291.7007866794699,291.708018496089,291.7337644802537,291.7410029366935,291.7036027314029,288.067623609286,291.7159338567249,291.7440497556165,288.0674770798704 -122,291.6467843005448,291.6412687149748,291.6173501117947,291.60981702513646,291.61646344626416,291.64133427390306,291.64798494171,291.6124180731205,287.938712181921,291.629722424181,291.6510458568169,287.9585889240324 -123,291.55215047117963,291.54418638307214,291.5209174056851,291.5137040741827,291.5197064443151,291.5438482044749,291.5498521605457,291.51606766939364,287.804006235354,291.5382574444669,291.55292574780583,287.8431286577941 -124,291.45253295250376,291.4421584356981,291.4194660069931,291.4126092593026,291.41790382980133,291.44145394967137,291.44674713323445,291.41471087471785,287.663647813941,291.4417323836369,291.4498319066789,287.72143280470294 -125,291.3480006964276,291.3352337812088,291.3130521965561,291.30659235862225,291.31110968317927,291.3341993551755,291.3387119568708,291.3084051204786,287.517665200692,291.3402362545341,291.34180635219377,287.5936968577982 -126,291.23853157218184,291.2233716798218,291.201641374408,291.19562272562166,291.19928698608913,291.2220432717636,291.2256990517127,291.1971171092285,287.365984816276,291.23376568632284,291.22880140952,287.45999429690056 -127,291.12401932631894,291.1064481825112,291.08511469436087,291.07958598476694,291.0823142357991,291.1048619359181,291.1075774589729,291.0807294677414,287.208438144767,291.12223232478954,291.11068600717124,287.3202891742277 -128,291.0042768243714,290.9842589240916,290.963272010524,290.9582870506198,290.95998837058977,290.982451731484,290.9841355067444,290.95904371557816,287.044764626491,291.00546646236705,290.9872483415295,287.1744436445853 -129,290.87902370639426,290.85651879016933,290.83583166455065,290.8314500011493,290.83202453555026,290.8545288478889,290.8550803583335,290.8317800784236,286.874611103162,290.8832174596868,290.8581954232796,287.0222213468455 -130,290.7478308585367,290.7228587360797,290.70242739851494,290.6987150922935,290.6980975343933,290.7207261106741,290.720073612672,290.6985744315929,286.697528138149,290.75515127024806,290.72318698357213,286.863328775055 -131,290.6101602850363,290.58281984417687,290.5625636433722,290.5596330082268,290.55766310692417,290.5805870698536,290.5785746391506,290.5589336451449,286.512963329645,290.6208451821624,290.58168536446175,286.697249866192 -132,290.46527325274553,290.4358445422655,290.41559461970945,290.4136562772611,290.4102011215348,290.4335572690339,290.43005089899094,290.412214721627,286.320251563436,290.4797797231252,290.4331562807242,286.52347631302695 -133,290.31264299037514,290.2812647536513,290.26069451103155,290.2601276310412,290.2550402903545,290.2789724672336,290.2738239429139,290.2575949950634,286.118601997463,290.33132751972687,290.2769210109842,286.34134345682855 -134,290.1515374526764,290.118277549992,290.09715971182175,290.09826493122284,290.091542357241,290.1160434327846,290.1092255190144,290.09437434286195,285.907061472692,290.1747387464563,290.11230756038736,286.15020728526656 -135,289.9810762908799,289.94562730830773,289.92400577427753,289.92714212229225,289.9184661050272,289.94383676383586,289.93505020885664,289.92157233972705,285.684113577723,290.0091226317268,289.938116535144,285.948835247915 -136,289.8001124237589,289.76178366950666,289.7401058481237,289.7456654808744,289.7348394794485,289.7612510022432,289.7502969660481,289.7380667240967,285.448053400198,289.8334242966919,289.7533434407953,285.7362478863317 -137,289.60743780086494,289.5653772099263,289.5442312821535,289.5525442100783,289.53959801746123,289.566987086166,289.55385438867563,289.5426340892953,285.197378305013,289.6463959759662,289.55687520428035,285.5113830380726 -138,289.4016769405897,289.3550139982158,289.33487045972413,289.34625416059544,289.3307358070831,289.35951192050504,289.3437799781203,289.333768827094,284.93051209911,289.44656139497,289.3467709319898,285.27223017856426 -139,289.1810021025782,289.1291223325679,289.1102279617881,289.12499313624653,289.10664120913856,289.1370135208616,289.1184166872048,289.1096823879685,284.645662495313,289.2321717425481,289.1213718887741,285.0171981006207 -140,288.9433035659376,288.8857119817509,288.8680711587398,288.886625847649,288.8651512798365,288.89734579372924,288.87558997518585,288.86814998769376,284.340583888456,289.00115126400027,288.87850276668524,284.744155434843 -141,288.6862233022205,288.6223974027388,288.60600276648006,288.62861606551667,288.60399545220565,288.63796050505425,288.61296721639394,288.6067832821818,284.012607148755,288.75102999311554,288.6158319109901,284.45091549262463 -142,288.4066344705466,288.3361674784267,288.3209935710171,288.34794320718345,288.31958340307443,288.35582367472045,288.32703620863947,288.3225632149175,283.658415083396,288.47886052637466,288.3298427328484,284.13392233303574 -143,288.1011273391452,288.02341130394444,288.009314773757,288.0409991812433,288.00852789238064,288.0473122275289,288.01455020538344,288.0117724544771,283.274075550635,288.1811149707688,288.0172951734278,283.7899505058431 -144,287.765341956615,287.67998573739294,287.66674201858166,287.7034618042369,287.66677365145006,287.70808723029245,287.67078050598656,287.67019949575626,282.855096880766,287.8535575930425,287.6734480266219,283.4152032963411 -145,287.3941568719792,287.3006852822256,287.2880416411387,287.3301390607869,287.2885702173781,287.3329380068166,287.2906548998408,287.29262488561307,282.395940525768,287.4910869728324,287.2932329132545,283.0040797132763 -146,286.981384760741,286.8791935508134,286.86682539147347,286.91477837814887,286.8681937130201,286.91559133580444,286.86812682323784,286.8726757984958,281.889988730086,287.0875416625194,286.87061556140105,282.5513569529278 -147,286.5194761791792,286.4078918509381,286.3956162732217,286.44983175258733,286.3975631640566,286.4484766172247,286.3951862908003,286.40289166067123,281.329379184822,286.6354587273105,286.3975604278688,282.0492317439774 -148,285.99938011488405,285.8775821730607,285.865163226028,285.926179701521,285.8680953466749,285.922450027211,285.8631266709456,285.874037690927,280.704767095684,286.1257872209018,285.8653893210718,281.48981127337686 -149,285.4100397207141,285.2771374794375,285.26438647983906,285.33278356685673,285.26832595269406,285.32644725377946,285.2606882860278,285.2750499180185,280.005015241814,285.5475245261507,285.262826455176,280.8619784128157 -150,284.73806037122847,284.59308519436206,284.57983270057,284.6562696446737,284.58543156686824,284.6470682792085,284.5744898878199,284.59248831641264,279.216807643379,284.8872784267326,284.5764788745333,280.15347333144854 -151,283.9671604064932,283.8090854631518,283.7951491888839,283.8804082186679,283.80308346706806,283.8680571650417,283.78865608327555,283.81000933103354,278.324112231356,284.12871900082314,283.79050385440894,279.3478340684915 -152,283.0773518235916,282.90523439493995,282.89048775323823,282.9854165850737,282.9016564597736,282.96960554749893,282.8834606087085,282.90776844476005,277.30735549844,283.2518558985861,282.88516646496834,278.42444836137423 -153,282.0441070004517,281.85701915423994,281.8413130730651,281.946912288942,281.85729108949226,281.9273053648088,281.83475806479987,281.8612296352748,276.142028745135,282.2319855525833,281.83632936944866,277.3569380908243 -154,280.836264077443,280.63352151615226,280.6167366092377,280.734111087354,280.6394222990902,280.7103448403392,280.6121713710923,280.6395068304837,274.796216593385,281.0379372396773,280.613657603352,276.1094587234641 -155,279.41290776636794,279.1940191557422,279.1761113673984,279.3064117885629,279.2078612214992,279.27809223322106,279.1753969903048,279.2019784443942,273.22630872147,279.62880772645383,279.17687545751085,274.6333943493125 -156,277.716856507699,277.48146709296134,277.4623544129371,277.6068252883125,277.50613648186544,277.5735382804048,277.46793475485,277.4916453651681,271.370333655169,277.9476455506641,277.4695426259986,272.8616275145211 -157,275.6628552459168,275.4108579491182,275.3903873692772,275.5501648831101,275.44999413451217,275.5115589994226,275.4056087236036,275.4236109927039,269.13975757585,275.90980675648603,275.4075717744039,270.7023348058355 -158,273.1195143730882,272.8516513946922,272.8296090792599,273.0049631699075,272.9101370170979,272.9610739344598,272.85958453168763,272.8675484819705,266.412923423767,273.38428119392523,272.8622633259708,268.03491598331203 -159,269.8896293588232,269.6099946457182,269.5862612153558,269.77437800950406,269.6943790180329,269.7265513550639,269.6392015971139,269.62991756019244,263.030552415524,270.1719900592268,269.6431595833767,264.71151654241476 -160,265.70842219468483,265.4305518591432,265.4054638190533,265.59537352013166,265.5468186293336,265.5482536715146,265.4923318997252,265.4557310352788,258.780030411169,266.00024967183646,265.4983838799973,260.5566682967551 -161,260.2732203828074,260.0303318288656,260.00485185220714,260.16762797088523,260.17230349546963,260.1328086334009,260.1317473653577,260.0627390803164,253.369659043845,260.5507721130998,260.1407232173496,255.3214704298251 -162,253.250573102589,253.12480165360327,253.0996350704125,253.16105763460672,253.232806545746,253.16813224892903,253.239635459297,253.1703930737904,246.468815627124,253.46272753293923,253.24977373748345,248.5706293009107 -163,245.04754802880083,245.30274368476285,245.2759315174272,245.0387847665502,245.09372456044468,245.17162531645252,245.23999100657457,245.3835044531021,238.750075616444,245.0195342373704,245.22569208683808,240.14038180497064 -164,248.24258829203143,248.41361974874167,248.3880335433109,248.45204984767275,248.54037482713989,248.4840410626372,248.5720197377842,248.48314690989284,241.778329389085,248.0618389254647,248.5745028653332,243.8410763421176 -165,256.06612596915653,256.00283535787275,255.97751916034863,256.2161005333777,256.256358053193,256.1723763922588,256.21468564834004,256.0490614065064,249.34491247777,256.0192594725692,256.2248592267858,251.51867803356623 -166,262.17920384925327,262.0234704771588,261.99803790386943,262.2682762191127,262.24359340586346,262.2055599566937,262.18455745641654,262.0583583641725,255.362907291343,262.21554365180884,262.1922143633122,257.32494119069776 -167,266.8424324445885,266.646782071029,266.62211457152296,266.884498005123,266.8163532936687,266.81990062553245,266.7556891313442,266.6740216330583,260.007691690974,266.92977366528544,266.7608527473652,261.81308104810387 -168,270.3998067683587,270.1892934854192,270.1660870083532,270.40794255607017,270.3163812370926,270.3478680016185,270.25987985586204,270.21065224463564,263.628723855795,270.5172790571572,270.2633764732292,265.34943494552346 -169,273.1363184823239,272.9233783265568,272.9017966265793,273.1211242218605,273.0195375325303,273.0675003790257,272.9690160920404,272.94013491305327,266.488800927665,273.2709914505195,272.9715043954631,268.1537411362011 -170,275.27842638648417,275.0688990927052,275.0488221384599,275.2476026700952,275.1434311814809,275.2004516398707,275.0989814589292,275.0819879896358,268.773502198871,275.42311007326833,275.1008998217192,270.38724818390966 -171,276.98799908995915,276.7846376645217,276.7658935140553,276.94701711034395,276.84418929748585,276.90574379833487,276.8053085904801,276.7947096801636,270.618735261615,277.1387363493834,276.8069381588463,272.1790956383384 -172,278.3745982273838,278.1787574631058,278.16120704682226,278.32739176552474,278.2281020629331,278.291301690616,278.1941834075853,278.186269482784,272.125897453292,278.5290130140072,278.19570560310734,273.6302144936418 -173,279.51253565495017,279.3248375347074,279.30838046323004,279.46192852287714,279.3675527805907,279.430383415688,279.33793039283245,279.330129364282,273.369612540169,279.6690375198662,279.33945201561045,274.8169004734089 -174,280.4537349852983,280.27436932900684,280.25892844364773,280.4017346680571,280.31306192979747,280.37417937309635,280.28721786185133,280.27770411239595,274.404175521064,280.61118657106056,280.28880022209825,275.79547873421114 -175,281.2366099628993,281.0654645900367,281.0509727724024,281.18460674048146,281.10207563952366,281.1605597705329,281.0795313353145,281.06706427681945,275.270095179624,281.3941923233237,281.0812065247099,276.60837901248556 -176,281.8903053935378,281.7270416434792,281.7134343722097,281.8392011178065,281.7629587694076,281.81824278625675,281.74349901262536,281.7270964189919,275.997899287137,282.04744418893483,281.74530271346424,277.2874314628752 -177,282.43763375803235,282.28177956609693,282.26899247824457,282.3879840604906,282.31821293354125,282.369746530891,282.3011246262221,282.2804547307365,276.611319183753,282.5939467327377,282.3030442105816,277.85741623640746 -178,282.8967875702011,282.74779829389183,282.73576730828086,282.8489019483207,282.7852291893824,282.83306199383554,282.77034919613965,282.74523825208087,277.129218150488,283.05204023389047,282.77238125558654,278.33683220977207 -179,283.28244327888154,283.13974568547326,283.12840806402136,283.2364607320394,283.1788635218336,283.2227342122061,283.16598679094204,283.13607670182046,277.566839552447,283.43651109055065,283.16815096000954,278.74141497519537 -180,283.6065313404607,283.46955370822684,283.45884920054453,283.56247573683305,283.5103748603988,283.5506130300884,283.4991932271226,283.4648861283968,277.936645181095,283.7593686772492,283.50145968412875,279.0826183324653 +Unnamed: 0,ros03,ros16,ros17,ros19,ros19sd,ros20,ros20sd,ros18,mak11,rosen,ros21sd,rayt_37_19sd,r23sd +0,298.10838309634505,298.10996873107524,298.1118782804224,298.09606061365685,298.0953614263866,298.09495254382085,298.10814927336685,298.09626638301614,297.391837790353,298.1063909200954,298.10815559561087,297.09043291803306,297.90418427890563 +1,297.29419091155967,297.2456301324807,297.24594239686934,297.2281270105679,297.2406353508394,297.2268290930972,297.23939353543824,297.22834506911363,296.186240161788,297.2942840277885,297.2393456504609,295.74355448629103,297.04079979875536 +2,296.2955346241682,296.1535169648351,296.1517428813754,296.1477730200307,296.1896063528624,296.1462910585942,296.1164102100876,296.14800185871394,294.748245217739,296.2981431390718,296.11645701569813,294.1140349470342,295.9245001690094 +3,296.4163354405162,296.3402405942239,296.3397768188032,296.3346575022148,296.36235467706285,296.3328994807589,296.33261979297566,296.3349085638539,294.953482605179,296.41818955658897,296.3329122750313,294.3866400422129,296.139884127265 +4,297.15139874042865,297.15844084227786,297.16105316183746,297.14404732111547,297.1479474162035,297.14193098321044,297.16273266612774,297.14433011126107,296.027798821902,297.15068271766467,297.16302810802244,295.60295172053674,296.9650728040183 +5,297.68307854343,297.7154253722828,297.72058585666286,297.7024533842302,297.6980348160805,297.6999594997964,297.714378487644,297.7027685908482,296.81041972369,297.6802729592638,297.71463166679155,296.4618509294365,297.5131709632354 +6,297.99499309485407,298.03031840229755,298.0375139687284,298.021701346934,298.0155999451597,298.0188203699366,298.0259028708181,298.02204794866094,297.275643863032,297.99063602604514,298.02613259440227,296.9621194347186,297.82258309603105 +7,298.1681623163257,298.20053473824163,298.2095012692732,298.1962448316429,298.1904685974497,298.1929628378,298.195729483292,298.1966221960331,297.53867643906,298.16256033831485,298.195951638453,297.2390740154711,297.99117641599133 +8,298.2580577178716,298.28652056870334,298.2971646635907,298.2860007080316,298.2810252788935,298.2822988262843,298.2828832200593,298.2864087089872,297.6799338071,298.251345702536,298.2831069687278,297.38266451281686,298.0776043901366 +9,298.2959921709582,298.32087216478845,298.333204888664,298.32364334639834,298.3194934969742,298.31949890917423,298.3190661467757,298.3240821913868,297.745347553335,298.2881963651297,298.31929666525406,297.44325892753415,298.1133583804974 +10,298.29927553671433,298.3211257739866,298.335226697341,298.3268788112886,298.3234642889092,298.3222662646449,298.32141736998113,298.3273488989377,297.760551820362,298.2903499147094,298.321657730713,297.44862262465136,298.1154573055441 +11,298.2775921293227,298.2969152554344,298.3129151140422,298.3054922756547,298.30270782958087,298.30038378583254,298.2994259227285,298.3059941055059,297.74004768715,298.267436433196,298.29967807502896,297.4142834346269,298.09331796059735 +12,298.23638697029213,298.2535808379744,298.2716544130614,298.26494483928803,298.2626973766584,298.25931075561806,298.25840065888457,298.2654789557976,297.692133204799,298.2248541679933,298.25866592551347,297.3489880472207,298.05220256804915 +13,298.1786258956016,298.19398877735085,298.2143536401786,298.208200877525,298.2064143506922,298.20201020439504,298.2012268534206,298.20876783327327,297.62148932374,298.16552332184506,298.2015061872791,297.2575285435866,297.99496316136964 +14,298.1057180725214,298.1194662083296,298.1423853081835,298.1366722558929,298.13528617477243,298.1298932539341,298.12927788722743,298.1372725851003,297.530548373651,298.0908042859652,298.1295720080746,297.1422229472098,297.9229471354916 +15,298.0180010055617,298.0302855365856,298.056072762235,298.0507104742034,298.0496770387011,298.0433115480167,298.04287942928664,298.0513446710529,297.420224761264,298.0009791702063,298.043188898192,297.00369558776845,297.83645716817597 +16,297.9149832158367,297.92590370972675,297.9549322494439,297.94985219683355,297.9491335431994,297.94180325853165,297.94155924307216,297.95052069513724,297.290293934019,297.89549107247376,297.9418845026348,296.84127149983823,297.73499836094607 +17,297.795441295313,297.8050559862684,297.8377697243767,297.8329184399796,297.83248436267144,297.82419303749435,297.8241430643328,297.8336215917943,297.139563142737,297.77303727115617,297.8244844588214,296.65314074512423,297.61737197240734 +18,297.657416239223,297.6657498589366,297.70267839648653,297.69801374073927,297.6978398994553,297.6885923996003,297.688726887966,297.6987517916958,296.96590283805,297.6315607613303,297.6890846712841,296.43636594970843,297.48164580092117 +19,297.49812531488004,297.5051755845538,297.5469538290749,297.54244236824815,297.5425088952577,297.532317868051,297.53262938890185,297.54321542721993,296.766166889275,297.4681558316411,297.5330037223235,296.18676130606895,297.32510423453397 +20,297.3137863306777,297.3195303704597,297.36692407176605,297.3625392327468,297.36282964428733,297.351725008324,297.3522208027686,297.36334723296494,296.536003508371,297.27888378789066,297.35261174461004,295.8986416897102,297.14407420619 +21,297.09933362592267,297.1037359862244,297.15767516295267,297.15339594660134,297.1538962730548,297.14193962738153,297.1426001141327,297.1542385941206,296.26953658937,297.0584770360273,297.1430076025936,295.5644149761099,296.9335992219107 +22,296.84798358064427,296.8510086043275,296.91263157730805,296.90844169251113,296.9091397554193,296.8964472858316,296.8972818324971,296.9093183961182,295.958871700084,296.7998876266336,296.8977056541044,295.1739607149431,296.68711986444663 +23,296.55057489141336,296.5522082181208,296.6229200169422,296.6188073553607,296.61969212876875,296.60647238068003,296.6074741849657,296.6197171288612,295.593343968804,296.49360281657897,296.6079139339044,294.7136946333524,296.3957457045949 +24,296.1945533056884,296.1948416953523,296.2763919956065,296.27234841456504,296.2734094097067,296.26002778487845,296.26117177812074,296.2732897372206,295.158363363648,296.126592932465,296.2616267929843,294.16514589430307,296.0473355373513 +25,295.7623693760132,295.76149734867374,295.8560847353003,295.85210616404777,295.85333276804056,295.84042596123373,295.8417243311264,295.8530767755859,294.633602347536,295.6806526433456,295.8421935983735,293.50274550360217,295.62504780994277 +26,295.2288546723639,295.2272970951093,295.3377079053455,295.3337948521181,295.33517552581384,295.32386416201507,295.3253070263821,295.3347914421007,293.990050513005,295.1296878729092,295.3257890404311,292.6902713283742,295.104784095946 +27,294.5567175425294,294.55555617099503,294.6853448735478,294.68150351748704,294.68302469851653,294.67533286363255,294.6768868738929,294.6825212350228,293.1850070565,294.4350650400219,294.6773794117895,291.6748828997229,294.4511046824283 +28,293.6882772401578,293.6898832823857,293.843587438294,293.8398317030832,293.841476129876,293.8412318864568,293.84290484918336,293.8408633410523,292.152978908239,293.5370929871113,293.84340460208045,290.3764510742771,293.6098436234759 +29,292.5286866967078,292.5381447343758,292.72144120228427,292.7177968011699,292.71954061209334,292.73459417972447,292.7363631357414,292.71883130901347,290.787160297144,292.3377821629213,292.7368650507161,288.66625590018856,292.4930169040088 +30,290.9048067636244,290.9277921884233,291.14644779872225,291.1429623309587,291.14476857704585,291.1943932518437,291.196208553623,291.1439812765466,288.886866151353,290.658773823641,291.1967043407477,286.3068341778615,290.9379392294128 +31,288.39779359600607,288.3308186873732,288.57227422565006,288.56905926504885,288.57085304590004,288.70635193230567,288.7081596454757,288.5700225642797,285.852977255463,288.071908394665,288.7086316011202,282.5545805244408,288.4287633656338 +32,283.1244194595652,283.2505540356831,283.44195829196855,283.43927477517974,283.4408860607276,283.75946571996474,283.7611027154977,283.4400913255821,280.049276954556,282.70248261209605,283.7615095677048,275.4245217397141,283.45663585039057 +33,271.8772584122019,272.28897879175514,272.202096774936,272.20041502240866,272.20151656659465,272.7893434077958,272.7904797768632,272.2009224798139,267.921055447095,271.3635295655782,272.7907426831215,261.1913039728095,272.48244715395424 +34,251.06805831453727,251.95377041565143,251.42895732077383,251.4284491147361,251.42883170222944,252.10403905520903,252.1044427597529,251.42859070517017,246.681311447706,250.54346359569183,252.1045218639394,238.8113293586448,251.86710982979758 +35,227.763890003344,228.319176440742,228.11326940518907,228.1132275535245,228.1132700916658,228.32559783692471,228.3256414541948,228.1132350586277,223.744803496226,227.2937234452841,228.3256467263101,218.3521020065058,228.1915173641642 +36,209.30350448075413,209.363357159018,209.3788132537165,209.3788129883673,209.37881371586684,209.3189814677079,209.318982148795,209.37881277981256,208.917335017692,209.24460676256152,209.31898217486184,207.70326597477364,209.29840605372306 +37,228.5671391322418,228.52913877117288,228.54896709258185,228.54896703754105,228.54896702733976,228.57181547899808,228.5718154783821,228.54896708334832,233.228746162335,228.64329691106943,228.5718154783905,233.58254181613492,228.5986716949672 +38,206.9471890442297,206.8751874131501,206.91498840949785,206.9149884067044,206.91498839500505,206.81293502093112,206.81293502426712,206.91498839554416,208.990690109535,207.06227966740727,206.8129350243008,209.6918139482349,206.82068583373623 +39,212.46314086428723,212.43495734005995,212.37949392988,212.37949390407329,212.37949387294745,212.32026125034704,212.32026124439253,212.3794939081219,215.943823070952,212.6634506247005,212.32026124439253,216.8680733652269,212.34099481704254 +40,208.74326600725445,208.63593636860392,208.6848321248798,208.6848321093128,208.68483207825813,208.7518163422673,208.75181633483672,208.6848321053481,211.693185476408,208.9289434934348,208.75181633483672,212.62500796292596,208.76595719084028 +41,212.8637127488633,212.9207638566611,212.81757956912125,212.81757954241127,212.8175795109884,212.99452156052752,212.99452155436745,212.81757954741929,216.459445406252,213.068820544525,212.99452155436745,217.35730467312297,213.0145479682925 +42,209.07020787643827,209.0613821945476,209.1002347425742,209.10023472817,209.1002347011305,209.0727641511837,209.07276414591948,209.1002347237213,211.924749630432,209.25262884173287,209.07276414592272,212.9696142473339,209.0854632001688 +43,262.0134123882028,261.969637608599,261.96915889358723,261.9691588483841,261.9691588525841,261.96857284628925,261.9685728462793,261.9691588978021,260.327375808256,261.9785849567927,261.9685728462793,263.3606835881257,261.98172501973784 +44,214.72381040254848,214.6460714483264,214.78958733712287,214.7895846410772,214.78958987852369,214.6299519077183,214.6299569909236,214.78958464189583,212.726411046327,214.5504952803853,214.629957246135,210.12326071654536,214.55553164142435 +45,236.8442669186108,237.80810349259187,237.25750278440336,237.2573734949252,237.25753042245827,237.7874030815489,237.78757173825588,237.25741375759225,232.488860202832,236.1969956968224,237.78759300544263,226.27841987590784,237.56546997697777 +46,259.880661710031,260.7249420106452,260.401560551092,260.4005865252846,260.4016020510552,261.199410548892,261.20048960374845,260.4009502895425,255.320111123575,259.0952188542479,261.2006782484702,248.49202559013244,260.8272753360372 +47,275.4788104315164,275.792058043601,275.9462825668511,275.94390706803387,275.9462856711777,276.5325287453545,276.5349816126759,275.9448449520318,271.455960387185,274.7518812258609,276.5354523682501,265.9737437748669,276.1075826227219 +48,283.4001312228245,283.3866722571395,283.71311666812085,283.70969870583883,283.71310926407483,284.0228953328857,284.02634946149465,283.7110824553489,279.976924193834,282.7958996938727,284.0270304438852,275.88504687398967,283.61226185584525 +49,287.243015094639,287.1518240202364,287.48687891646074,287.4828492486395,287.4869032387026,287.63582349798213,287.63989586980813,287.48450576420885,284.286832111521,286.7508548414205,287.64070443281474,281.0759698823528,287.2541204181975 +50,289.38860325673977,289.3293114130024,289.6275377158319,289.623116597873,289.627616003522,289.7037990715702,289.70830466731525,289.62495548499885,286.784823426117,288.98319568429395,289.7091999970123,284.14770396793733,289.34804059446594 +51,290.8443388560112,290.7718588010266,291.0307344294492,291.0260230697652,291.0308768943075,291.0758766523122,291.0807320161736,291.0280026362427,288.437036668128,290.503888657492,291.0816956721535,286.21177155293265,290.7407639654946 +52,291.89205474986784,291.81546097064523,292.0413464569589,292.036396596068,292.04155826652266,292.07024779101994,292.0754089996293,292.03849552646415,289.629172507669,291.60177126286976,292.0764313311231,287.7224620141624,291.7516283292984 +53,292.6723133849844,292.5961898105012,292.79482252430154,292.7896677702617,292.79510662043884,292.8143262180744,292.81976376386547,292.7918720730799,290.517418878427,292.4217594133873,292.8208383567982,288.86214338960144,292.50916404024844 +54,293.26721401664673,293.1935657336577,293.3696471755585,293.3643108164813,293.3700051894407,293.38331224830176,293.3890050419111,293.3666106647122,291.193135753732,293.0487912256492,293.3901273773013,289.73964595467663,293.0893271977407 +55,293.728567417699,293.6581729725412,293.8154837477143,293.809982538498,293.8159164779135,293.82529802717505,293.83123040392474,293.81237074666257,291.714600866189,293.536602479606,293.83239718753293,290.4254133599933,293.54074368806926 +56,294.0907688330372,294.0238209029048,294.1653959452145,294.15974228089567,294.16590363725714,294.1725262650868,294.1786862269686,294.16221343030907,292.12087183172,293.92093522523726,294.1798949953296,290.9671788514017,293.89603899156776 +57,294.37752819643754,294.3139403822984,294.44222711062434,294.436430372105,294.4428096292741,294.44738427417343,294.4537623816224,294.438980267862,292.439081046573,294.2264666379351,294.4550112537049,291.3983864100903,294.1778828007727 +58,294.6056851150509,294.545243301556,294.6622294763856,294.6562969051715,294.66288641541945,294.66585882489323,294.6724474653073,294.658922221981,292.688619869914,294.47074676396846,294.67373497883995,291.74310172374925,294.4024737954656 +59,294.7874972237434,294.7299357653598,294.8372491018916,294.831186389799,294.83797985582805,294.8396354386116,294.8464283264136,294.83388443225834,292.883676214591,294.66656542877934,294.84775332628413,292.0190304058444,294.5816591908895 +60,294.9320735234023,294.8771136359402,294.97609856855786,294.9699102670831,294.97690238027144,294.9774264093335,294.9844182342584,294.9726788025183,293.034838900646,294.8234372344276,294.98577979430445,292.23944706247266,294.7242763943679 +61,295.0463033996673,294.99367262558417,295.0854488149028,295.07913862663827,295.0863248075837,295.0858381953998,295.0930243688096,295.08197576549287,293.150146425243,294.94856605887094,295.0944217356557,292.41446669358606,294.83703031866634 +62,295.1354776382236,295.0849181027425,295.1704264648198,295.16399745541213,295.1713736635135,295.1699548430548,295.177331310807,295.1669015637368,293.23579109445,295.0474892326031,295.1787638627653,292.551906729298,294.92508300172113 +63,295.2037123978683,295.15498470494146,295.23502223472246,295.22847699021924,295.2360395807455,295.23373820843267,295.2413013099053,295.231446624276,293.296604562031,295.1245195693775,295.2427685262272,292.6578824588407,294.9924586835558 +64,295.25424582033816,295.2071296096872,295.282377023467,295.2757177692943,295.2834633838671,295.2803090916192,295.28805545131064,295.2787516256767,293.336397608896,295.18305369714074,295.28955688885367,292.73722786396786,295.042328951542 +65,295.28964896701626,295.2439421375398,295.3149855747073,295.3082142672672,295.3161397482572,295.31214781790214,295.3200742604126,295.3113111441954,293.358203398201,295.22579202728804,295.3216095355545,292.793797490814,295.07721551525276 +66,295.31197822135306,295.2674954703972,295.33484374667546,295.32796214519743,295.33606446728464,295.3312395458543,295.33934302780096,295.3311209117914,293.364453778865,295.25489777792376,295.3409118022035,292.8306861864142,295.09913756352915 +67,295.322886817686,295.2794579050594,295.34355635671454,295.33656608071675,295.34484229501146,295.3391808337661,295.34745838801365,295.3397856521168,293.357108735806,295.2721134861789,295.3490603571901,292.8503909455029,295.10971980094206 +68,295.32370726317936,295.28117521800056,295.34241692007487,295.3353194962559,295.3437666835027,295.33725852587384,295.345707214753,295.338598813041,293.337752355588,295.27884723770086,295.3473420987014,292.8549311920444,295.11027245424896 +69,295.31551261792185,295.27373200003007,295.33246695338283,295.32526385486733,295.3338790852221,295.3265084722419,295.335125347237,295.32860186552256,293.307664399112,295.2762369011397,295.3367928825673,292.84593864650435,295.10185085106184 +70,295.2991620865146,295.2579973547854,295.3145400983275,295.3072327784,295.31601307575573,295.3077592405572,295.3165413065219,295.31062842399166,293.26787373269,295.2651980508932,295.3182412396238,292.824724472775,295.0852997916393 +71,295.27533467147725,295.234658678965,295.28929468152,295.28188460355545,295.29082691287573,295.2816643738503,295.29060855618013,295.2853368038455,293.219197935808,295.2464594954508,295.2923406371436,292.7923290304629,295.06128631257985 +72,295.24455344940003,295.20424606774577,295.2572371792268,295.2497258365862,295.2588269929064,295.2487256149886,295.2578287283882,295.25323347705074,293.162272048849,295.220589096307,295.25959270548856,292.74955787640323,295.03032329507937 +73,295.20720216479987,295.16714903220446,295.2187382191614,295.21112712322605,295.2203838210617,295.2093086873523,295.21856740502864,295.21468904238566,293.097568436371,295.1880116671588,295.2203630187026,292.6970064202533,294.9927855282626 +74,295.1635351684079,295.1236265525744,295.17404210429345,295.16633290840883,295.175741670502,295.1636527873279,295.17306360942587,295.1699478849882,293.025408979212,295.1490200555047,295.17489058714983,292.6350749753536,294.94891939840653 +75,295.11368116420203,295.0738109323649,295.12327029711133,295.1154647724942,295.12502191643773,295.1118737613096,295.1214329812507,295.11913151182443,292.945970169124,295.1037799337313,295.1232910313481,292.56397421483325,294.8988461849886 +76,295.05764069809265,295.0177053902006,295.0664187849381,295.05851885064965,295.06822045211504,295.05396136238244,295.0636650296988,295.06223596978515,292.859281079171,295.05232828915393,295.0655538346106,292.48372161148205,294.8425593589715 +77,294.99527674847786,294.955174701498,295.00334863162567,294.99535638849085,295.0051982394027,294.9897696299366,294.999613507994,294.99912239923685,292.7652134941,294.99456502797057,295.00153271643893,292.3941274567688,294.77991497792055 +78,294.92629707951204,294.88592788983686,294.93376871846897,294.9256864894185,294.9356640477763,294.9189994377596,294.9289789530748,294.9294997782527,292.663463029425,294.9302364125494,294.930928170586,292.2947690578134,294.710613882384 +79,294.85022607587564,294.80948988693865,294.85720760501925,294.84903798347665,294.8591463138357,294.8411701314727,294.85128031358346,294.8528967873624,292.553518057667,294.8589081186571,294.853259090724,292.1849484700723,294.6341734108853 +80,294.76636241616103,294.72515963152745,294.7729720072078,294.764717918109,294.7749516164017,294.7555777440576,294.7658131495501,294.76862029416145,292.434613366749,294.77992435452023,294.76782096684127,292.0636300846912,294.5498849972906 +81,294.6737168196986,294.6319481294783,294.68008545609734,294.6717502342902,294.68210333192377,294.6612333423753,294.6715879580682,294.67569402095745,292.305661600334,294.69234738838026,294.67362420624096,291.92934840688207,294.45675190487134 +82,294.5709212284332,294.52848790418864,294.5771986323287,294.5687861259032,294.57925196408473,294.5567729908136,294.5672401069276,294.5727688919997,292.165152918137,294.5948689996851,294.5693040604653,291.78007336789994,294.35339848943806 +83,294.4560943404055,294.412899642786,294.4624572810461,294.45397199086875,294.46454305187353,294.4403252313723,294.4508972713325,294.45799096702723,292.011007201888,294.48567898959703,294.4529880522648,291.61301221106845,294.23793599578744 +84,294.32664144989326,294.2825931153036,294.3333049349895,294.3247522077419,294.3354198827762,294.3093133122242,294.3199815986857,294.3288041919481,291.840353493693,294.36226902224115,294.3220981259452,291.4243142034359,294.10776295238566 +85,294.1789493258046,294.13396428772,294.1861825959415,294.1775688977853,294.18832315945724,294.1601543442115,294.170908769137,294.18165012191685,291.649194667505,294.2211329994655,294.1730496861012,291.20862229654347,293.9592611589543 +86,294.0079106648895,293.9619235216659,294.0160606204328,294.0073939352972,294.01822286283624,293.9877907186007,293.99861926542826,294.011499871443,291.431885632139,294.0572992127158,294.0007828336943,290.9583765900172,293.7873222665246 +87,293.8061617082864,293.7591397811781,293.8156882815426,293.8069787073076,293.8178677782113,293.78493947815184,293.7958275093983,293.81110377861086,291.180298566612,293.86357893429937,293.7980114489116,290.66270227801044,293.5845894576303 +88,293.5628192404416,293.5147895511454,293.574350583203,293.5656112523884,293.5765422512969,293.5408497436128,293.5517789044514,293.56974838745214,290.88244345642,293.6293192946396,293.553980145518,290.3055768347242,293.34020230342094 +89,293.2613066646474,293.2124052016023,293.27572845003425,293.2669770019541,293.2779262791546,293.2391655590385,293.25011202886793,293.27111692374893,290.520100735292,293.338252549953,293.25232631440707,289.86269578339113,293.03763840955963 +90,292.8754408632197,292.8260052257623,292.8940469228748,292.8853079523774,292.8962435303163,292.8540817509133,292.8650133409597,292.8894379974344,290.064575150225,292.96461682995954,292.8672345634418,289.2958781970357,292.65083222754373 +91,292.36200781287977,292.31275846503723,292.38676678859434,292.3780761073687,292.3889526474692,292.3430555579923,292.3539266672301,292.3821781744216,289.46867534308,292.46577885772774,292.3561457133754,288.54257001418387,292.1368194603101 +92,291.64576125444427,291.5981745127685,291.67981613553485,291.6712285833513,291.68197815538787,291.6320893795996,291.6428317530396,291.6752753798534,288.650599545239,291.7672923857377,291.64503438504886,287.49495674695805,291.42089278076764 +93,290.58673672357315,290.5438626489851,290.6354054682143,290.62701010742325,290.6375242034308,290.5836799373177,290.5941846761744,290.6309578646361,287.459090052418,290.7302452294044,290.59634741191974,285.95543924223847,290.36430228077006 +94,288.90217580600364,288.8705764375005,288.9751187009426,288.96707037517,288.97716241085305,288.9202770159915,288.9303571098152,288.9708437664236,285.591082062061,289.07299642795505,288.9324386795587,283.5337573860346,288.6872219211521 +95,285.9579840000782,285.952756862384,286.07431377080644,286.06690288002443,286.07622461193625,286.0197544263752,286.02906132761075,286.0703618629841,282.375245803025,286.1612450415364,286.03098385402933,279.38681297606854,285.76333681537 +96,280.1337071124774,280.1925502631667,280.33473773813137,280.328546862275,280.3363969876031,280.2912398824979,280.2990726799973,280.33141320070547,276.130034932952,280.36541844855464,280.30067980684794,271.502708278588,279.99517640176356 +97,266.6402765781018,266.85836174767167,267.01395264341755,267.0101118294352,267.01509751213644,267.0119711864594,267.01693973595343,267.01185592632646,262.065161550851,266.8409735554523,267.01793076354187,254.75207365072097,266.66291686429435 +98,231.294409559485,231.70702030218524,231.8011898565091,231.80057521291468,231.8014416623589,231.85574394874303,231.85660102479167,231.80083409539927,227.317974145462,231.26319502713,231.8567553117679,219.60444153176704,231.58380251051028 +99,208.90373927345345,208.85611626839795,208.85082038246043,208.85080642077563,208.8508281036441,208.7812003049092,208.78122110536395,208.85081155910925,209.998315240777,208.91863604622625,208.78122451919413,209.26331782319417,208.82332930662596 +100,253.223302508461,253.8778258606931,253.73402593331497,253.7318226051058,253.73475354279745,254.06077384403616,254.06372990128853,253.7327882299082,248.816680186615,252.8520802537336,254.06431390071955,240.01071955214724,253.67304577066884 +101,274.9183518646682,275.3534855468639,275.20384547844657,275.1985264284709,275.20525917106323,275.4762678986132,275.4830481651682,275.2009319679695,270.908407937473,274.62474365032665,275.48449033661785,264.86114010144524,275.12172883932635 +102,283.4048239564105,283.689717889827,283.5633515982337,283.5562517866144,283.5650600196573,283.76689794620154,283.77575434390616,283.5594857409632,279.788221278806,283.1730542120505,283.7777040295029,275.9813236343719,283.47073732477435 +103,287.2746048548521,287.47406317313335,287.3692154250404,287.36117118799376,287.37103703061223,287.5259528003629,287.5358626468456,287.36483739239543,283.870164711317,287.0848689036106,287.538094579332,281.3508447747552,287.26855014809684 +104,289.2812402916802,289.42888828360424,289.3405980330722,289.3320239672656,289.34244998335686,289.46614029017866,289.4766059748664,289.33592352239555,285.982820964503,289.1217587656816,289.4790084296849,284.2174863722161,289.23326523903 +105,290.4207726064126,290.5345712877047,290.45879244333423,290.4499037966829,290.460631152512,290.56270532394416,290.5734686539329,290.4539322359009,287.171507731684,290.2841124358809,290.57598430548313,285.8749278726835,290.34602172339055 +106,291.10876633224484,291.19903026328814,291.1328366691536,291.1237552756506,291.134635301987,291.22108758942966,291.23200054139056,291.12785254094274,287.877131795087,290.9899578252314,291.23459776160166,286.88953157798784,291.0156874631687 +107,291.5402700432616,291.6133310536241,291.554628460625,291.545429703994,291.5563679069871,291.6310999346832,291.6420685267489,291.5495578088438,288.30785424639,291.43584357018926,291.644728582391,287.534491390894,291.43397395401854 +108,291.8157703315439,291.875735996221,291.8230033752088,291.81373807919994,291.8246682643228,291.8903301320154,291.90128855008817,291.8178706577788,288.571259198241,291.7232189477517,291.90399962229554,287.9529610447078,291.6995496859685 +109,291.99101420089795,292.0406722344148,291.9927811340179,291.9834864801043,291.9943579038606,292.05282015322007,292.0637179289479,291.9876035600305,288.727129547879,291.9084745747826,292.0664721322234,288.2252557713353,291.8670970004186 +110,292.0988281233371,292.1401408278556,292.0962363910899,292.08694172282287,292.09771225959844,292.1503395567574,292.1611347586478,292.09102693195115,288.810690910913,292.0248821070268,292.1639265591276,288.399042522522,291.9687814613372 +111,292.1595099097183,292.1939005718776,292.15332224871224,292.14405239520505,292.15468466785654,292.2025018149218,292.2131571974166,292.1480913751649,288.843725056549,292.0930563743817,292.21598252674306,288.5039663082308,292.0244704904905 +112,292.1861257817614,292.21465229292176,292.1768804829241,292.1676576872595,292.1781167368424,292.2219130042314,292.2323936905939,292.1716371361288,288.840246162206,292.1262951869344,292.23524942406624,288.5591964676595,292.0469384959804 +113,292.1873736435971,292.21083807215814,292.17545745303147,292.16630263204155,292.1765544278012,292.2169514604888,292.22722346184145,292.17020969141447,288.809573825937,292.13346949998214,292.230107097818,288.57754174226943,292.0446786493006 +114,292.1692084404884,292.1882288110575,292.154902614073,292.14583619089564,292.1558466155129,292.1933440124683,292.2033732191669,292.14965802870734,288.75807941055,292.12066622476794,292.2062826746713,288.56780194985896,292.02349787285704 +115,292.1358031077305,292.1508614970925,292.1193131010212,292.110355596547,292.1200897074768,292.15509646608143,292.16484791297563,292.11407910275045,288.690218534755,292.09216081690874,292.1677813886602,288.53616506705566,291.9874591657968 +116,292.09013761622697,292.1016135083916,292.07161302380246,292.0627855047963,292.0722069559559,292.10506370880955,292.11450099926225,292.0663970532848,288.609164289434,292.05101427467537,292.11745688726603,288.48706771682447,291.93945881050996 +117,292.0343713445463,292.0425651912392,292.01391951333414,292.0052439559191,292.0143145116156,292.0453096085728,292.0543944294537,292.00872920399746,288.517207367018,291.9994510660636,292.0573712484147,288.4237408809424,291.88159102486867 +118,291.97008510424183,291.9752351001911,291.94778041600057,291.9392800212094,291.94795911901247,291.9773405014388,291.98603218602346,291.94262372859725,288.416015789703,291.93910511263823,291.98902853373164,288.34856544602263,291.81538452105605 +119,291.8984416387969,291.9007361415585,291.87433220294787,291.86603168844886,291.87427602240103,291.90226016281525,291.9105152731739,291.8692175438037,288.306807353077,291.8711830968126,291.9135297907801,288.2633092031281,291.7419597660208 +120,291.820294401731,291.81988129533323,291.7944069827527,291.7863328675717,291.79409597166443,291.8208747298966,291.8286466386832,291.78934331385483,288.190466397164,291.79657571060204,291.83167798261223,288.1692880733244,291.6621350138716 +121,291.7362628511252,291.7332559461121,291.7086057845914,291.7007866794699,291.708018496089,291.7337644802537,291.7410029366935,291.7036027314029,288.067623609286,291.7159338567249,291.7440497556165,288.0674770798704,291.5764995429481 +122,291.6467843005448,291.6412687149748,291.6173501117947,291.60981702513646,291.61646344626416,291.64133427390306,291.64798494171,291.6124180731205,287.938712181921,291.629722424181,291.6510458568169,287.9585889240324,291.48546436205896 +123,291.55215047117963,291.54418638307214,291.5209174056851,291.5137040741827,291.5197064443151,291.5438482044749,291.5498521605457,291.51606766939364,287.804006235354,291.5382574444669,291.55292574780583,287.8431286577941,291.3892976391649 +124,291.45253295250376,291.4421584356981,291.4194660069931,291.4126092593026,291.41790382980133,291.44145394967137,291.44674713323445,291.41471087471785,287.663647813941,291.4417323836369,291.4498319066789,287.72143280470294,291.28814934164967 +125,291.3480006964276,291.3352337812088,291.3130521965561,291.30659235862225,291.31110968317927,291.3341993551755,291.3387119568708,291.3084051204786,287.517665200692,291.3402362545341,291.34180635219377,287.5936968577982,291.1820680719359 +126,291.23853157218184,291.2233716798218,291.201641374408,291.19562272562166,291.19928698608913,291.2220432717636,291.2256990517127,291.1971171092285,287.365984816276,291.23376568632284,291.22880140952,287.45999429690056,291.0710120769441 +127,291.12401932631894,291.1064481825112,291.08511469436087,291.07958598476694,291.0823142357991,291.1048619359181,291.1075774589729,291.0807294677414,287.208438144767,291.12223232478954,291.11068600717124,287.3202891742277,290.95485574044443 +128,291.0042768243714,290.9842589240916,290.963272010524,290.9582870506198,290.95998837058977,290.982451731484,290.9841355067444,290.95904371557816,287.044764626491,291.00546646236705,290.9872483415295,287.1744436445853,290.8333924088285 +129,290.87902370639426,290.85651879016933,290.83583166455065,290.8314500011493,290.83202453555026,290.8545288478889,290.8550803583335,290.8317800784236,286.874611103162,290.8832174596868,290.8581954232796,287.0222213468455,290.70633407490476 +130,290.7478308585367,290.7228587360797,290.70242739851494,290.6987150922935,290.6980975343933,290.7207261106741,290.720073612672,290.6985744315929,286.697528138149,290.75515127024806,290.72318698357213,286.863328775055,290.57334498872217 +131,290.6101602850363,290.58281984417687,290.5625636433722,290.5596330082268,290.55766310692417,290.5805870698536,290.5785746391506,290.5589336451449,286.512963329645,290.6208451821624,290.58168536446175,286.697249866192,290.433893270194 +132,290.46527325274553,290.4358445422655,290.41559461970945,290.4136562772611,290.4102011215348,290.4335572690339,290.43005089899094,290.412214721627,286.320251563436,290.4797797231252,290.4331562807242,286.52347631302695,290.2874494352333 +133,290.31264299037514,290.2812647536513,290.26069451103155,290.2601276310412,290.2550402903545,290.2789724672336,290.2738239429139,290.2575949950634,286.118601997463,290.33132751972687,290.2769210109842,286.3413434568285,290.1333402071089 +134,290.1515374526764,290.118277549992,290.09715971182175,290.09826493122284,290.091542357241,290.1160434327846,290.1092255190144,290.09437434286195,285.907061472692,290.1747387464563,290.11230756038736,286.15020728526656,289.97089807607966 +135,289.9810762908799,289.94562730830773,289.92400577427753,289.92714212229225,289.9184661050272,289.94383676383586,289.93505020885664,289.92157233972705,285.684113577723,290.0091226317268,289.938116535144,285.948835247915,289.79893245590057 +136,289.8001124237589,289.76178366950666,289.7401058481237,289.7456654808744,289.7348394794485,289.7612510022432,289.7502969660481,289.7380667240967,285.448053400198,289.8334242966919,289.7533434407953,285.7362478863317,289.6164446030182 +137,289.60743780086494,289.5653772099263,289.5442312821535,289.5525442100783,289.53959801746123,289.566987086166,289.55385438867563,289.5426340892953,285.197378305013,289.6463959759662,289.55687520428035,285.5113830380726,289.42232646901874 +138,289.4016769405897,289.3550139982158,289.33487045972413,289.34625416059544,289.3307358070831,289.35951192050504,289.3437799781203,289.333768827094,284.93051209911,289.44656139497,289.3467709319898,285.27223017856426,289.21465057252215 +139,289.1810021025782,289.1291223325679,289.1102279617881,289.12499313624653,289.10664120913856,289.1370135208616,289.1184166872048,289.1096823879685,284.645662495313,289.2321717425481,289.1213718887741,285.0171981006207,288.9917654268239 +140,288.9433035659376,288.8857119817509,288.8680711587398,288.886625847649,288.8651512798365,288.89734579372924,288.87558997518585,288.86814998769376,284.340583888456,289.00115126400027,288.87850276668524,284.744155434843,288.7515064348207 +141,288.6862233022205,288.6223974027388,288.60600276648006,288.62861606551667,288.60399545220565,288.63796050505425,288.61296721639394,288.6067832821818,284.012607148755,288.75102999311554,288.6158319109901,284.45091549262463,288.4915528456937 +142,288.4066344705466,288.3361674784267,288.3209935710171,288.34794320718345,288.31958340307443,288.35582367472045,288.32703620863947,288.3225632149175,283.658415083396,288.47886052637466,288.3298427328484,284.13392233303574,288.20840352798155 +143,288.1011273391452,288.02341130394444,288.009314773757,288.0409991812433,288.00852789238064,288.0473122275289,288.01455020538344,288.0117724544771,283.274075550635,288.1811149707688,288.0172951734278,283.7899505058431,287.89883218534266 +144,287.765341956615,287.67998573739294,287.66674201858166,287.7034618042369,287.66677365145006,287.70808723029245,287.67078050598656,287.67019949575626,282.855096880766,287.8535575930425,287.6734480266219,283.4152032963411,287.5581147200204 +145,287.3941568719792,287.3006852822256,287.2880416411387,287.3301390607869,287.2885702173781,287.3329380068166,287.2906548998408,287.29262488561307,282.395940525768,287.4910869728324,287.2932329132545,283.0040797132763,287.18120034205856 +146,286.981384760741,286.8791935508134,286.86682539147347,286.91477837814887,286.8681937130201,286.91559133580444,286.86812682323784,286.8726757984958,281.889988730086,287.0875416625194,286.87061556140105,282.5513569529278,286.762072609211 +147,286.5194761791792,286.4078918509381,286.3956162732217,286.44983175258733,286.3975631640566,286.4484766172247,286.3951862908003,286.40289166067123,281.329379184822,286.6354587273105,286.3975604278688,282.0492317439774,286.292716600348 +148,285.99938011488405,285.8775821730607,285.865163226028,285.926179701521,285.8680953466749,285.922450027211,285.8631266709456,285.874037690927,280.704767095684,286.1257872209018,285.8653893210718,281.48981127337686,285.7644700462816 +149,285.4100397207141,285.2771374794375,285.26438647983906,285.33278356685673,285.26832595269406,285.32644725377946,285.2606882860278,285.2750499180185,280.005015241814,285.5475245261507,285.262826455176,280.8619784128157,285.16607069353347 +150,284.73806037122847,284.59308519436206,284.57983270057,284.6562696446737,284.58543156686824,284.6470682792085,284.5744898878199,284.59248831641264,279.216807643379,284.8872784267326,284.5764788745333,280.15347333144854,284.4841298759099 +151,283.9671604064932,283.8090854631518,283.7951491888839,283.8804082186679,283.80308346706806,283.8680571650417,283.78865608327555,283.81000933103354,278.324112231356,284.12871900082314,283.79050385440894,279.3478340684915,283.7027932817378 +152,283.0773518235916,282.90523439493995,282.89048775323823,282.9854165850737,282.9016564597736,282.96960554749893,282.8834606087085,282.90776844476005,277.30735549844,283.2518558985861,282.88516646496834,278.42444836137423,282.80229068676175 +153,282.0441070004517,281.85701915423994,281.8413130730651,281.946912288942,281.85729108949226,281.9273053648088,281.83475806479987,281.8612296352748,276.142028745135,282.2319855525833,281.83632936944866,277.3569380908243,281.7584139268893 +154,280.836264077443,280.63352151615226,280.6167366092377,280.734111087354,280.6394222990902,280.7103448403392,280.6121713710923,280.6395068304837,274.796216593385,281.0379372396773,280.613657603352,276.1094587234641,280.5407125681146 +155,279.41290776636794,279.1940191557422,279.1761113673984,279.3064117885629,279.2078612214992,279.27809223322106,279.1753969903048,279.2019784443942,273.22630872147,279.62880772645383,279.17687545751085,274.6333943493125,279.1087520466258 +156,277.716856507699,277.48146709296134,277.4623544129371,277.6068252883125,277.50613648186544,277.5735382804048,277.46793475485,277.4916453651681,271.370333655169,277.9476455506641,277.4695426259986,272.8616275145211,277.40591444088204 +157,275.6628552459168,275.4108579491182,275.3903873692772,275.5501648831101,275.44999413451217,275.5115589994226,275.4056087236036,275.4236109927039,269.13975757585,275.90980675648603,275.4075717744039,270.7023348058355,275.3479792098917 +158,273.1195143730882,272.8516513946922,272.8296090792599,273.0049631699075,272.9101370170979,272.9610739344598,272.85958453168763,272.8675484819705,266.412923423767,273.38428119392523,272.8622633259708,268.03491598331203,272.8062590359945 +159,269.8896293588232,269.6099946457182,269.5862612153558,269.77437800950406,269.6943790180329,269.7265513550639,269.6392015971139,269.62991756019244,263.030552415524,270.1719900592268,269.6431595833767,264.7115165424148,269.5905682489356 +160,265.70842219468483,265.4305518591432,265.4054638190533,265.59537352013166,265.5468186293336,265.5482536715146,265.4923318997252,265.4557310352788,258.780030411169,266.00024967183646,265.4983838799973,260.5566682967551,265.4496342816416 +161,260.2732203828074,260.0303318288656,260.00485185220714,260.16762797088523,260.17230349546963,260.1328086334009,260.1317473653577,260.0627390803164,253.369659043845,260.5507721130998,260.1407232173496,255.3214704298251,260.0971896252985 +162,253.250573102589,253.12480165360327,253.0996350704125,253.16105763460672,253.232806545746,253.16813224892903,253.239635459297,253.1703930737904,246.468815627124,253.46272753293923,253.24977373748345,248.5706293009107,253.21387526316383 +163,245.04754802880083,245.30274368476285,245.2759315174272,245.0387847665502,245.09372456044468,245.1716253164525,245.23999100657457,245.3835044531021,238.750075616444,245.0195342373704,245.22569208683808,240.14038180497064,245.1990746624899 +164,248.24258829203143,248.41361974874167,248.3880335433109,248.45204984767275,248.54037482713989,248.4840410626372,248.5720197377842,248.48314690989284,241.778329389085,248.0618389254647,248.5745028653332,243.8410763421176,248.54416076578758 +165,256.06612596915653,256.00283535787275,255.97751916034863,256.2161005333777,256.256358053193,256.1723763922588,256.21468564834004,256.0490614065064,249.34491247777,256.0192594725692,256.2248592267858,251.51867803356623,256.18604648215614 +166,262.17920384925327,262.0234704771588,261.99803790386943,262.2682762191127,262.24359340586346,262.2055599566937,262.18455745641654,262.0583583641725,255.362907291343,262.21554365180884,262.1922143633122,257.32494119069776,262.14792322284234 +167,266.8424324445885,266.646782071029,266.62211457152296,266.884498005123,266.8163532936687,266.81990062553245,266.7556891313442,266.6740216330583,260.007691690974,266.92977366528544,266.7608527473652,261.81308104810387,266.71356517519536 +168,270.3998067683587,270.1892934854192,270.1660870083532,270.40794255607017,270.3163812370926,270.3478680016185,270.25987985586204,270.21065224463564,263.628723855795,270.5172790571572,270.2633764732292,265.34943494552346,270.2144967808343 +169,273.1363184823239,272.9233783265568,272.9017966265793,273.1211242218605,273.0195375325303,273.0675003790257,272.9690160920404,272.94013491305327,266.488800927665,273.2709914505195,272.9715043954631,268.1537411362011,272.9216436253772 +170,275.27842638648417,275.0688990927052,275.0488221384599,275.2476026700952,275.1434311814809,275.2004516398707,275.0989814589292,275.0819879896358,268.773502198871,275.42311007326833,275.1008998217192,270.38724818390966,275.0502109435222 +171,276.98799908995915,276.7846376645217,276.7658935140553,276.94701711034395,276.84418929748585,276.90574379833487,276.8053085904801,276.7947096801636,270.618735261615,277.1387363493834,276.8069381588463,272.1790956383384,276.75538103164695 +172,278.3745982273838,278.1787574631058,278.16120704682226,278.32739176552474,278.2281020629331,278.291301690616,278.1941834075853,278.186269482784,272.125897453292,278.5290130140072,278.19570560310734,273.6302144936418,278.14321463055995 +173,279.51253565495017,279.3248375347074,279.30838046323004,279.46192852287714,279.3675527805907,279.430383415688,279.33793039283245,279.330129364282,273.369612540169,279.6690375198662,279.33945201561045,274.8169004734089,279.2860147817564 +174,280.4537349852983,280.27436932900684,280.25892844364773,280.4017346680571,280.31306192979747,280.37417937309635,280.28721786185133,280.27770411239595,274.404175521064,280.61118657106056,280.28880022209825,275.79547873421114,280.2344777915636 +175,281.2366099628993,281.0654645900367,281.0509727724024,281.18460674048146,281.10207563952366,281.1605597705329,281.0795313353145,281.06706427681945,275.270095179624,281.3941923233237,281.0812065247099,276.6083790124856,281.0261227246659 +176,281.8903053935378,281.7270416434792,281.7134343722097,281.8392011178065,281.7629587694076,281.81824278625675,281.74349901262536,281.7270964189919,275.997899287137,282.04744418893483,281.74530271346424,277.2874314628752,281.6896239345121 +177,282.43763375803235,282.28177956609693,282.26899247824457,282.3879840604906,282.31821293354125,282.369746530891,282.3011246262221,282.2804547307365,276.611319183753,282.5939467327377,282.3030442105816,277.85741623640746,282.2469598222384 +178,282.8967875702011,282.74779829389183,282.73576730828086,282.8489019483207,282.7852291893824,282.83306199383554,282.77034919613965,282.74523825208087,277.129218150488,283.05204023389047,282.77238125558654,278.33683220977207,282.71608759718293 +179,283.28244327888154,283.13974568547326,283.12840806402136,283.2364607320394,283.1788635218336,283.2227342122061,283.16598679094204,283.13607670182046,277.566839552447,283.43651109055065,283.16815096000954,278.74141497519537,283.11184066991 +180,283.6065313404607,283.46955370822684,283.45884920054453,283.56247573683305,283.5103748603988,283.5506130300884,283.4991932271226,283.4648861283968,277.936645181095,283.7593686772492,283.50145968412875,279.0826183324653,283.4453157777664 diff --git a/pyrtlib/tests/test_main_ground.py b/pyrtlib/tests/test_main_ground.py index fa192284..599481bf 100644 --- a/pyrtlib/tests/test_main_ground.py +++ b/pyrtlib/tests/test_main_ground.py @@ -1,13 +1,13 @@ import os # from pathlib import Path from unittest import TestCase - +import pytest import numpy as np import pandas as pd from numpy.testing import assert_allclose from pyrtlib.climatology import AtmosphericProfiles as atmp from pyrtlib.tb_spectrum import TbCloudRTE -from pyrtlib.absorption_model import H2OAbsModel +from pyrtlib.absorption_model import H2OAbsModel, O2AbsModel from pyrtlib.apiwebservices import ERA5Reanalysis from pyrtlib.utils import ppmv2gkg, mr2rh @@ -36,6 +36,27 @@ def test_pyrtlib_ground_R19SD(self): df_expected = pd.read_csv(os.path.join(THIS_DIR, "data", "tb_tot_ground_ros03_19sd_21sd_era5.csv")) assert_allclose(df.tbtotal, df_expected.ros19sd, atol=0) + # @pytest.mark.skip(reason="R03 not completly implemented yet") + def test_pyrtlib_ground_R23SD(self): + z, p, _, t, md = atmp.gl_atm(atmp.TROPICAL) + + gkg = ppmv2gkg(md[:, atmp.H2O], atmp.H2O) + rh = mr2rh(p, t, gkg)[0] / 100 + + frq = np.arange(20, 201, 1) + + rte = TbCloudRTE(z, p, t, rh, frq) + rte.satellite = False + rte.init_absmdl('R23SD') + O2AbsModel.model = 'R23' + O2AbsModel.set_ll() + df = rte.execute() + + df_expected = pd.read_csv(os.path.join( + THIS_DIR, "data", "tb_tot_ground_ros03_19sd_21sd_era5.csv")) + assert_allclose(df.tbtotal, df_expected.r23sd, atol=0) + + # @pytest.mark.datafiles(DATA_DIR) # @pytest.mark.skip(reason="R03 not completly implemented yet") def test_pyrtlib_ground_R03(self): @@ -51,23 +72,27 @@ def test_pyrtlib_ground_R03(self): rte.init_absmdl('R03') df = rte.execute() - df_expected = pd.read_csv(os.path.join(THIS_DIR, "data", "tb_tot_ground_ros03_19sd_21sd_era5.csv")) + df_expected = pd.read_csv(os.path.join( + THIS_DIR, "data", "tb_tot_ground_ros03_19sd_21sd_era5.csv")) assert_allclose(df.tbtotal.values, df_expected.ros03) def test_pyrtlib_ground_R21SD_ERA5(self): lonlat = (15.8158, 38.2663) - nc_file = os.path.join(THIS_DIR, "data", "era5_reanalysis-2019-06-25T12:00:00.nc") + nc_file = os.path.join( + THIS_DIR, "data", "era5_reanalysis-2019-06-25T12:00:00.nc") df_era5 = ERA5Reanalysis.read_data(nc_file, lonlat) ang = np.array([90.]) frq = np.arange(20, 201, 1) - rte = TbCloudRTE(df_era5.z.values, df_era5.p.values, df_era5.t.values, df_era5.rh.values, frq, ang) + rte = TbCloudRTE(df_era5.z.values, df_era5.p.values, + df_era5.t.values, df_era5.rh.values, frq, ang) rte.satellite = False rte.init_absmdl('R20') H2OAbsModel.model = 'R21SD' H2OAbsModel.set_ll() df = rte.execute() - df_expected = pd.read_csv(os.path.join(THIS_DIR, "data", "tb_tot_ground_ros03_19sd_21sd_era5.csv")) + df_expected = pd.read_csv(os.path.join( + THIS_DIR, "data", "tb_tot_ground_ros03_19sd_21sd_era5.csv")) assert_allclose(df.tbtotal, df_expected.rose21sd_era5, atol=0) diff --git a/pyrtlib/tests/test_main_sat.py b/pyrtlib/tests/test_main_sat.py index 224d6df5..a81213c2 100644 --- a/pyrtlib/tests/test_main_sat.py +++ b/pyrtlib/tests/test_main_sat.py @@ -417,8 +417,8 @@ def test_pyrtlib_sat_R21SD_ERA5_cloudy(self): df_expected = pd.read_csv( os.path.join(THIS_DIR, "data", "tb_tot_rose21sd_RAOB_es.csv")) assert_allclose(df.tbtotal, df_expected.tbtotal, atol=0) - - def test_pyrtlib_sat_R22SD(self): + + def test_pyrtlib_sat_R23(self): z, p, _, t, md = atmp.gl_atm(atmp.TROPICAL) gkg = ppmv2gkg(md[:, atmp.H2O], atmp.H2O) @@ -427,11 +427,10 @@ def test_pyrtlib_sat_R22SD(self): frq = np.arange(20, 201, 1) rte = TbCloudRTE(z, p, t, rh, frq) - rte.init_absmdl('R22SD') - O2AbsModel.model = 'R22' - O2AbsModel.set_ll() - + rte.init_absmdl('R23SD') + O2AbsModel.model = 'R23' df = rte.execute() + df_expected = pd.read_csv( - os.path.join(THIS_DIR, "data", "tb_tot_r22sd.csv")) - assert_allclose(df.tbtotal, df_expected.rose22sd, atol=0) + os.path.join(THIS_DIR, "data", "tb_tot_ros03_16_17_18_19_19sd_20_20sd_98_mak11_21sd.csv")) + assert_allclose(df.tbtotal, df_expected.r23sd) diff --git a/pyrtlib/utils.py b/pyrtlib/utils.py index 473b4cdd..a0883c83 100644 --- a/pyrtlib/utils.py +++ b/pyrtlib/utils.py @@ -323,7 +323,6 @@ def mr2e(p: np.ndarray, mr: np.ndarray) -> np.ndarray: return e - def rho2rh(rho: np.ndarray, t: np.ndarray, p: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: """Convert water vapor density to relative humidity.