From 9da34faef592b8da42761eaddbccd9de7365f7ef Mon Sep 17 00:00:00 2001 From: Olivier Henry Date: Wed, 15 Jul 2020 11:29:40 +0200 Subject: [PATCH] update 1.2.7 --- .../cover/alg_cover.tex | 2 +- ...S Lineage Algorithm Handbook - v1.2.7.pdf} | Bin 2857794 -> 2857790 bytes ... EGADS Lineage Documentation - v1.2.7.pdf} | Bin 2639386 -> 2639298 bytes Documentation/changelog.txt | 19 + PKG-INFO | 2 +- README.md | 4 +- doc/source/conf.py | 4 +- egads/_version.py | 2 +- egads/core/egads_core.py | 6 +- egads/input/hdf_io.py | 325 +++++------------- egads/input/nasa_ames_io.py | 21 +- egads/input/netcdf_io.py | 265 +++++--------- egads/tests/input_tests.py | 88 ++++- egads_lineage.egg-info/PKG-INFO | 2 +- egads_lineage.egg-info/SOURCES.txt | 4 +- setup.py | 2 +- 16 files changed, 282 insertions(+), 464 deletions(-) rename Documentation/{EGADS Lineage Algorithm Handbook - v1.2.6.pdf => EGADS Lineage Algorithm Handbook - v1.2.7.pdf} (99%) rename Documentation/{EGADS Lineage Documentation - v1.2.6.pdf => EGADS Lineage Documentation - v1.2.7.pdf} (95%) diff --git a/Documentation/EGADS Algorithm Handbook - LATEX/cover/alg_cover.tex b/Documentation/EGADS Algorithm Handbook - LATEX/cover/alg_cover.tex index e7b8244..c2a6c78 100644 --- a/Documentation/EGADS Algorithm Handbook - LATEX/cover/alg_cover.tex +++ b/Documentation/EGADS Algorithm Handbook - LATEX/cover/alg_cover.tex @@ -24,7 +24,7 @@ \setlength{\voffset}{.0cm} \logoeufar -\title{EUFAR, Olivier Henry}{}{EGADS Lineage Algorithm Handbook}{Version 1.2.6} +\title{EUFAR, Olivier Henry}{}{EGADS Lineage Algorithm Handbook}{Version 1.2.7} %\author{}{} diff --git a/Documentation/EGADS Lineage Algorithm Handbook - v1.2.6.pdf b/Documentation/EGADS Lineage Algorithm Handbook - v1.2.7.pdf similarity index 99% rename from Documentation/EGADS Lineage Algorithm Handbook - v1.2.6.pdf rename to Documentation/EGADS Lineage Algorithm Handbook - v1.2.7.pdf index 24f4cba2dc5b31e23f1dcdf8852943fb435317c7..f381e99217dd092cf53ab6fdcb643656b3d15f4c 100644 GIT binary patch delta 23254 zcmai52Uw2l8*i6}j3Q~7E%EI^B`poBl7_an(vXCB$ta_u;)@nhqA1cb8Z;zI(W0e= zhN3h?{qN5?2fdH$`g5ME<9_x%fA{^oJU$$Cn|%K}+XC!Hg=X33pvKM)?i)SSC$pKcke zf4NkKKPELv{??T6x&)oz*4dwC~@I4wNcjJ5P&lKk(V;{zO+iYP(yHO{m2#D+dN+@b7B8H z`ecAxMfUSqj`4*%w)QHWQgU)=>8gHkXo_;?!Rt_?E%GC4CoI#7>vSX(lNGPg_`8oO z>(rd(Nq=+wsN(sg2R|+@EZ)<9WuT?&_-M;PkKIP2u|1FF%MKr#eET`Ae3FAY_jtOX z(=Nx|e!fojp6vhga&Q+Uk&cdw2ak($LgRwQ4UGpHFEl=A{LloT&44BdO$eGWG!bYs zp@~A91#LF8Ind@p6NAQHa~`z$&?KNOfF=oTAv7sy($Hj}$wHHZwg}o{XiK0ig|-aZ za%l3<6rd^QjEgIoON!D3S8Z_G<>Kc`lB3fo1lGGrc`+UajX_||exRs`Lpds)T71%a)jQwihw z`Csn(-?l!P^qEht5TOuMdSV%$etWj-UHz(I&4fU0BXXgi>)aMU6 z7Bp4YLHKyYde$t)hT*ldNGmbBSzm1Ag*02ZP2Uj?M<|OGKH+bhE!H)A4lftyLygN% zTQzb|D`?E?#J;Mj&tn>+^l;{K$1DORMGm_{7{o_Y%Ig*|TT2k3Er=>k{xk zVt&Mq!*o{7%)WqxYC#@e*C)5+?5@4Xj@yanXf2M@&dY0VZqCyP6Ihvh`WD8skiSqm z=pMK0k=b_h=^50vy%ikPvrER(>vFxLIad46Do)_@%oVAT?&RWYQocM(nIP;l&@PzC z_kiP5CigvYQ;wcZb`1%3=ht#d9WFS*-S)11T)xS+rGR^#9mY7Cmev-wNiJHR$5|-j zh(-~|o_*pguklB4a|BsT@daHLz{Vb}eJa9pBxuC|Cl)o6>#3m|m&T~{WUcJuXT0sl zw7nO}y=+zUotn9Otur$^OSq|ewy@S>??d(SLOz_^o2!~5C(@tnIb76i-+~#^W<_Vc z7@(zD$K~#^pXFkfk=SP&eL%djVD)yw961giuH#1nIWou`efCaeKh_)xyFPae6J1i} z_4S}=e#<6r`NJ;`F0``^5gD62-Vw@?cZ5@KzF9{4C?+|%{qehZoaS0-XE_WrRCrDd zc?}<+Hgso3o%laN} zWGVTHbFf>ilhgZ)AP48-#fv!>an3%B4Pe359P1{PI@Vf=+ta)cKTW7@3I8~7s(CVz zqt|w#h;MAb+>J1Y|QH@C*{9WN}D^ycXtZRTq0T!vYY@%UhZL4pTnb8?c%dI0*0Cfu2LI1L?yX%^X$Ak9|^VPtJxkF zY2tl9dQor&SFY)y)XAu098EW;^d56@V7r>JrRNST{2;5ZAyMeb8{ESBk#izpDyOvi zv+eVNL%Fx6w18ztr%Fz9$7v>o;`WZx>{K?uP#aKhrVQF$)Y85)nE4=n6D+Xy#FKT z&`CiHJ+Zt`2{rt&%!915{%kwTos9GS8C#6Us>&wrT%z#IEB#Qq!spxE`t;+g$LcET zT3YYP)rD$jbA}xbB5U5)c6W^0>Rdr{Keh;y?wIo>^~wx;%DK}%cT>X>KMjhw^DO;l zb)OmWrDo{5kKeQUyu6m-_)kmouUd6g`WDs9axj>)YT5nglY4Cy^mn{E-!n_$c@38f zsl+F6Vn>`p;}2Wn`n`jJD%3TbDddQzmyfGuXyywp8+rEDmJXK>*-M?J{#=pudm&+LTSUr(UYX3VV?W$ zo#8DyqJQ0Kor$f0lgDtq=|#HsaKY2#{N)0iw4FP!8W{nro$4BGbp}_s!oThnUd$;s zxjQC!^ZrUr!7-jlH>J6Q@n?xm3WC3!=_3 zSwt;q9N$Fzc1&-(Tk2e;pH(Viq?^$tlpRC|#`N$jH zTikUuD|R-Fq=A}jo{&uc_ifrS`_oGw z69VH#uC+HtuZZUz4k`&~njxIgQ-9?x?Q=p*nzQMLZ`xZi|Ju*h^N&8iaXKT-zer`1 zzdk=@IZ4TOe}C=uPxl+@`1)04@AIfvxcXOK?C>~yv@P8U()&4XtvloV?c30f`S+~tO`dRt zU;V^&qdC9wDcP&%g{0uChU>G21M&>xY41Hb500++?y@=hZ0E_$537BOICD1KaM0iM z@RISjXGN8oE8kA#V#Rtxf`YLn zMhjNU(sB?B<*{5^uz80#%^4iC2Q7PHZXUqT%DPA<#pB8+E+FV zzcnW=S{secees@CE8dsgf)D!k@IAml}JPEy8eCo5;2ecI>t zb%%DO$4j%G>tDQWkF@w{s}`?+yeUml`$u%_*<$)lb%#&eY9Gq?M%lF*VuWIi{N28V z4~;%P!Y+F~_~1OlC}olKjMDFuUmM!3^+R5aD+c=;tuPU>G%mQqSIcxvZifiF=6(;ky~Sa_i2=5$_gjY`XX*Uw^6Br_uDr}p`08nKZf@AOetFl( z$>$s87D_Ij*s@IA%SJDvROh|aRMEO9vku7zFK7i*H;-T9E#qo3SHJWzzjsU9_a`=` zTfW?~cp-W0W^d?`t*UEEr4~nq))X0Z>U+HN(+Ip^o_&|>Y4zn~NPkP5#)1pS9P3B1 z;=)DOF7|(vUt|+5##$e-*8X8TSK6MK?tKl(pR5eB8s!E0is#>Jqg|-5xcSB>=$=W_pZvT6wqn56p4{57p}x|}&erB8UKZxqOsI*r+! zzsyrt@m47~VcSfFa}$FR$2E;|xQPC@7iG`coXPsEqf*0F_aoNzed^LpdV;ar*Ep%l z+G(U7H=a;=NJ_n58?rgMa^%N`%`1Os@r9QkyfVPr4Ur2=*GmZ%Ir9wZDv9F zs@LKcsTCpt(*|n`{KQy(_2frBkvFE81{+;wK6Po^*R#-O?ur#AFiG^GH?GEpQrOT zdIj&6Tllu``(qWkGNZN$=V=S!d*~ar{I!~?UKNkGe zvhBo!MO)*lRTZLV_VXnj%6(wAf@JEG6eMpWV|u-)OnX!Ok}tdKax^W{uX;@MeS72` z?NX3_BT)63kTWCjdulJ|n&8VM`rRW8}=sKk-w zBFgiOPrV4_G9P;x7`Yd_v4B#ZJyX`YNF+FaGK=%|36Cr*_fvs-n>g<7ZpzUgA2)e5 zGi={V;j8v-aw_-TuSb0B;1O&v%i4Ul`+#bKy>H&a7Ypy$T8Fy57w+%$y81On#9cF7 zjO%o!Si$bj4SE@$%;Se5GB5ilZH-~2O?)!04Vj@>-qCrAHz9rrPx25}?&Yk~9DD1S zyqO#MHDyRVk=}QT`%#~&_wD|iw{)R!?*}tq9Vn|4 z&f?>DY#n-1r7bUcNU{x+`|6c3gWBYmEgPZyRs6{vg@Ft67JvSHq-yRxV=T%kzL1w} zC!jWUs^+r6>b71(OQV}KDS0d)y0_O(*6(x+iT3KA-n*L*cm$Rz3aMYcp);>-+wObA zBasW22EN+x)HJp-LoX+Nnf!tDbEaKi$8sC6+g#_bO+I>FT9VouswVREapS86rHw0m z`dv;cx2d?;g@!3G7CfCIY(5{8lvvz(_s82MF>mX5%{o&TguU6hV9PGu^VoB2QDPb0 zQ#;JN;OdQrXWM^hy&31;rlThCEoV)fE^!-iaYF#h z_{N!9%;FdVJJoulkEJ+2u0gwqlOj6*BI! zTh$UJ6`uEO$hw!67|@!e`lfp$W5ty4_ha{?vB7#V--8vA8B@>pwrD@7AScTZim;(R z#T{}XA}-$_UHVA0)+x6RU#^oHWpvnj=)erd^3_h~680Z#Z}FF+9~Rs`mVHBSY)@Pv z_u7%OgEM0^!pnF?h&kblx0P!*<&(laZALzk^F2OKnUb?s6j-0HW?l1al1<_|+v4kS z=7h76wx>$@cZHn}R%L|=xf1VeD(?}lV)CWrL~)A!%(DefR_)-XHb-1L6&PP5y16HX zG}~Z(Gm-iF?uI}T(3?Z#Hyb$bVUzr$-G^!U=;g$&V<$l1<4(&bPb|ru7f+29o9!2Nxz3#sRIN1Uji@P> zaFq~RP^#*Xv41;weB%O~XOO{u~kym}g!uOabzm20>bwN`TYEtpsFCiy&R z{|wvq16_5C?*xqv%UvjLB@`OiJzrlnBVKpdT3%39tusrsM<>|OgczBz&+Dw~RWH#i zyhDf0?ixkj_Yap7e0*7ikE!8)%6dV_=B3z-;d!QaZ^DDI*ETDz#pE{)D>ST1o=Y<`?}-#KB57Srg>H4BY1 zMy}6XzcgIrO0hj3>b2CS+t7ig6{0it;mt03*^vqA9HHY9pEmC^x)iCjU2~Dayv+U0 z4klOz?>T`0W!n<{tkZKe#M`c_Gac{b7G}79fBt&T?!emjG1_k@E%l;;oXST`ayNV4 zcj%GA+>1*03*34_ZhGv}==G(MXyJqJRKE;yb z0s#Rhv~Rkcdg5;(Ju`XT_U7nZg4w{{%51Tsm2Cr`VklV_6Dy(z%-1yWrMz?1TN^uH zhqXr4b3cE=kh89sJhT1qcsPIB%G?z~w@Huuo8v;bVh9@B3$nf68-+QJSkEk;yK#q3 z-QY}0ARY7GsyTYMdIg8bcbALJJ1jm2Z|WNhYd&{K#>%%iuJL{HO|1e_6E&&9EF)^g zUaf_)cS}U&-P?I*UcX*tyOetJj6rFa(VTk$hJx=%pXWjia_W23l(|c)cbC(v_0?(< z0b&iEp1Wf=Y^NkWyM~1bF3r2SI%w#gx4Kr^gJTsZKVc>#N?z`Lllsv-AIFAV<`;IW z>+DJQN>S5$vf-wzk6_0KtK`P}+FLiXTI%;I(ejon@dwU{;eR7rWq413`f*dwJrZ;2 z_mmmJE998Opi2ibjX#)4@vZY6<{wPe7TaC`Y^xxQXSSd77l=jm&_Un)}@wk^B3 ze(vnGmO&>nMz9$sJv#jcs-auTPx?kRk$IlVW3M0PpZjoHL|?SY=<2?ez0EUHXGiW6 zb__|7ddW%&JEx@Fx$6vZ^xl1ei8o)hIVU~B9@P#pOTWHP6bo^dl+~fXDqOH8L1EpR z!b&G%8QFZ4FNOA%`|jnleH9C&w~x22tOC^?Qk2^A3Hu{Xwtz<1x$7Ss!L!S30vJ#3O6> z45w`ngebt4pIswPiF=eH{Uw{$=J7x8qZOicsu`A!=c`ocUNtt$fZM8 z(j6P;ywzX!F?+!&DQw2MFMFE$_H#a5TbQ%Cq%U;Kyizl#ZPBX5Rbo2w`c1p;Y@OS& zb1|o9^US1GtM9G!usK4GvZ~#lCfhIJ?CN#d>kp52@7fRD}&& z=3Yx4b+*ol+8zzo!kYPMv^q1r6Ho0D2mqb|ul z_fIFRN|;I+sz`8DYgM_CVxi~QSKApoak5|gerJQp&PJ(JizijHrTnM^*r3a^>xLg3 zyL|k*M%y!KmAh}(*Dc4?4mj@ECfR8<8FgTd%Bf!cM{V2PbKAt9aehm7Nw_odVH^3B z+ni+w{f?$#Z&N(@~#{}bd8}`aCG}(7XtZBiq!iKJrnyR_GQ|ax<|eK>88^eITGATRoNqIj zkbXh_(~GlD&OLkABDz_mNvW(cUoK$t)*Ur-vm~u#x%V$geJ~>NqpeeXJ-MWu>b~9j zU9*W>z93Ht#}TQXeU|Uvk|~Gk_YY=}uCxdGRa@&A5iRIWCwX9YxKhiLjbRJ87_v+zBIe%$EyPG@Ii|_W(w@iwwt?Rx2EkG)D zXNtyHwUI|j@KL&~mP76H{bq-KH$*8`_-cI%yncSx=Q-7@zb?LP8QLz<@_5yb{cdjS zbv{Ra<6bhHG}4n=baSTlzJl^ssy*?p3;1Jl1}vU42^`+}60b`hYKYiMuh=SY;$el| zUw3drBlEcuSE|8_!NpcDFTO5aIk=Deijs?AYfSxdp~YOcXCIH7*mE)<)r{KJ+Gg~~ zX=l$jPy5I>hR@anNqc@ubUS~m?yF92y}%N>I?;1}U1a{t^7qeG&YV${zEtVh|en*`Fv)*`;+DOPV;&tzew~I zRmpY?+{;*S^RjBT5w}kC#hHQPCW#G?pPN13yz-0hp1r2WM&D;Q9x9*V80_YzH{fWW zc5rRpRIukIckQ`!C!w!{JyEC9V(&ItB;HhPiC9xE5yY)9yzht3t=>gDFURGc+G*)sv+m3F?1dq9y&1fd?LvaxnT?!h>{EJE12Q!uaymO!q&K*( zzjtz3Eq$Z&J@?t?9OFAxR8t-J7VGR3*YgW~Ucz{zkJ)f5JxE^^ z_P}j#eyuY>Z~ZoGTw(3FZPkSfx~gN**~==W>Nj65Rc?Yx(zDng$(bW;_;w>Md zr06f_e!Awo8Wu>%@TiZEY;+gp!P++yHyY2l6uV?OEKmW9=RWzau;;BZK=Y(JD;qMI5MwM zH-*&Swo5N#*URHukD2hPC-~`RN;9|i8=aKCP~NY5$8#UHK=bYlJCfaE@pz>xg)&yk zXVJ6e&2e}xLVuWT=%uX@zsdWY23I_5Od-1OjKK;i^_f=TxA(D>xl2OVQG}1} z<2$f&b99)n?^i>A$?mNWJ#|D)P369%3vX#&|7b>3snpF^efk#ycZbmLUEo-FVSkH- zryaTWP9>Z$vwn`v`Hr+(zjBFtha>t>C!Cs@&UG#3@lmw-!BP?ERK#H@`iX zc6$>)(~w7c-CnQqeD4h*yX9Y{Eln9PvN}-q)tuvpsANm=-c_qFyi{57{b|nE;patX zlWZlr(!|}B&R$I0u$vW{7l+v_Of2T*zwz{y;lVU9>3jR-VpFqpgEoc8_8c3~Gq4Sa ztBAUA<9X7urhR+MUKN`j3-C_7QadG`{-jWK!w$~S#^8gNSKE}L!xW#NOIBKS@5u=c z>1%zn%AMvMSsxoA={lk?{wAeD_0XD?zMBaS)yLAgYJ#UKoq{<71HE-KlxJgh!Gc;v zZ}LAn@-4UOb|~jDy!N=)V%A;F8ZqmY+da)MNi9>duGrWuQ~XI^@3on$>%hw&**00E znGd4eMFh)bHrn6sS#*4xX!h#z4E>kim)zl4eWiWZ-r+`TVa4G)p&Ju#nYQp=&!Cy* zg-a~2JRUv9cNd|Xp@ zV$UNfdh(;Y2ZnZe?o|BD_=8)E{GY7jGJ&?=wHuc>U^;!^l^on{YOe+Mbo9jb}6D* zMeXU$F06HzqxF>Iilv_$8Z>2#?ku%ARQ|NFZ78=vNOgeo$dv?!tDo4p!m!942QO-f zW!AJA8S&2ECP7f}@t&*}39B|(eM{7mhre}>vEib(UG`4Ku2m1-OGrdBh+KZRpGfo5 z`zk*v@+&NS6|+ZdRZnNQBoj_C=19N zFB&+{zg}O2ZwANLBq!T`x4g5GlIiRDNmi?);&&TP>{CA=RMOdgxMu0D!-MAq>SEIz zIWWJ5fw1E)*Dh_^!MERFi^u2K6tDEVDJ3tLG@Ba>)-BU9&@t9dl)Evf(KM}#)xJB^ z`f+Ao3S-W~VmalL8x_;Vsw8Jy`Wh+R3FK%hnk6gUT{C{++p9q<`gm{r8MF7A0V-h2 z**Zxvyc16}omRIzs~@vbj5%6Nb?msvm#8fB zmKNi*uQ!F3tx#FI?A+$=fz)_s+WcPCZTn_S6u;@qk7zx@8q5!4F^x@{)7D8>E8eiU zyrSSl`rRqt!3*~nse4FR8d+Sd>=l^udsOFVUJ~1B8BjD}_eO{HP~k#E+&ZD{0&X!m zmzeLd+wqjAq4nV}E?vCi;COxg8izWGl4!@l=%aNyyfWU#A)=8V&dD2I(W;YL7T&Nq zHB|i3YO843p=}$EsJ>%q8LnOFR8YO*fYQ;~n@>(Sff-vl@Jiisd}EyJIHTl7z0oQs z)s8k@iyQji3N757`1j>emoHh|d~YV_(b&5-3JERP`D!!wxl)cP2}w&V4N@}fd6Z?~sjQD{C-dfAffqfkwI zk@NAcsHX27Dsj8+{l?7l$@lufTRO@f`6Mt{OAA^)YelcAw*C#oK^BYO7T1M2`aQ$_oeMPy7y1_N(t{;ZK=?xG2?J|DB5gC25T`y#~ zQasOfVB@QbG5W%k1U#F%Q-;&)i&ZP~=68e!DWWYFuht4If$EkTB<* zt+3tNmb#t$x{7X8lJ=e1ruhhqyEC6?8kX7KBdWN4dCsE1y$kcP>(A~Ks21s8HzyC> ztS+BCSf#LqNUOZGw%d2bsk?gjE@dz5dP4K>4Hd8FK3)D{SF)`8vPjoU@148H8%xY> z_V4=M^LA0rl}7sfWo2Ee+3JlpMP?2AjOyH0`wts^^;~^!U6Cbk&aQ;|H-nL8dCRbB z)9;KQ$1997>j>(dw7LPs$wUh)`70`C*E?*hQ5$Jma8oE{Yb55JGVX7C>dXh@H0M3- zQyjBOdSqEAjg>U`Og0;98?R$k87p1p_uA#O%6rxBoB$K0n&4zCkQ`C3^JKP zqOzV^D6bKxAYF6 zGL^tG|9ck+zMx5gF4m46?5&A38f%O_l7uWmpfg!|R?tPpcafM(5-ZwDdG$Ox0qrAD zSs&QbkYkY;L1$RM*^ZDAUEdIFQi%4K&UTm(g7vIOk@wi%I0BC*WbT?nUO zD=I66-G%H$q*EBIF?JWC5kwjlBxe8D1*tR!E7~3|Mn*11q|j-s5A117JgbOg28G3N z`0F{y1R5)Z-GxXDOoz&9V0WPxV{=Mj2XvvQClJW20CpELi@+ojSWo}n#URpI5{`eJ zMJG{MuIw&EDg+vt$jbfuEGn775^(z42?-Pmm1WNELKsCLQ%S58C*Us?;V*#%Vj27U zifr@KbN=gQ1O}ZI4PA5a3QS_M*10RsWsNy2DoJcUSNJ!N;{m6pULlgTUzH|WBP zox}uZ%5r6Q;h9Qe5=mrMF1rgo6v%=l;I6!elf=?y|DdoA!wt1@pwWmp76OgQM0iJ~F>yi$he#(7r&~DC7}V+GFt{<59mt^l4rf3k;x!v+WCHGX zK!d-?Tp9tn@!teP1&L$$$ut5DxiO7ILJmkH(~*s7R1&f=jmDUMW4JKww>YtX12_|gvu0-@k< zMn8tPghC~O z!QFYsM zB%v0;Wc;J(aR1-zXZ|z^_OXA{7!>r>;8SpihU5zZGJaz!NFJdv>3@m@_Gh!7hA12j zumtWV6dHj{MrlMMZW96D}1@Qr}F%s=)RNy~;JqCe1O-vYjK|1`w52P~w zG!wR!z&Iw}r-O2l5hbL79^v!@qB|LJ)qo7h7{Y2MgcICh=p+K-9qB}XG`MjzCIbo4 z5M2m({h&j_hu}XTGVzC@6Pbul2ZNo?Lf{OY3Vdx|x-V|XR6Q@Uj|L7C~qDXWK z5pOy$jzq-!exMEg}*+8Px?k6N&Gj(iCJpIu-9LFbXgW@4rE-!OC#* zWDrOsykas46a+gm2n595>7bW*B?LOLV{RAC-cb4g*j%vI%$rWI=Y$hHS#5Alw44jHh7?8tUN~Aa}gBLUKmJ z>jHzqpyL;W-&7;vSPdK`Auyf6B(a^|PyYXkb_@m+9SEF8bO9haUb$ewpNQrUaRL~k z<8=$d>7Tj9zxaW_!Nt+GYEKLQiurqnHUA44t^6h9L3Yf zOni+FZUVRoKMwLK+@T@7!++Dq!2zLQ3p6(Wf3cqlpb*&@FbQ6{phkkS75pPk?i41# zM7(}5K|TJsFnfQ1gkZ?XCNzK`(@zcKh)ASl0ui?{JE3PHbD7{Ck@YahSMWsUG=$1N zAe8`>E1dQNjfqD?K!Xf&`g(8}s08C_M8-eLD)O8CAS9NNoAO+Y%J}7;|MkQmE*c_2 z0vT?OUzb8e=0fcVuiI3}KvAYaHpf<{KUD%!3=$p`fx^@92{9ZH@?ZR6AeP}cP6cp> zkMcl+GSBb1KUD%Y2KoOc{v!o|V~D7MkvJou62NmJb0IDuG#aGh_&pdHVv$rL0l_8^ zC_pE0lZga6-g4nEfI#u%h#(Y%#`p&`!~OrWNZ5pihXX((BP;~F#RDM7#{huhHvy|h z4g*Q@AM9t#|7RGa;Mqka(-Gxn0;)%D0K(2_dfVwauPC&y{d`dtC_lI|q zAUP@?o3JZC$nC(lqlclPIzs~W_?KJ1O2X_C5gv!YVMur|4CDSH5+)Ie%23=#ydH@O z?s=M+T-mua6EQJ%RUctLlY&RwpqMal+JYn~S3xp}&{*q^g13i=fk=yqfOc4dfd>je zVc)GHAN(Fs3K$oAX+#X&M1UNe7B{uvd>Q2R#?2z7bnfB?mjJs4nZ)5Q1SzA6FZz;WRUKx`sD(F0Bs@O2nCGm?n{ z4ZfDZZ46b-Kl81hz5=fHD@pvX00f(mks!ea=6JRO4PWwt~GK_VMGL?CR1P>V1AgM3ks3CRS!V6)@T9{~n{1maYHhA0fT83{ye2=T|pKlf!2 zFeU=4!FwYC2C4@L3jvVh!!}#$2pR%UfiI1L_xQIA2KWEPeg=G?f|nBma1%b6hHVk& z1GQKLY(VOZfB2=s*AdfRJ79m15gV2NmdQV?p+a>Rp}}V-2n~6yhV__;4`6_U!{Y@g zjbMKn2%q8MH-RS*lt%l@IOHJ+)R&2PJ@~%i-z4o1{0GJCzYK)uCj4Q*Bv2Y!fML)X z=s0+Gm^PP<{}=!=5gEfp@P2^-g2!t*<1ghU#$W0ipdJ4~uHX6wI1$5pBp8R38X53< zh>nAV56>BRUYmA1_T`}Bi(C#$tpCz}<3A`AAif_0D&ozU1PWUDVb>7xhk-X^L}!Tj z$05LfOz`t~vjcE7Elpxu2{3^jvDklpv5*O0%i+ZYMFGU#A%^{h#)N7YenD`f(-H*s z#_)uVH#-m=0@t9tf!I5{7#VLda zH1P`pr*ZlLNDsUZejJ(jo2&ogKS19Q$8ZAy>ESh)2A|>MgA;r_gFJTt4SCt1LBz*H zcN*m1=*DdKjbkeSStcF_&_GIfQ)GWsfXoHxh|ePcI{y4}fgS&UnG+x`q_9M1f4z*8 z9e@`iUXj><1`ogCd7g~VdVvNh=`T+Iga6=Rnu@;((2$P-;d!2lFF*ke`1)(XpC6RL z2RcYe5@_&zh#SX%4-oLx4m#8j@n8c!k_1NJCj+x^W(Ob#KEcC{gYSj#doTcE{tV@8 z{{QFAfQY;r!>cx^*YpM1C`PH);$byB1RzL-{W$R3X8-%07b~i&C=%nb4veE9x&SnM zV1;qCKcl=KEA^5x&0bqeN0+3#PFI^i(b0wv*|bR7Iy5ahLz}J(C_{&?E~ol`hgi$0 ds|)V-v-kB2@O5$)Walz~TLhOa)7h*m_&?4N_C){y delta 23268 zcmai52{e|^_ot*Nm5?I4?B(5;?2rHCj* zC?zCoip2lE^=o^kbN-z(r@Axq%-lP7`P@767UiaLmO@M4EXYY>g|Atzh#fF7G;YmlWi-YR>6Y^4QVoxUB2;8|aIGbl<*+=fEEy`1V@=HU*TbyOj7QY(F;(4y^ z9#hv>TepbNAe4E*MA6oTS1Y%9^NGj)kMcXOsId|jDqj)EA#smyw)AZwEj!z6?`!Nf z$`w?3k9TwBlNCC`#m=0?17%0|WtNBXHJLOi zQ@kYwlXH%9udaRS<^IMf)q)x3U7fb}kZFv!HSIxdYcY0y!*fr5 zzHohi*rV{r@}*&8;|ni7s<+a57u1ltcY)t$DOIyZKUYuU=kvV>BaceOV)NCVGTSpd zgTi?2UF|%*JnTVM@GrMr&b%ZNA>gY}@K+&DXfvSAgvJGJ7Bp^Xv!Ts_#siHP+FWS! zpz%SQ4{ZUoh0yq+ErKQhO%NLUn~R|dLt6rEDKrsiqR^H>6N4rWO#+%EG%0A(&}5*= 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%0Ae+iZD}uV{ik z9ZVQ!QYI397~_UCk0>`Cy=hoil>-qSX*bnZy}DX<-88VU+AJ8y1RWEM>SGq%0DF>yv`8 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 z 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

fw{ z5NChf`y!;h!veiS22xSACbg-pWvKG${6l>>mL%bv-@){wm)K{iE}L~Hi7d0YI>~I) z?nTlC&>?<}^3Th445%c=Q`@4LvrCauF7<5-u)Rx@0YHD4rweM9E{s&zIj1wpd)<+^ zy9Js-USqCIeN}0b<)@ug^@SCw92fSpPkYnL!z_1y0kwmDJnvJfjJ_S9toZ1e`hGQoWD)Pu-BOq1(X5U*)3K+&m{F1cOK;(ZX z$=5uxva4NDF1mZLQ!MYV+7ZrQS+aj+N%zW~7@4FxcAdcf?iaA@S@spwQ0{91i zeS0-{5r~V0_?o!zQiOSaVN3KK96=%ER4cQ${7$%wNE zvdn1~++V3P-fyCZ>_LZ?)P1DO?>6Lp)eO{7Gl;(Pn!#W4o&1!FLG*uGF%aU+>sj=# z=MxS?M5-8IZ;VenQd2ur4Dc(Z1}s7yJjXR(*@}V0$FZZIR1ECo#z~=y!FUzZ?c-w= z1NBfbc&HdWR1ChCih+En7<7LX1C0YvoPl0?B@{z z9VY!3UeVhbDYJrsNTM$FiN?_tX51E-2bT14re+`|i zk_)1Mwb*BB9-Zi&C_;KCVoM^Rb5b-A;PVT|MMVSA1tuho_6uJw$wYxek~tCIuS|gy zI!@^&WgO}kBF*_b@HKx$gB$ti-|@4OhoZs%RMBAcLxcE!iUxm$eK+*XhmAMxxp>Ca zs`Eb+_=E_K@AIoEAjbmHKw{!w?~HCThG00WO}^IV*i`K#bIG+nbotEzeT6e;y_?xS zJ2s83%qbAY*M0VNeBlQHq@W30B~wHCUe4A07nz}uXSbofB1i*& z#PIXz!^!37jb;S<2n&s)QHe{IXu$95}@v*NrB?*VNs$iDx$k6RmEMLBfX?o?*yyC5ab_Dpp@nM9NGL~~h85UR|^24#9uJSZO@)Ki`d{AcduW^v#<$?X42E z;ULVMEbYhC4h6n?t3PJqMvoDO0czmgv;`Z9Z8N*cNQoq&HAZeT&bVT$waqIGoC@Rv zZ9P!HA_QTc5a2v~@wAJO2=k?fSVsYiV1(>}qPu!lKDA~Gv@C#?qExJ`0Ktbb1EXOG zDq80AI7;@g1;41d(`svfpOOxmIMsF$koyh)&`ur zuj8yJ<8o2O8tq|aJW+PweYCjWjA?XvGy3iN(}&BqBWFu?Af$zVgmh=c{*bM?DJDUe z=|#8MEg-|4DSk2QZSff#*po6_#;KDv?NACe&a+8jJ0SWPtKEgm(HaJzCT&H5*aYL( zd*B*i+{Vxod=;*Dk=E|}AP=o;JH!mF)t_~kdl16E{bzP-KFo}5ItoZljgTeki%M2f zo2J#~wjsv(eC~vQ`J1qv1cUY7oS%N`z~vta1wA*vUB3P2`LC9XZ$EwfczHFt*(aoZ zaYR2a)YBH)WZ0V1(>QUqdKS5^Kb3MZh0Vz)ZWpkbz_$`?=56$te72F!5Qv~D=T(C8 zH7;jQrZWP`aGB1S^OxQCA2NE12;}-NTM@eL?(N|6>f)$>D{a1XF~0u)rSZM`bp7#Y zd!O0%x~OfYqKTRpuQz9DI&wDQPCK|DQX6E5J=9p6{m z`v7;Fxt)6TSwSygc8KL~K=RCK6#ecq9%P^WK3kNy&7> zrevlD=Tb8BU^1#@nawn&d6L+wsVnsApdn48Y*M^#xZ4! z%9~Gr^%vR#jCEzMt#0Ey8~Pe6;RBWFO3$HHk1&CFK-;S4hhWUvcUCsVL6)EF*cLHc0$OO!0sUKvOm-R(XF3y#(*7N`5b)9vs(t-foh z*=y18+zZ}cpa1iz&9WC+To&E845V8hADl_npz1P#SD#946>ULhY zUDQSNKZ&D%I{K%>`KPV78IGRnf6G&K&G>66-S%wV zC3xF1{ysQdwoW9VkbbX>UoV4w;|#BJ#t$k?eX@JXAGsVq&L-+XWs@i?*OUJ0W_$^P z=T7n-U%)Yd1T!YvhXDGOgphydLx2!}c7=4g4R0!`#}JD=-w{CH5Up!Ae%kX0?l9{+%jW-!3x<0L^U4_ar?+=Nv~+IULmB5=>b8YL z-7!>w3=RBwl?_Rq2DR&77U>LW|@C@D7+$}ykUmhwYt-qCSiX$_yD`4UC{ z4vL2SUA3}oz4Fj@5DE0E7_Ts*z z{62!+c=H0zhYVC&$f5miT%JU53MQg?FPZ~vHU-tzXPyJbg=(_9#Q*mCrUfuAuip=P zeJ6nC-m1xJ^L$Z;k`vT&Ud&+!>BoP;XncKli=_g*jo3rNA)Czkh{VH${Ka7TV9ygIj(q>G4o7epL8jV>*`fXjRLJayFY0CH|ch_ebB9jW2U-i7s(&o7I38j4Ct6 z!*}yCq7n@^1wfqj}M1_9^(=Z&_I)wLS+4T`Uji}I+u-=ZQnp2Y8#L+!HjqYLS z>xr&+A11={gfD%(Umddbr3#*?Ke5JFoiE0BA4cZ`wIcjJd3tp-xIUeX&TejAQN$Y! zE(fE*?fGD=2*2DgIHV_k*Q$-{{5DIg1YUmmRi(9!$`GVZhgr;0)p>tWWqC|q$8LmZ z^1oGS%F0CL-`n%E(dp>yQoSjUwQPm{l1*hJ@OKt_p%(j|WjtEs>upXw7SN%RFkWp~ z!TT3gL9?Ul@%e|}{d%5|?*1P7#I&mWOM3!~uvu z#RPzOaHMrDyj%Lt6>EPWPScOEKp5`RFm_lR;gWWH&)|bL4Hp#Bx@fSDbI}0BZn}Tb zz@Krc(7Bj(0{Mv(p3O)6K%cV=?-o+L)Ny>BMiE=7@2kyc-hx3{rKZxNXTmITr>?j{ zf|uua%Mcdrd~hF=-hiMYzc@5On^;^r%K!sYFzZMwvCo$kl*1r?V9R(+db>ok_v7FkK>Om)h8 z2n+8|@J6zfBLR%Oc7&cOE7y!=ibb;<;z~lD3vd{1Uvt99B`ax+8ju+BnwjifQO;R2 zGncaL8mgtQ7kMz+Ed+P}v%z&hd(ZmEhW-D>05*MOFiK`+ZLwlss^a# zNfH(tT{Y2sA#xG^*i?Pz!ENK)owj;wdSeN`GULjf?mAQYenr!@HP~UHuDf>Fz!bkC zdxn3x>(P3=7Ih@%Y zuh`d);~la*2Z9>dm1P`IcCf~{Hx^cF4{eMoO^L^kv+(P7&SZFJ@c9l&GIlQFaKKdG zwzldw+s-e&tLoY#(?wx+y@%??pT%Qu?N)!&q*C|VL;L%k8E_7`OkEQZ%Z(W^FgRvI zc#)qM&TCD-w>U?}uwCPLGK(V?XQ(l$fTze*U_m|3fUjPFvZV2mvItN-!C?=tP#w8x;6F$^3y>^?%yDrRM=J9T|G~bPdJRa=zC5 z!d1~8v_yohEsZ_Eyf_>cmS(_t3R|r_)(e}Ci3j>H?0q$oQbN4 z*1MZ8za&u&@SmcD!L%Dv-)(~(K0e)_FkjsXF*AG;EwhYO z6@MpL9!$H&gQAQdbno=;SzFu|ah9YK?JSd65y3~R`mI^3hPF?`M0(#kZC}u3YGP&v z`l>~i#J?{x5i8TE=SI^BNnvESb*>-Yu2vi4w&U}HCox-h zyOkd4cH0(1ztW3TK=8no^{`xkq2kSGPJe6yinGNs&-3`+k(?WYGX9Py^?1odM$_K4qtW`^k zXHDNmjqQ4?Yuc$HeCacoUEc)49wT7ywq0N_tgY!CtzT@nqZRoK7uxPjtC}~oH81p? z$z;M^rX8GW8eIocas(_oN*zyf_kR%aDf$v2 zw73d6sdTbpNt#AHFPVh&1`i;dL*>at9;IOSTt-$$FWzzItS)NNp(YijuRHKB;gp{z zkg4WDc`Cuvl24xIoK>OXy?giWye7#Rb(S)bLb4NaADk$m!08R-@UMsTWq&-0j{m$Y zCy>t}wa;?B-+Rb4rO&N?YSEIFX*Rd$_xeXN*_YbKk%h=4^Nc9GciA2M~fo_Wd}EWZu9payi2&$WIyx>_Zi`gF!Fml0$2TNP+Chs}wUAL6A~y zy;M!thC{tte^r~X!PG;lD}UVs(J!5)1q8~ViS%{b5$x4>g4PXzB!I_>&{qJ2_*C>K zpyqa?o38Y*PZWgnWR|38CW|wOwk`|1qQz#gwQ0o@zUbr;qf+bnY$y+z_s#_L%txvm48(3U||oV5^Q>9 z9ZB51T+l%?Ggy}vQp7>OJ9H@894Y>bUDvcrZyOj7BrBi_oYcFzLzlf`{RC6~FA+&7 zz_1I)=OkHN5H8PvHuXb?1Saik)2W(JBp@u#7iWj&J`3!PBh&z{ zZ)#%ld`hkZONfoZ)PGki`zPCNtlHg~Mx!bPr`BJHL+B=PXKF&3VHk-__?RQ8s(0R7 z0JLVab-wwRe!2+YFxv6ZJPHxIBtX2xcygQodjizmNW&Ju){R+z4TB>1F;LE@B&@KE zh83T?fzn=6d2(ejnYTn6TDKk@fxR|znn(fg;2_?{o}e(pkAFCOfw^x9&HgX}H}hyg z?H7Qm89IVon5GKGwaR?H2lf>TN1T-#)H%0vw8$f1` z-!Q%B(VZuJj^Hd6A)NEHm~x_}kVaZ6L_i7VSqMnB%^!p~mO?-d-A?Ea*jxRgE!b>NWag3u-g8CO!<;gurU;?)%~`c}1n|iu@@Yop zAszv85oK^&md1}XI_IZ-08h@E$3P_HUvV(*$wimt1hCr>DIt^v=7~=xSi!)(fG*^8 zVBiz+N}2z(zYkTw;uT>czj9sTtJi!$e|pC2$JULsPk*7Ma`v4u@BFcv19eqhw0Zsm zk5y{Y{Ip3!3xavABBg%roPK+yd*m?FRr%CBZc(pN1jCn{deR#LQdYxa{u%_D@ER<| z#cL2iCUCr#!EiQ|6y)v`w4=?lRXF+&Zy{!iD&DEVO?Qy3OMdK;2*pVM)9=dgrlfWj z3~>?(7k{tK4^MXsD4@5WufH@`&T74y1Unl=F^ezawiF1$KO~8`me3(DbR{C&cRtS%i_mH z1t|@6&_KY?eF|#-A5d(oDwmy2k&YM80e+X-IE-2|G6j>e-87bDQMZeToQbV?abLs}@2x9<@uo*6pwbXU@T@!~~`2F7&@UD0Ti z0F75~f!31c7R888+Y}An)aFDyMRB!6P$c#WMIc9@hNS2FaT=Gt-yo_6i7eZKWvE}! zWZI?yQ^FQ_mK96=(JY7*qR0{i)IUM8Q6fpc-WPv5op8NawWt$T(FVzfaN#5VoY&UQ zbjLtCvET(Gk9hJs<DPOSZJl-?88dhNXi(MM7bqHnW z+sm*!$1l6$_H=u0>lxtg2X>OBGd~4e+$+FK3d?Fx(r3hd&p}?4K^g@t>L2#Uf!}`x zXdir#yUw7ydM@mQhtP)QpM6}?v)UT3E@ZW1s{Aw9S8sGt@AFNU4x9X4WuM)FTCER z^aYBA^9(;GcR8({Yqn^Z{!#njHNt-js!==@+yAmNhHnDqm%xTnJ?OEdX$@|>_be<* z#!>Ca-Eum1w~p1%TI`{Zz|j%|ujrQr71O*k(|h=JOJM$crylM>aOYOC@32c7+bh^_ zXjo>f@4#QuB4lyS!w>y}|BYJhR`{7ntqiYNx!ty^)B!+xZ8ggBCz-F z5d5cE6t?nGUhad$S@%%XQk0(}3LTJF7itf-F_%d?_iXGW9SQa5#?ZZ0%V4pfym z>COTi{#5lTrqLnvv>reCFCPgW0`U)7+T&B~Pg%vnewm^|uw3*P^KpIcr&qA=b6M$F zkpIXs;J@h3%{$-gF3YY*kUW3l^o-zLcDQ3Z_x%XS`TjG?^O>@u%XQxOZzRR%kculu zNk*fd5A*DnpRLz{w6zG^=_9z3A+IO83bI$I&oU7QpW|Y?7cmzAFV^-g2lHImrhP>U*!6~;HoVq9Aw>dbuawC6EhWLs)jJ77y z%1yT8z5vUr^a*c6)+0e(Chb6edB5_Zd#t8|Y)~^k%8RNJ@h3re=ebTiq&x1$xlZa> zGLPl+yZ#$@)yvUeU*s%k$Tz9SKKT8hsnG+?fxRySEA3n=dz8zSb#WQt8eHP$Wznk_0hqWC8#C&;T}Uz}O)UBJRW4A}+#Yku0)K z!9%9;7zz(0l~@*F<7$qH9MIcZPKnAJ;U|Us3HxxJ4F4*($|hMRxyWZbZ-!XNupgB+ zvoX)dGLWvT{0|HBWE~58!;9-67mGB{-4Uz2VJt5esGJ`m%?%DL%lW*0Nd%bv7i1)% z5SO97A`_>5gCha~qL+S!BT;{SCysy;xlV{AJlAh-=;n3R6;-ddAZX|=cTIid)~V4e zKU{t;>b@09w%4%4qjQ{Z?k(^iP`GiCGC6&eI<5yw2wW!!0@MJ~gD`gdP%XU3NmaCH z^kN5RK4&#(!Es?3aDe|jMG{RZ??oSxS|o7IQGojJyb!KAh0P-;_C}6wl6!He@VW%f~JR0oW%3(!#{TYu2BWw{>UQqBPRg4zJ>>g5rK|k zP&%CJNh3@gHymv6oC65q2jM?pF*nxH2hlCSUOi9z@Ad$06sT~y(QSvV2&^;9yCNUx zySmXl(so$`7QN?@tdf7q0kpP!& z9+=!$Tivud=(lxN>m-er*JhWBe>KYVS9ZL3v{R`;PL=ws5fuf)5wXp>#1`BjH;^s; zj#q}=JS+3Q%=l`NFz~zA9XB>B-(B|QM#lB=q~Sn)L-Q1>uxkpQM8~8x5B&S;hxfvb zw9=PmTo2oqum*olNFiY~*4cTjUGG4!yA8;5w=Emz^dO6EOZOrVTqHCB#UTx@4R!57 z09WD!zvA_SItoya@5=FgceGI?7G0~$9cCa;;fzM+WQ|OyD`_-+DP!mZMA7X@=N)&* z*m1PwEI?-0WF?P6YQuEb%BGbtBDW#gKnZYF+DMvpJmY`9D1}3%DdXU1&0`yxeXO?y z9*LDbSFiDO%tx{xv~si=Y;0txZ?jD)?Mx<_IVPJU$(We)ViNTip6>*ZgC-Z?Ig>e7 zh6wB%#g&1%&^M^Ox;bXuJgeANpdu&nJ+tOo)M?rO^qRvZ>luT>@l>~3uBzVg@3z?C zwmZ1}N)&%@F6;$#lVo|+UAE1-j0^>AyUbeQi2f+l+5X!)Z^3=4y$nMz@IZyb4_j{F zq;4?1vKy2kPFZNcLOC!kaxx{L()9y%v_2#r1UKzicSNM)0ZnHZ?vNsc;rtNr^(bgq_=OpZ1jHx)mm6L4FG}N?q-{1CiacJ6MN_zkDq@g69{q8Kx>^OSb_1 zsusc#j*xYA^T2cr!}d9&DFg<)8e@zSw*KJReze?S{LJ#AEC3F#Jc7tTX8qvus^fDv zgqDAKlvLtl2&r3HFx+2j)|n|Xp`yri&(ya~b~=bv!PtjZH#~3y+chGSo_g?NtpZ2I zp18TsC-uL;&0mTG!6i^ad&1X46-i3;1*Onn-=Hg(58VBo$(h}Dxuja200%5#F$ zpPC2WpNbNblM^eluGSIc-di(p0mtwFCo5XZjdx3-MM!^a8ux@onU zy{U0W-WDG*1WMvjQ#h$_(Gf3r`H#h4v~c?pU=*B4fjRwBKa(fZ6#Q{!lH6mU(P@83 zMz$Q!X0!8|8Bxo^BX))}*DhG&SF{P;eFtdcRoVOvGgn_==GRt84XsG`l)a}OJa5CP zy+ceL*G_VS4K^MS>+DS)nCjTh5#6ED()_cpJBi@OtocKj{--yQJlk~?7vf|L^+xF^ zl-@ChUBlBfij%307gd4gicvQ9;Us@3vr;i2q?`j8cDA~O{08q7Gd4p{NYrhMmd{-@ zWK4XrfE-B~(}#wQf}zVOSz#7zADGl=%JjJ`*cJ`2D<3Y|@%Xy`8MI4hK~ugRfD|S~ zZVk|C%+_S<&CF)`dC)-;8LXdzxjiSF+6_W(vY#1FA>0Pco{Z80#)7XmUrvABC~x1L zdJ(|R^^cjf2T$E3GF)#6Rx$uMe;xRt6U4*ZyE`9bxj9Hxq zVL$^Aa?emEgjW^E2OcQ^4mNNX9e43P2b@5q+{eJmFf9$7IPj*%vDFwsE4_8t!q`_M z*8)SKcxp6UZo2%$>boASio zqX!a0V3X{D@J@FxU%g=>`Ey2<0UX*&c~hhjrm`|xzW(rL6$i`f_m@s_uQx4YT0o1K zlG(Ey-;1zDr&25uB?;H<=EV2l{vVfzt~c6#joo@pyFBlcu1n!_>W!~=!GK0lHD5t)` za)I>nOdewR_5**%BC=Yxb>HM>&VVfpPb%st<%^ukH{hlf2;>QbF(Fl1A@$o!@-s^e z@295D5gTp4#l93=aR5y<@@$|(8KP!#XY$nGQ<3EqShU1I`_pbnKCPb5p_HW{ve6UE z=4oyWhs6jkondlUeh`Z6&=8ZrCWZ09RPKUMYy-J-u~&c37oYQG9_AGc%;frK3oqO) z?lIggc1WF=k}k(8xpddFrQjODQ1lRknwB-B65>r@A66W=X*~rdpDJK$R>L?)|_tEN1=uVCFB1RSC1AGgwQ+b$)X@-_*()TZhkERTHs!v## zHeb-PzN>#R)L_AwbnncuWH759Td)?x7mDi4BK?cU(5?+3{n&BSbjt8I-w$UAaUHrY zo8=3J|HecwsfFd3A#(Tc?NQd%{tjzoj;tP+}D44UxQxky)$Op9%}Qz z8HG51)O^jUUs|sB0>97%%XhF9RU_DX2!rnU7Yu)EBWQ8rvqV|T0Dw(`i=O?B21ht~ zV~alJ?gX=rfQ-fl`1Vhc7p*4rMb4EtL6l4#?2A#^RPm-Xe^xFr_6Sj?EryD|rKv)< zjNqQ|G00p_7{!lx+W*bPZYa8A#XZGDdTMlQ{zL!)m%w_AOI*wj~rGAB6cKGHob)1I_!vifj&-JMr;@PC0#iV~filOeXGbI!_+Se-f77Ks~P%!3r14Ir8 zwQ!4Kj;qEYksF(6CRx*D0}}LNkvs2(oQTA{)?Brb{@Eu8{NXqk#Ps3f4~z>GvE*x? zlCPKN)e?}7{whMMAfL15j>NxME=hu+t}>P(v04;4UOK%p^bh44Na}jicY|+zuf%^r zgwlR8P9C|>#Pz@*Qa2u|J2hdXth^*|#GwF?n8*hv}TdpObEVcP=gl`rjch)gg zg!0F`^RXmDC->dNiDyNfK_s#?yyd<%NTsM|c5Hnaef#0&f8p-0M(8Ms*vi0DTxmIk z1VrOmUzUe|Vqh%Wp2gpb+u4=CN#I39792PyY0Cso^9NIpgvt5ee1(DINB`(gzRv$n z4cG+uCo;aNhx+)X#rLJMD_<_DQfNNAYB{@tlLgDbo6GoL7X3z8m!Z8P6SohNBX0zk zQT!k&f2~?ubKANRe)q4?LuX2LY#0E+Ti((*=QNonX%nCJA<3w;2uYknkqSx0^}p{f z7T`^^qqt`>F+p4xd;NAPzSu7K;@6A6-d~ACe_gg|n^)x}^?lTZP8&NxFv-H@*W0%j zuWv8DT?jasF9aQ=Sdc`E_5R}XSH8%g|LuY^KZzIjX4Zb80$3h}&@L9AF8+DJE#Z84 zfgl)MK&XHv(qBXY^vQ^B@kPqOkl@xWK3@f#dmoPN;n@CG=56z0dF8{cj@Smm1MXED ze|qY4y|X=LI<>#>fUh@~sn|}U}+3U|=VWwc?)A`~`L@e?BbI7}0 z#@u^2Xh&iT?Q<#AOA&bgwF|%Fi(a=?{RBz!9FlHyv##?4irntq?5f(HoArZFlleTR z{Nq?3szy6z>?|*~Ra%UX>xR-|Th)2Hf7?Irz|+g7Ke*^0b@HpUH3Ec99;WwQ55|6U z`Xl;qyYvIEPRnLf)%)g>X5H>|y|1!|GTrB{542pIJf5#ZpQ>ZMwlq$!)eOdd`a-YX ze|-0RYx}4-y4IyRJyC|TB(jGmzE_Wj4RO$I$JK~9cpVc58{JfPBi*_Mz+Rs#fA8G` zb=;$Kt;$T-n`7bTEQM$HHM0ZnEpVuWez?IRW-5%~c7i3~1kLRn(_T7qoDhYujl+SS zQd~)C`y?094Ck)g0q59dU9EM~RP~F2PXsN}&opzl-3=)E3!DLtJ{(3W!QwE1C1#t| z3Vg0!t?a~ML{JfnrEn9cHxwdaf3VHZ(e$sS5W>@SV|>CXZL!Z(685xxr>V2#g#n8K z|55T(!lX*hGc074rBP=iF;q(#c=xE2Ln-6Gdb^;;$6rqZbm04p%Xk`~)foYr0<#(; zi$HP^g`!KmuX?!-`QZZs=%n=vT2NIZlJI*A!vGygFE6S8ewUlT0$pT{f6&(jLTI~~ z4&#|V=rXfY%E_9%oLhoS%bCVV4`?Q(@x!s!Xqpf7x=&#f_>-?q5Q3i8`PEBfs8@8W zk)?v2=O~u%_y^Wf8$&c&dVr2%jncAja6%1)`aTfa&@;t{^qPZS=U+INYw89Bva7PH zsJ0I@p{;13)kQ%q3+r%je@D7uXH<4ebW)~cXU}vD#Zki@U`PWkzEp^L^!J9nu<{PODLAR6zbvh28|6 z(I8y+^iTo&@u=I+Xhk`9EWl*ZY3jWZkC_$4gIO|UQQTc&Zl8!Lf555kw8m0qloIGJ zkNZ2iOK9&h7<3v7eUoc%>S|A#Cu7AT6^?b!nG8nP$^s~D@mmLhh0*<{1wBveHZQl- znc8{Ql^8G6+vzY&TOe)h6c!E-bs>EQZ+BzvcF^3Vc2ZfP^7Apj33Vke#VRjFqrD1DX;0?d^!!y!k42}c6Uk)Y>D=;#l6 z`h%W1utRN!vmCN53?>D5d0L86N@;Y15F$m0zf|12r16v<-;Qb7=Iz5W3`Qe?x32UC zoq+KnIV5xBc8vN&A*4|gj4>;{@^Lu~bu-`t?sM7|&Myc0o%j5~!f`L7>&8&dS-RFhEALNQ1^onD6MRO+LHA%z=#j|9(S1*K6oXM#t!ZO=#f#xHE$y?1?bMyQ z7-rXZ5o1m*6=28C^4}n@ZZT7zkx2kFMja&VW4eu~4H}1uyw*6djhECDawz-9)*5^Q zBnpKM@@YfQ+y?2qvCIh+fcR+4oxB8VJk(&5cvKX6e|Hb`G|IxL{bobYlpgkEXc3BP z=mibm%qlB{DD*;@2EzJXVb+i<#F726X!Ap%Pv;?IP&_7O!a+)((tS6Zn1Bs%f@XGv z`_90Mt**9pdI0x|NfYX2RcCn#D8m2~=~xd#6H=iElNM@q!hrUj?L(oosD?h!dZ*ia zO)oH`e@@rGqXX7xV%RfE0u>mJQTfkBRbCcpYb!&b*_PL^BAp>>CV&~3kbpLu>VwTB z9h6O+K4GhKwh0(qmd$A~m=6!5fog`3OSqlqG8W0gxXV}!eng2pQMElc?{Q3e{#&%CyX87p6VmZPuTjoLC6mPck<|Y zLFln^D1bi*ZUB)J7AQdk1>+>sJtx6NNLbmS;2VuD9m4%dv8xO2&1lzYT;`x;vgaO% zKLqmumw_!?X2GudSW*vpV(3{7T{H|(dSmQ387wR+lYHR}G~kAM(b1Ke@p7S!Q`8OO zf3prUj+o&7SPx3AvoSor>tM~gIKqY&_})@hW?-*tw7Xi{CK81#vmoidpWRoyjJGk9 z^TvXp{n54Dv0%E6B6KSIv?foJ4Iws6uZj%4%8PM%KyW5Pd0vqt(^jw`34{N2vAMKL zuEt6ps&JGg&DjFvKSA6Bw?IrQOd*ppe>{&gh*!tj-js@;OYo9evszcRX0PpASNUQ; zxB<8rCi=?Iv#%h*R3a|UtI>4q?bZ4z8WYZV^8b@4LU0^hjoBPN!w zPM>lF64K_Ri#E5$d@(W(j9f;5Vvr*=w550oy?yMJvC(<#Y~2>C$sXh=?Doc+e?TWh z#)i6FjJ+Z^Ab7~s1VkEGf^aGZHvpADYQKj?HENra;b}mV?CFIV08Y-#Zhs(5;$ezA3CNRsLf3t6YEIC)vy;}KH_CmD zstJKgTcnZ>>B_DKhkXy#ks4j8%dN`Ge$@;PG-3L;Cu$6nPYN#nPs^|XNc?DG;n8!< z2f`5m({nx@$KB-5MJprLHWd$(9@>7`G5q`unp_tUw zs7}QLP~Wr!yNRE*uc$`0P#3`Zb)#&oKNrj zD(mb8``vh^*98Fl7x7fLdbO!$E^aNjG- zM-h#~So8czLKgey@+W3esWFGSEPHBBnJ43bMY03)X75=@q9T9RrYv=1 z&oR2a)otRJK*b8C1&k)oOn+*ZP^^0Q}?&~A2zdiKMeldcGZGhRCDiXeZQWGSr%L_mI%OR_MZ3tOp>V5CQb0=UV3 zXN-XREC@R}LUMjhaNt@~)y3$4b8Xn<&YI_zR59ay#!l#iTSx)tH%|5|Q)xvCd2BcZ zTX)*JlyUNM@=;QO_5IY3hGu`|gx*TnNUkJ)v{O9sUhUEY)v2S{Qy_v6u*J)PDdI1l zOzQC+s68MMo)Y^%ZoHglm!Z8P6Ss4sBd!7gIJY9DBRvZQ=9({km!Z8P6SsD-Bdh`e zGM6E4BPo|mvm+9J0Yjudq;X=M)4EL^)R&ypTEk+HxOG|5M#%rY0}IA>a7a#U*(}4% zd>?aJ28=ccqxs+$dvJL-v5=)$hH4<&LsJz^EmN786J)#SadeL+m7Q~E> z2p(=mWB6xMI!l~9VzHniNa8P2wqzlrS*<`6RWU|S_P4=*tv&c>KmZscB7rnTx2DL6 z29Hk|xgh_Burjes^lzmVAx#JKsR8Q{Jq-RF;F>tDuJa9&i{%{rmS2#_MW>`iH!KAc zf+mKpU~HBQO1Y*_6;+=g4P!+E7MvjuKwmp*X&fG_cKLnIGL`4Vyu#!PoAT@e6O85ZJJ#_X55ClDwfY@fw|+o{)CgtF zffeLRv2^PQe#xGL3^GRgge#JiFvd=Wk$n|%QB~U zsPrX<4Ne%RBIoST&XjhAR6DOea(x|c5*`RYlBY3$jo5)w2l^?hUAmq0`)Oo(6jA=t z$K-~FP98$Ov)XJg7NU)X6eM1K!LJ20;Bw*dq{bDApy4Zfr3>5kgBmqr!cW}VXPSmV zLq{a?nDS&@V~Uq_M>co-+9*3>woEb>C3!5A&&2cw0s~R)jiT){9wqJzDWk%GrxpXx4#N-Te!phbCQ z#zH~2_h$!49pEz=j3#|7%UU%5p1ud~ewFpY?Dy`Eq41S=h;oxK&r=RW_ig!c<|NOo zDG8_44V(ZTGVg#|uIQz+DpI=bMVvPk?IbaO^kn0{>A+p%xxsVbHYr}$tg@6jf!Bn^ zXSBn*gI}X|2)T>uC;I4*T)eZaKbG;%Lhfj^_wu|;cm%s)AI~zuYqkmE!VR)Cq%RQ_ zzQoXBJUQAMR`q@V+*XLksZ&4?Zwqn(_19hqnJ3C8>HeBr>`ZnISeNCtfF9YFQXXu7 z{8F3zU9?r!dD~-hpucUw<0Q_bHIub5etjpU4vXE_H~phetQ>ZI-us05eYv=tFK)kH z+RN+3;xn7;l6j1?*kQeuSb6Lmu8wEBgTc`-6_cp@quZ(B5$^^$IXt#Lbk$Ha7|=fD z1c(@9f~MeOiuJdrSW^KFe9FbdfC&*vTOV+7Ja`_=)i7_W#)ro0&i4RKRR{#S%9W;- z!@P#A;f+sI0rgwW_FB22s_On+RJ{|h5z&XwEKJh!)u76A!xVD)KZ!&V2$!L~A``bV zw<9+UmtpNADVLJNBa(j+^DlQlon76X{rilsTtzofFVj_5(l9dap(&o!_^05BdL?MYE|86;<_E) zTnjc>&O<_J1S5J~t=er}-d`<~Os|5o_)vHuksvrb`LoY`Gbw-a2a_0KyA2iOxnaymzPbOl&NJj2q_WaGe%pGP9P&-uu$`W&wj_B1X;meu$&~* z8{(T0OCW_7i&@o)1>aCC_|#&-M$$4U9lxu&VfnAUfJ*}=2yR@p!vq_U8 zsRzd*5B`{VO$7IQBFG^NUxYs4VGKJ&L^A94OV!@z~&p1p|7D;hFBQFB>RXLjOz1h!oDl&0lk~|biDNqE`lihCv}fAb`Ew;2TpFqqNXxeAbeU1BX&b+* z^W>pWCv#qJ%cJycaXKCfhRCRw%iqA|STtKUE}(x32%zW)tq*!b2mwHjrT1gf`~>(H zKp%iu3@#S+@UI|Sb%Yj4dO}f-4t5uM&ccQ?J<|jW4a)YJn8#9;s>VR0a}aGw#tl`I zFH1*gM$r2`&#aF=m?&kjyEA8<)}_fNdB}^r&8^GoXfgn#n-a#7 zBL9!w=l$r2K4sT$Haka_a+8|_p{jJz)}>Qge0>&mQq*xJ7OxFEBe!s+lX)e>Ly@Eim@c)!HO4O)daqJCWjB30ya(iOM#<6XJhuEgIv$ z!RcZ<1?gjMAW4?p=dD^dN9C+1p^;47Xl`nHmUg<%^ckb z+@^nerbNHVX2r2K8%Z57M>$gvgd+>X_s+twJ+v@<9|#C+##$H-7&w8(vBpFp00>`< zAu+Ain<7Uk-lr>-{^l?N(5Zh2=_!|j0|80w4M;EA76su8J`O?`NHYqANt+r$W5*M| z#~mob$UvBSo*~m=a+Z4jvYfv;*cFCOUAuvUH#+w{G%(ekR*=dm$vD{!7t~x=ktYtE718`HHVR# zK`I+f@&LFi-aq$<;c>AfLa=WDZufnMN_ISE2fj@a2b#E5T|IwfFG_XMzr(v-eJn4J z&I|ruX~7FPg<6SD`4+MVpmZWT&15C(GFfQ-j0>R^XduBJr@(Q*ei(t4F0#ns2MSm} z$aD3S?qbM7;zyG@uPZ5=T67!`CMRLx;0<29>IUCS=Q=Ocfm=LYxYqkex-C`|7hn=v*FMK5o*bK_1=a2Ka^99y*V?|+-?FP6-oeSNBQDK~rj z-NhINzH^~4I5wpRs|h2}oTh}IzPKs|6kJ0d4K7UL5dbcrYAUA{gEOB5evI{|D1_fI z7N!(6?bH>ok@F3U3odgT8q)r9#;*Fnrqzc*g&}`+rQv_n+QOuMXbf(g=8ek_!SnJ1 zgA{j%wG6CfSAJl9rj7lR@&gVIFofA!E}EMzKVXk3KP-5}W_NQ2d50z%=jhro%*YUk z*Lm5UX1~<3Xb-O0gxry7@8XI60y!+n?}V{n;2U?VT?nc>soEG+*#xk#do6%_B(#e-h7sy7}_#-Obs5&lqe@ z0~SaQ8%0DY8DyKYAAX|268gUkC<#>(JolqEK_pbSW6Ie|beA;?oKYPXO`}F-am04Mr3k zr{8;7Wc^0XiP*1j_I8ysLB(b*H8&4^NeNSl1S@K|wL z3vZ&h2_eUd@FYG(UuDsD6AST>czW-ZB?e_hp0b2iRs^5|i}f97%hMjXY)Vnzvp`bIdUU2x*wi z7r?99zv*d&(**gFgcu3X6bB8gv(xzz7xv7ZE5Z(0imU(qhr>lY)4W+123oX{YHVn2 zd~AzVHIAB&Yv_))tDAIXUed}8Uqh=zf2Y)|rw{2}Q5Id1w

!q9K5c*51-BHoEV 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

-I2Ic|LzCv(K9C^LGpvdE$auT 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 diff --git a/Documentation/changelog.txt b/Documentation/changelog.txt index 18b7732..74c01c7 100644 --- a/Documentation/changelog.txt +++ b/Documentation/changelog.txt @@ -7,11 +7,30 @@ To do list: - check feasability of an online algorithm database. - add function to create algorithm template. - add function to add a folder, somewhere on the hard drive, to the list of algorithms. + - add new tests to test each function of each class To fix list: ------------ +July 15 2020, Release version 1.2.7 +================================== +The results of the following functions get_variable_list(), get_group_list() and get_dimension_list() for Hdf and NetCdf classes is the same type whatever the option used in each function. Now if details = True, get_variable_list() and get_group_list() return a list of string, each string is composed of the path to the group/variable + group/variable name. get_dimension_list() returns a dictionary of keys, composed of the path to the dimension + the dimension name, and values composed of the size of the dimension. It is the same schema than the one before 1.2.0. + + + MODIFIED: + - if an attribute is empty but exist in a file, it is now kept in EgadsData, and it can be written to a new file. + - in NasaAmes class, scale_factor and missing value have been removed from EgadsData metadata as they don't exist in NA file. + - get_variable_list() in Hdf and NetCdf classes returns a list of string. If details = True, each string is composed of the path to the variable + the variable name. + - get_group_list() in Hdf and NetCdf classes returns a list of string. If details = True, each string is composed of the path to the group + the group name. + - get_dimension_list() in Hdf and NetCdf classes returns a dictionary with keys as dimension name and values as dimension size. If details = True, each key is composed of the path to the dimension + the dimension name. + + FIXED: + - in Hdf file, attribute created by H5py ['DIMENSION_LABELS', 'NAME', 'CLASS', 'REFERENCE_LIST', 'DIMENSION_LIST'] were transfered to EgadsData. It has been fixed. + - with Hdf file, variables at the root of the file have a path equal to '/', like netcdf file. + - test units have been fixed. + + May 7 2020, Release version 1.2.6 ================================= FIXED: diff --git a/PKG-INFO b/PKG-INFO index 51fb1f5..e05b21e 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: egads-lineage -Version: 1.2.6 +Version: 1.2.7 Summary: EGADS: EUFAR General Airborne Data-processing Software Home-page: https://github.com/EUFAR/egads/tree/Lineage Author: EUFAR, Olivier Henry diff --git a/README.md b/README.md index 80f02c1..7b5db0b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Version: ------- -EGADS Lineage 1.2.6 +EGADS Lineage 1.2.7 Developments: @@ -38,7 +38,7 @@ Features: * Fully documented algorithms * I/O routines for common file formats: * NetCDF - * Hdf + * Hdf5 * NASA Ames * CSV * ASCII diff --git a/doc/source/conf.py b/doc/source/conf.py index 439ea33..a7cb151 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -48,9 +48,9 @@ # built documents. # # The short X.Y version. -version = '1.2.6' +version = '1.2.7' # The full version, including alpha/beta/rc tags. -release = '1.2.6' +release = '1.2.7' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/egads/_version.py b/egads/_version.py index d45fda1..9508696 100644 --- a/egads/_version.py +++ b/egads/_version.py @@ -1,2 +1,2 @@ -__version__ = '1.2.6' +__version__ = '1.2.7b' __branch__ = 'Lineage' diff --git a/egads/core/egads_core.py b/egads/core/egads_core.py index 5f7ecd4..e61ce68 100644 --- a/egads/core/egads_core.py +++ b/egads/core/egads_core.py @@ -34,6 +34,8 @@ def __new__(cls, value, units='', variable_metadata={}, dtype=None, **attrs): :param VariableMetadata variable_metadata: Optional - VariableMetadata dictionary object containing relevant metadata for the current EgadsData instance. + :param string dtype: + Optional - String representation of the data format. :param **attrs: Optional - Keyword/value pairs of additional metadata which will be added into the existing variable_metadata object. @@ -78,9 +80,11 @@ def __init__(self, value, units='', variable_metadata=None, dtype='float64', **a :param string units: Optional - String representation of units to be used for current EgadsData instance, e.g. 'm/s', 'kg', 'g/cm^3', etc. - :param VariableMetadata variable_metadata: + :param VariableMetadata variable_metadata: Optional - VariableMetadata dictionary object containing relevant metadata for the current EgadsData instance. + :param string dtype: + Optional - String representation of the data format. :param **attrs: Optional - Keyword/value pairs of additional metadata which will be added into the existing variable_metadata object. diff --git a/egads/input/hdf_io.py b/egads/input/hdf_io.py index 199fe56..2b2b9e0 100644 --- a/egads/input/hdf_io.py +++ b/egads/input/hdf_io.py @@ -1,6 +1,6 @@ __author__ = "ohenry" __date__ = "2019-11-22 07:09" -__version__ = "1.0" +__version__ = "1.2" __all__ = ["Hdf", "EgadsHdf"] @@ -398,7 +398,7 @@ def _get_group_list(self, groupname, details): for key, value in self._get_file_structure(from_group=groupname).items(): if isinstance(value['object'], h5py.Group): if details: - group_list.append({'name': os.path.basename(key), 'path': '/' + key}) + group_list.append('/' + key) else: group_list.append(os.path.basename(key)) return group_list @@ -415,8 +415,7 @@ def _get_variable_list(self, groupname, group_walk, details): if self.f is not None: orig_group = self.f if groupname is not None: - if groupname[-1] == '/': - groupname = groupname[: -1] + groupname = groupname.rstrip('/') if groupname[0] != '/': groupname = '/' + groupname orig_group = orig_group[groupname] @@ -428,10 +427,11 @@ def _h5py_get_file_structure(name, obj): if isinstance(obj, h5py.Dataset): var_path, var_name = os.path.split(name) if details: - if len(var_path) > 0: - if var_path[0] != '/': - var_path = '/' + var_path - var_list.append({var_name: groupname + var_path}) + if var_path: + var_path = groupname + '/' + var_path + '/' + else: + var_path = groupname + '/' + var_list.append(var_path + var_name) else: var_list.append(var_name) @@ -441,7 +441,7 @@ def _h5py_get_file_structure(name, obj): for name in orig_group: if isinstance(orig_group[name], h5py.Dataset): if details: - var_list.append({name: groupname}) + var_list.append(groupname + '/' + name) else: var_list.append(name) return var_list @@ -486,34 +486,18 @@ def _get_dimension_list(self, varname, group_walk, details): if varname is None: var_list = self.get_variable_list(group_walk=True, details=True) dim_list = [] - for item in var_list: - name = list(item.keys())[0] - path = item[name] - for dim in orig_group[path + '/' + name].dims: - dim_list.append([dim.label, orig_group[path + '/' + dim.label].shape[0], path]) - unique_data = [list(x) for x in set(tuple(x) for x in dim_list)] - not_unique = [r for r in [item[0] for item in unique_data] - if [item[0] for item in unique_data].count(r) > 1] - for dim in unique_data: - if dim[0] in not_unique: - if details: - if not dim[2]: - dim_dict[dim[0] + ' (/)'] = (dim[1], '/') - else: - dim_dict[dim[0] + ' (' + dim[2] + ')'] = (dim[1], dim[2]) + for var_path in var_list: + for dim in orig_group[var_path].dims: + dim_path = os.path.dirname(var_path) + dim_list.append([dim.label, orig_group[dim_path + '/' + dim.label].shape[0], dim_path]) + for dim in [list(x) for x in set(tuple(x) for x in dim_list)]: + if details: + if dim[2] == '/': + dim_dict['/' + dim[0]] = dim[1] else: - if not dim[2]: - dim_dict[dim[0] + ' (/)'] = dim[1] - else: - dim_dict[dim[0] + ' (' + dim[2] + ')'] = dim[1] + dim_dict[dim[2] + '/' + dim[0]] = dim[1] else: - if details: - if not dim[2]: - dim_dict[dim[0]] = (dim[1], '/') - else: - dim_dict[dim[0]] = (dim[1], dim[2]) - else: - dim_dict[dim[0]] = dim[1] + dim_dict[dim[0]] = dim[1] else: var = orig_group[varname] if isinstance(var, h5py.Dataset): @@ -521,31 +505,21 @@ def _get_dimension_list(self, varname, group_walk, details): dim_shape = var.shape for i, dim in enumerate(orig_group[varname].dims): if details: - dim_dict[dim.label] = (dim_shape[i], parent) + dim_dict[parent + dim.label] = dim_shape[i] else: dim_dict[dim.label] = dim_shape[i] else: var_list = self.get_variable_list(groupname=varname, group_walk=True, details=True) dim_list = [] - for item in var_list: - name = list(item.keys())[0] - path = item[name] - for dim in orig_group[path + '/' + name].dims: - dim_list.append([dim.label, orig_group[path + '/' + dim.label].shape[0], path]) - unique_data = [list(x) for x in set(tuple(x) for x in dim_list)] - not_unique = [r for r in [item[0] for item in unique_data] - if [item[0] for item in unique_data].count(r) > 1] - for dim in unique_data: - if dim[0] in not_unique: - if details: - dim_dict[dim[0] + ' (' + dim[2] + ')'] = (dim[1], dim[2]) - else: - dim_dict[dim[0] + ' (' + dim[2] + ')'] = dim[1] + for var_path in var_list: + dim_path = os.path.dirname(var_path) + for dim in orig_group[var_path].dims: + dim_list.append([dim.label, orig_group[dim_path + '/' + dim.label].shape[0], dim_path]) + for dim in [list(x) for x in set(tuple(x) for x in dim_list)]: + if details: + dim_dict[dim[2] + '/' + dim[0]] = dim[1] else: - if details: - dim_dict[dim[0]] = (dim[1], dim[2]) - else: - dim_dict[dim[0]] = dim[1] + dim_dict[dim[0]] = dim[1] else: if varname is None: var_list = self.get_variable_list() @@ -555,7 +529,7 @@ def _get_dimension_list(self, varname, group_walk, details): dim_list.append([dim.label, orig_group[dim.label].shape[0]]) for dim in [sublist for sublist, _ in itertools.groupby(dim_list)]: if details: - dim_dict[dim[0]] = (dim[1], '/') + dim_dict['/' + dim[0]] = dim[1] else: dim_dict[dim[0]] = dim[1] else: @@ -565,7 +539,10 @@ def _get_dimension_list(self, varname, group_walk, details): dim_shape = var.shape for i, dim in enumerate(orig_group[varname].dims): if details: - dim_dict[dim.label] = (dim_shape[i], parent) + if parent != '/': + dim_dict[parent + '/' + dim.label] = dim_shape[i] + else: + dim_dict['/' + dim.label] = dim_shape[i] else: dim_dict[dim.label] = dim_shape[i] else: @@ -576,12 +553,9 @@ def _get_dimension_list(self, varname, group_walk, details): dim_list.append([dim.label, var[dim.label].shape[0]]) for dim in [sublist for sublist, _ in itertools.groupby(dim_list)]: if details: - if varname[0] != '/': varname = '/' + varname - # print(varname) - - dim_dict[dim[0]] = (dim[1], varname) + dim_dict[varname + '/' + dim[0]] = dim[1] else: dim_dict[dim[0]] = dim[1] return dim_dict @@ -630,8 +604,6 @@ def _add_group(self, groupname): logging.debug('egads - hdf_io.py - Hdf - _add_group') if self.f is not None: - if isinstance(groupname, list): - groupname = '/'.join(groupname) self.f.create_group(groupname) else: logging.error('egads.input.Hdf._add_group: AttributeError, No file open') @@ -681,7 +653,10 @@ def _write_variable(self, data, varname, dims, ftype): if dims is not None: for dim in dims: try: - self.f[path + '/' + dim] + if path != '/': + self.f[path + '/' + dim] + else: + self.f[dim] except KeyError: logging.error("egads - hdf_io.py - Hdf - _write_variable - KeyError, the following " "dimension '" + dim + "' can\'t be found in the Hdf file") @@ -754,36 +729,6 @@ def _convert_to_netcdf(self, nc_file): if self.f is not None: if nc_file is None: nc_file = os.path.splitext(self.filename)[0] + '.nc' - file_struct = {'groups': [], 'variables': [], - 'dimensions': collections.OrderedDict(), 'attributes': collections.OrderedDict(), - 'global_attributes': collections.OrderedDict()} - - # read variables and groups structure - group_struct = self.get_file_structure() - for key, value in group_struct.items(): - if isinstance(value['object'], h5py.Group): - file_struct['groups'].append(key) - if isinstance(value['object'], h5py.Dataset): - name = value['object'].name[len(value['object'].parent.name):] - if name[0] == '/': - name = name[1:] - dim_list = self.get_dimension_list(value['object'].parent.name + '/' + name, details=True) - file_struct['variables'].append([name, value['object'].parent.name, dim_list]) - - # read dimensions - file_struct['dimensions'] = self.get_dimension_list(group_walk=True, details=True) - - # read global attributes - for attr in self.get_attribute_list(): - file_struct['global_attributes'][attr] = self.get_attribute_value(attr) - - # read variables and groups metadata - for key, _ in group_struct.items(): - tmp = {} - for attr in self.get_attribute_list(key): - if attr not in ['DIMENSION_LABELS', 'NAME', 'CLASS', 'REFERENCE_LIST', 'DIMENSION_LIST']: - tmp[attr] = self.get_attribute_value(attr, key) - file_struct['attributes'][key] = tmp # netcdf file creation f = egads.input.NetCdf(nc_file, 'w') @@ -791,7 +736,7 @@ def _convert_to_netcdf(self, nc_file): # add global attributes add_history = False dt = datetime.datetime.now() - for key, value in file_struct['global_attributes'].items(): + for key, value in self.get_attribute_list().items(): if key == 'history': add_history = True value += ' ; converted to NetCdf by EGADS, ' + str(dt) @@ -800,26 +745,21 @@ def _convert_to_netcdf(self, nc_file): f.add_attribute('history', 'converted to NetCdf by EGADS, ' + str(dt)) # add groups - for group in file_struct['groups']: + for group in self.get_group_list(details=True): f.add_group(group) + attrs = self.get_attribute_list(group) + for attr_name, attr_val in attrs.items(): + f.add_attribute(attr_name, attr_val, group) # add dimensions - for key, value in file_struct['dimensions'].items(): - if '(' in key: - idx = key.find('(') - key = key[: idx - 1] - size, path = value - f.add_dim(path + '/' + key, size) + for dim_path, dim_size in self.get_dimension_list(group_walk=True, details=True).items(): + f.add_dim(dim_path, dim_size) # add variables type_dict = {'char': 'c', 'byte': 'b', 'int16': 'i2', 'int32': 'i4', 'float32': 'f4', 'float64': 'f8'} - for sublist in file_struct['variables']: - name = sublist[0] - path = sublist[1] - dim = tuple(sublist[2].keys()) - if path[0] == '/': - path = path[1:] - data = self.read_variable('/' + path + '/' + name) + for var_path in self.get_variable_list(group_walk=True, details=True): + dim_tuple = tuple([dim for dim in self.get_dimension_list(var_path)]) + data = self.read_variable(var_path) try: dtype = type_dict[str(data.dtype)] except KeyError: @@ -827,40 +767,20 @@ def _convert_to_netcdf(self, nc_file): dtype = self.TYPE_DICT[str(data.dtype)] except KeyError: dtype = str(data.dtype) - if not path: - path_name = name - else: - path_name = path + '/' + name - metadata = file_struct['attributes'][path_name] + attrs = self.get_attribute_list(var_path) try: - fillvalue = metadata['_FillValue'] + fillvalue = attrs['_FillValue'] except KeyError: try: - fillvalue = metadata['missing_value'] + fillvalue = attrs['missing_value'] except KeyError: fillvalue = None - f.write_variable(data, path_name, dims=dim, ftype=dtype, fillvalue=fillvalue) - - # add metadata for variables and groups - for item in file_struct['groups']: - metadata = file_struct['attributes'][item] - if metadata: - for key, value in metadata.items(): - f.add_attribute(key, value, item) - for sublist in file_struct['variables']: - name = sublist[0] - path = sublist[1] - if path[0] == '/': - path = path[1:] - if not path: - path_name = name - else: - path_name = path + '/' + name - metadata = file_struct['attributes'][path_name] - if metadata: - for key, value in metadata.items(): - if key != '_FillValue': - f.add_attribute(key, value, path_name) + f.write_variable(data, var_path, dims=dim_tuple, ftype=dtype, fillvalue=fillvalue) + no_metadata = ['_FillValue', 'DIMENSION_LABELS', 'NAME', 'CLASS', 'REFERENCE_LIST', 'DIMENSION_LIST'] + for attr_name, attr_val in attrs.items(): + if attr_name not in no_metadata: + f.add_attribute(attr_name, attr_val, var_path) + f.close() logging.debug('egads - hdf_io.py - Hdf - _convert_to_netcdf -> file conversion OK') else: @@ -1250,18 +1170,6 @@ def _read_variable(self, varname, input_range, read_as_float, replace_fill_value Private method to read a variable from currently opened Hdf file. """ - # var_list = self._get_variable_list(True) - # path, var = os.path.split(varname) - # exist = False - # for item in var_list: - # if var == list(item.keys())[0] and path == item[list(item.keys())[0]]: - # exist = True - # if not exist: - # logging.exception('egads - hdf_io.py - Hdf - _read_variable - KeyError, variable does not exist in ' - # 'hdf file') - # raise KeyError("ERROR: Variable %s does not exist in %s" % (varname, self.filename)) - # else: - try: if input_range is None: var = numpy.array(self.f[varname]) @@ -1274,14 +1182,6 @@ def _read_variable(self, varname, input_range, read_as_float, replace_fill_value logging.exception('egads - hdf_io.py - Hdf - _read_variable - KeyError, variable does not exist in ' 'hdf file') raise KeyError("ERROR: Variable %s does not exist in %s" % (varname, self.filename)) - - # if input_range is None: - # var = numpy.array(self.f[varname]) - # else: - # obj = 'slice(input_range[0], input_range[1])' - # for i in range(2, len(input_range), 2): - # obj = obj + ', slice(input_range[%i], input_range[%i])' % (i, i + 1) - # var = numpy.array(self.f[varname][eval(obj)]) if read_as_float: var = var.astype(float) var_attrs = self._get_attribute_list(varname) @@ -1301,6 +1201,12 @@ def _read_variable(self, varname, input_range, read_as_float, replace_fill_value + 'attribute has been found for the variable ' + varname + '. Missing value not ' + 'replaced by NaN.') + for attr in ['DIMENSION_LABELS', 'NAME', 'CLASS', 'REFERENCE_LIST', 'DIMENSION_LIST']: + try: + del var_attrs[attr] + except KeyError: + pass + variable_metadata = egads.core.metadata.VariableMetadata(var_attrs, self.file_metadata) data = egads.EgadsData(var, variable_metadata=variable_metadata) if len(var.dtype) > 1: @@ -1356,7 +1262,7 @@ def _write_variable(self, data, varname, dims, ftype): if self.f is not None: fillvalue = None dtype = self.TYPE_DICT[ftype] - path, _ = os.path.split(varname) + path = os.path.dirname(varname) if dims is not None: for dim in dims: try: @@ -1384,23 +1290,22 @@ def _write_variable(self, data, varname, dims, ftype): self.f[varname].dims[i].attach_scale(self.f[path + '/' + dim]) self.f[varname].dims[i].label = dim for key, val in data.metadata.items(): - if val: - if isinstance(val, list): - tmp = '' - for item in val: - tmp += item + ', ' - self.add_attribute(str(key), tmp[:-2], varname) + if isinstance(val, list): + tmp = '' + for item in val: + tmp += item + ', ' + self.add_attribute(str(key), tmp[:-2], varname) + else: + if key == '_FillValue' or key == 'missing_value': + if key == '_FillValue': + fillvalue = data.metadata['_FillValue'] + if key == 'missing_value': + fillvalue = data.metadata['missing_value'] + if fillvalue > 1000000000000000000 or fillvalue < 1000000000000000000: + fillvalue = float(fillvalue) + self.add_attribute(str(key), fillvalue, varname) else: - if key == '_FillValue' or key == 'missing_value': - if key == '_FillValue': - fillvalue = data.metadata['_FillValue'] - if key == 'missing_value': - fillvalue = data.metadata['missing_value'] - if fillvalue > 1000000000000000000 or fillvalue < 1000000000000000000: - fillvalue = float(fillvalue) - self.add_attribute(str(key), fillvalue, varname) - else: - self.add_attribute(str(key), val, varname) + self.add_attribute(str(key), val, varname) else: logging.error('egads - hdf_io.py - EgadsHdf - _write_variable - AttributeError, no file open') raise AttributeError('No file open') @@ -1415,44 +1320,14 @@ def _convert_to_netcdf(self, nc_file): if self.f is not None: if nc_file is None: nc_file = os.path.splitext(self.filename)[0] + '.nc' - file_struct = {'groups': [], 'variables': [], - 'dimensions': collections.OrderedDict(), 'attributes': collections.OrderedDict(), - 'global_attributes': collections.OrderedDict()} - - # read variables and groups structure - group_struct = self.get_file_structure() - for key, value in group_struct.items(): - if isinstance(value['object'], h5py.Group): - file_struct['groups'].append(key) - if isinstance(value['object'], h5py.Dataset): - name = value['object'].name[len(value['object'].parent.name):] - if name[0] == '/': - name = name[1:] - dim_list = self.get_dimension_list(value['object'].parent.name + '/' + name, details=True) - file_struct['variables'].append([name, value['object'].parent.name, dim_list]) - - # read dimensions - file_struct['dimensions'] = self.get_dimension_list(group_walk=True, details=True) - - # read global attributes - for attr in self.get_attribute_list(): - file_struct['global_attributes'][attr] = self.get_attribute_value(attr) - - # read variables and groups metadata - for key, _ in group_struct.items(): - tmp = {} - for attr in self.get_attribute_list(key): - if attr not in ['DIMENSION_LABELS', 'NAME', 'CLASS', 'REFERENCE_LIST', 'DIMENSION_LIST']: - tmp[attr] = self.get_attribute_value(attr, key) - file_struct['attributes'][key] = tmp # netcdf file creation - f = egads.input.EgadsNetCdf(nc_file, 'w') + f = egads.input.NetCdf(nc_file, 'w') # add global attributes add_history = False dt = datetime.datetime.now() - for key, value in file_struct['global_attributes'].items(): + for key, value in self.get_attribute_list().items(): if key == 'history': add_history = True value += ' ; converted to NetCdf by EGADS, ' + str(dt) @@ -1461,38 +1336,22 @@ def _convert_to_netcdf(self, nc_file): f.add_attribute('history', 'converted to NetCdf by EGADS, ' + str(dt)) # add groups - for group in file_struct['groups']: + for group in self.get_group_list(details=True): f.add_group(group) + attrs = self.get_attribute_list(group) + for attr_name, attr_val in attrs.items(): + f.add_attribute(attr_name, attr_val, group) # add dimensions - for key, value in file_struct['dimensions'].items(): - if '(' in key: - idx = key.find('(') - key = key[: idx - 1] - size, path = value - f.add_dim(path + '/' + key, size) + for dim_path, dim_size in self.get_dimension_list(group_walk=True, details=True).items(): + f.add_dim(dim_path, dim_size) # add variables - type_dict = {'char': 'c', 'byte': 'b', 'int16': 'i2', 'int32': 'i4', 'float32': 'f4', 'float64': 'f8'} - for sublist in file_struct['variables']: - name = sublist[0] - path = sublist[1] - dim = tuple(sublist[2].keys()) - if path[0] == '/': - path = path[1:] - data = self.read_variable('/' + path + '/' + name) - if not path: - path_name = name - else: - path_name = path + '/' + name - f.write_variable(data, path_name, dims=dim, ftype=str(data.dtype)) - - # add metadata for groups - for item in file_struct['groups']: - metadata = file_struct['attributes'][item] - if metadata: - for key, value in metadata.items(): - f.add_attribute(key, value, item) + for var_path in self.get_variable_list(group_walk=True, details=True): + dim_tuple = tuple([dim for dim in self.get_dimension_list(var_path)]) + data = self.read_variable(var_path) + f.write_variable(data, var_path, dims=dim_tuple, ftype=str(data.dtype)) + f.close() logging.debug('egads - hdf_io.py - EgadsHdf - _convert_to_netcdf -> file conversion OK') else: diff --git a/egads/input/nasa_ames_io.py b/egads/input/nasa_ames_io.py index 49bec91..b6cd48e 100644 --- a/egads/input/nasa_ames_io.py +++ b/egads/input/nasa_ames_io.py @@ -1,6 +1,6 @@ __author__ = "ohenry" __date__ = "2018-7-21 14:52" -__version__ = "1.6" +__version__ = "1.7" __all__ = ["NasaAmes", "EgadsNasaAmes"] import logging @@ -901,32 +901,23 @@ def read_variable(self, varname, na_dict=None, read_as_float=False, replace_fill values = np.array(na_dict['V'][varnum]) if read_as_float: values = values.astype('float') - - # print(type(values[0])) - try: if replace_fill_value: values[values == miss] = np.nan except ValueError: raise Exception('cannot convert float NaN to integer') + var_metadata = {'standard_name': variable, 'units': units, 'scale_factor': scale, '_FillValue': miss} except ValueError: variable, units = _attemptVarAndUnitsMatch(na_dict['XNAME']) - miss, scale = None, None + var_metadata = {'standard_name': variable, 'units': units} values = np.array(na_dict['X']) if read_as_float: values = [float(item) for item in values] if file_metadata is not None: - variable_metadata = egads.core.metadata.VariableMetadata({'standard_name': variable, - 'units': units, - '_FillValue': miss, - 'scale_factor': scale}, - self.file_metadata) + variable_metadata = egads.core.metadata.VariableMetadata(var_metadata, self.file_metadata) else: - variable_metadata = egads.core.metadata.VariableMetadata({'standard_name': variable, - 'units': units, - '_FillValue': miss, - 'scale_factor': scale}) - data = egads.EgadsData(values, variable_metadata) + variable_metadata = egads.core.metadata.VariableMetadata(var_metadata) + data = egads.EgadsData(values, variable_metadata=variable_metadata) logging.debug('egads - nasa_ames_io.py - EgadsNasaAmes - read_variable - varname ' + str(varname) + ' -> data read OK') return data diff --git a/egads/input/netcdf_io.py b/egads/input/netcdf_io.py index ac4c89d..3b1c727 100644 --- a/egads/input/netcdf_io.py +++ b/egads/input/netcdf_io.py @@ -1,6 +1,6 @@ __author__ = "mfreer, ohenry" __date__ = "2016-12-6 15:47" -__version__ = "1.23" +__version__ = "1.25" __all__ = ["NetCdf", "EgadsNetCdf"] import logging @@ -96,7 +96,8 @@ def get_dimension_list(self, varname=None, group_walk=False, details=False): Optional - if True, the function visits all groups (if at least one exists) to list all dimensions. False by default. :param bool details: - Optional - if True, dimension path is provided in the dictionary. False by default. + Optional - if True, the dimension name is given with their respective path. + False by default. :return: ordered dictionary of dimensions. """ @@ -114,8 +115,8 @@ def get_variable_list(self, groupname=None, group_walk=False, details=False): Optional - if True, the function visits all groups (if at least one exists) to list all variables. False by default. :param bool details: - Optional - if True, the function returns a list of dictionaries, with - variable name as key and variable path as value. False by default. + Optional - if True, the name of the variable is given with their respective path. + False by default. :return: list of variables. """ @@ -130,10 +131,8 @@ def get_group_list(self, groupname=None, details=False): Optional - the name of the group to get the list from. It should represent a path to the group. None by default. :param bool details: - If details is true, it will return a list of all groups in the NetCDF file, or from - groupname if groupname is not None, and their path. In that case, each element of - the list is a small dict containing as key/value the name of the group and the path - of the group in the file. False by default. + Optional - if details is True, the name of each group is given with their respective path. + False by default. :return: list of groups. """ @@ -359,11 +358,7 @@ def _get_attribute_list(self, var): attr_dict = {} orig_group = self.f if var is not None: - if var[0] == '/': - var = var[1:] - if var[-1] == '/': - var = var[:-1] - for group in var.split('/'): + for group in var.rstrip('/').lstrip('/').split('/'): orig_group = orig_group[group] for key, value in orig_group.__dict__.items(): if isinstance(value, str): @@ -389,7 +384,7 @@ def _get_dimension_list(self, var, group_walk, details): if not group_walk: for dimname, dimobj in reversed(sorted(self.f.dimensions.items())): if details: - dimdict[dimname] = (len(dimobj), '/') + dimdict['/' + dimname] = len(dimobj) else: dimdict[dimname] = len(dimobj) else: @@ -397,51 +392,27 @@ def _get_dimension_list(self, var, group_walk, details): for dimname, dimobj in reversed(sorted(self.f.dimensions.items())): dim_list.append([dimname, len(dimobj), '']) group_list = self.get_group_list(details=True) - for group in group_list: + for group_path in group_list: orig_group = self.f - group_path = group['path'] - if group_path[0] == '/': - group_items = group_path[1:].split('/') - else: - group_items = group_path.split('/') - for item in group_items: + for item in group_path.lstrip('/').split('/'): orig_group = orig_group[item] if orig_group.dimensions: for dimname, dimobj in reversed(sorted(orig_group.dimensions.items())): dim_list.append([dimname, len(dimobj), group_path]) - not_unique = [r for r in [item[0] for item in dim_list] - if [item[0] for item in dim_list].count(r) > 1] for dim in dim_list: - if dim[0] in not_unique: - if details: - if not dim[2]: - dimdict[dim[0] + ' (/)'] = (dim[1], '/') - else: - dimdict[dim[0] + ' (' + dim[2] + ')'] = (dim[1], dim[2]) + if details: + if not dim[2]: + dimdict['/' + dim[0]] = dim[1] else: - if not dim[2]: - dimdict[dim[0] + ' (/)'] = dim[1] - else: - dimdict[dim[0] + ' (' + dim[2] + ')'] = dim[1] + dimdict[dim[2] + '/' + dim[0]] = dim[1] else: - if details: - if not dim[2]: - dimdict[dim[0]] = (dim[1], '/') - else: - dimdict[dim[0]] = (dim[1], dim[2]) - else: - dimdict[dim[0]] = dim[1] + dimdict[dim[0]] = dim[1] else: - if var[0] == '/': - var = var[1:] - if var[-1] == '/': - var = var[:-1] orig_group = self.f - group_items = var.split('/') dim_list = [] var_name = '' group_path = '' - for item in group_items: + for item in var.lstrip('/').rstrip('/').split('/'): try: if isinstance(orig_group[item], netCDF4.Group): orig_group = orig_group[item] @@ -454,20 +425,26 @@ def _get_dimension_list(self, var, group_walk, details): break for dimname, dimobj in reversed(sorted(orig_group.dimensions.items())): dim_list.append([dimname, len(dimobj), group_path]) + if group_walk: + group_list = self.get_group_list(group_path, details=True) + for group_path in group_list: + group = self.f + for item in group_path.lstrip('/').split('/'): + group = group[item] + if group.dimensions: + for dimname, dimobj in reversed(sorted(group.dimensions.items())): + dim_list.append([dimname, len(dimobj), group_path]) if var_name: for dimname in orig_group[var_name].dimensions: idx = [sublist[0] for sublist in dim_list].index(dimname) if details: - if not dim_list[idx][2]: - dimdict[dim_list[idx][0]] = (dim_list[idx][1], '/') - else: - dimdict[dim_list[idx][0]] = (dim_list[idx][1], dim_list[idx][2]) + dimdict[dim_list[idx][2] + '/' + dim_list[idx][0]] = dim_list[idx][1] else: dimdict[dim_list[idx][0]] = dim_list[idx][1] else: for sublist in dim_list: if details: - dimdict[sublist[0]] = (sublist[1], sublist[2]) + dimdict[sublist[2] + '/' + sublist[0]] = sublist[1] else: dimdict[sublist[0]] = sublist[1] return dimdict @@ -482,16 +459,9 @@ def _get_variable_list(self, groupname, group_walk, details): logging.debug('egads - netcdf_io.py - NetCdf - _get_variable_list') if self.f is not None: - # orig_group = self.f def set_folder(grouppath, base_group): - if isinstance(grouppath, str): - if grouppath[0] == '/': - grouppath = grouppath[1:] - if grouppath[-1] == '/': - grouppath = grouppath[:-1] - grouppath = grouppath.split('/') - for item in grouppath: + for item in grouppath.lstrip('/').rstrip('/').split('/'): base_group = base_group.groups[item] return base_group @@ -506,19 +476,18 @@ def set_folder(grouppath, base_group): if details: for var in list(orig_group.variables.keys()): if groupname is not None: - var_list.append({var: groupname}) + var_list.append(groupname + '/' + var) else: - var_list.append({var: ''}) + var_list.append('/' + var) else: var_list = var_list + list(orig_group.variables.keys()) group_list = self.get_group_list(groupname, True) - for group in group_list: - path = group['path'] + for path in group_list: group_obj = set_folder(path, self.f) if list(group_obj.variables.keys()): if details: for var in list(group_obj.variables.keys()): - var_list.append({var: group['path']}) + var_list.append(path + '/' + var) else: var_list = var_list + list(group_obj.variables.keys()) return var_list @@ -527,12 +496,12 @@ def set_folder(grouppath, base_group): if details: for var in list(orig_group.variables.keys()): if groupname is not None: - if groupname[0] != '/': - var_list.append({var: ('/' + groupname)}) + if groupname != '/': + var_list.append(groupname + '/' + var) else: - var_list.append({var: groupname}) + var_list.append(groupname + var) else: - var_list.append({var: ''}) + var_list.append('/' + var) else: var_list = var_list + list(orig_group.variables.keys()) return var_list @@ -550,20 +519,14 @@ def _get_group_list(self, groupname, details): orig_group = self.f group_list = [] if groupname is not None: - if isinstance(groupname, str): - if groupname[0] == '/': - groupname = groupname[1:] - if groupname[-1] == '/': - groupname = groupname[:-1] - groupname = groupname.split('/') - for group in groupname: + for group in groupname.rstrip('/').lstrip('/').split('/'): orig_group = orig_group.groups[group] def _walktree(orig): groups = orig.groups for _, obj in groups.items(): if details: - group_list.append({'name': obj.name, 'path': obj.path}) + group_list.append(obj.path) else: group_list.append(obj.name) _walktree(obj) @@ -596,11 +559,7 @@ def _add_dim(self, name, size): logging.debug('egads - netcdf_io.py - NetCdf - _add_dim') if self.f is not None: orig_group = self.f - if name[0] == '/': - name = name[1:] - if name[-1] == '/': - name = name[:-1] - for group in name.split('/'): + for group in name.rstrip('/').lstrip('/').split('/'): try: if isinstance(orig_group[group], netCDF4.Group): orig_group = orig_group[group] @@ -628,11 +587,7 @@ def _add_attribute(self, attrname, value, varname): tmp += item + ', ' value = tmp[:-2] if varname is not None: - if varname[0] == '/': - varname = varname[1:] - if varname[-1] == '/': - varname = varname[:-1] - for group in varname.split('/'): + for group in varname.rstrip('/').lstrip('/').split('/'): orig_group = orig_group[group] setattr(orig_group, attrname, value) else: @@ -650,11 +605,7 @@ def _delete_attribute(self, attrname, varname): if self.f is not None: orig_group = self.f if varname is not None: - if varname[0] == '/': - varname = varname[1:] - if varname[-1] == '/': - varname = varname[:-1] - for group in varname.split('/'): + for group in varname.rstrip('/').lstrip('/').split('/'): orig_group = orig_group[group] delattr(orig_group, attrname) else: @@ -671,11 +622,7 @@ def _change_variable_name(self, varname, newname): logging.debug('egads - netcdf_io.py - NetCdf - _change_variable_name') if self.f is not None: orig_group = self.f - if varname[0] == '/': - varname = varname[1:] - if varname[-1] == '/': - varname = varname[:-1] - for group in varname.split('/'): + for group in varname.rstrip('/').lstrip('/').split('/'): if isinstance(orig_group[group], netCDF4.Group): orig_group = orig_group[group] else: @@ -693,9 +640,7 @@ def _read_variable(self, varname, input_range, read_as_float, replace_fill_value logging.debug('egads - netcdf_io.py - NetCdf - _read_variable') try: orig_group = self.f - if varname[0] == '/': - varname = varname[1:] - for group in varname.split('/'): + for group in varname.lstrip('/').split('/'): orig_group = orig_group[group] varin = orig_group except (KeyError, IndexError): @@ -737,9 +682,8 @@ def _write_variable(self, data, varname, dims, ftype, fillvalue): logging.debug('egads - netcdf_io.py - NetCdf - _write_variable') if self.f is not None: orig_group = self.f - if varname[0] == '/': - varname = varname[1:] - if '/' in varname: + varname = varname.rstrip('/') + if '/' in varname.lstrip('/'): var = varname.split('/') for group in var: try: @@ -975,28 +919,15 @@ def _convert_to_hdf(self, hdf_file): # get variables variable_list = self.get_variable_list(group_walk=True, details=True) var_dim_list = {} - for item in variable_list: - var = list(item.keys())[0] - path = item[var] - if path: - full_var = path + '/' + var - else: - full_var = var - var_dim_list[full_var] = self.get_dimension_list(full_var) + for path in variable_list: + var_dim_list[path] = self.get_dimension_list(path) # get variables and groups attributes variable_attributes = {} group_attributes = {} - for item in variable_list: - var = list(item.keys())[0] - path = item[var] - if path: - full_var = path + '/' + var - else: - full_var = var - variable_attributes[full_var] = self.get_attribute_list(varname=full_var) - for item in group_list: - path = item['path'] + for path in variable_list: + variable_attributes[path] = self.get_attribute_list(varname=path) + for path in group_list: group_attributes[path] = self.get_attribute_list(varname=path) # create hdf file @@ -1014,32 +945,19 @@ def _convert_to_hdf(self, hdf_file): f.add_attribute('history', 'converted to Hdf by EGADS, ' + str(dt)) # add groups - for item in group_list: - path = item['path'] + for path in group_list: f.add_group(path) # add dimensions dim_list = [] - for name, (size, path) in dimension_list.items(): - if '(' in name: - name = name[: name.find('(') - 1] - if path: - full_name = path + '/' + name - else: - full_name = name - dim_list.append(full_name) - data = self.read_variable(full_name) + for dim_path, _ in dimension_list.items(): + dim_list.append(dim_path) + data = self.read_variable(dim_path) ftype = str(data.dtype) - f.add_dim(full_name, data, ftype) + f.add_dim(dim_path, data, ftype) # add variables - for item in variable_list: - var = list(item.keys())[0] - path = item[var] - if path: - full_var = path + '/' + var - else: - full_var = var + for full_var in variable_list: if full_var not in dim_list: data = self.read_variable(full_var) dims = tuple([key for key, _ in var_dim_list[full_var].items()]) @@ -1379,9 +1297,7 @@ def _read_variable(self, varname, input_range, read_as_float, replace_fill_value logging.debug('egads - netcdf_io.py - EgadsNetCdf - _read_variable') try: orig_group = self.f - if varname[0] == '/': - varname = varname[1:] - for group in varname.split('/'): + for group in varname.lstrip('/').split('/'): orig_group = orig_group[group] varin = orig_group except KeyError: @@ -1427,8 +1343,7 @@ def _write_variable(self, data, varname, dims, ftype): if self.f is not None: orig_group = self.f if varname is not None: - if varname[0] == '/': - varname = varname[1:] + varname = varname.lstrip('/').rstrip('/') if '/' in varname: var = varname.split('/') for group in var: @@ -1452,15 +1367,14 @@ def _write_variable(self, data, varname, dims, ftype): else: varout[:] = data.value for key, val in data.metadata.items(): - if key not in ['DIMENSION_LABELS', 'NAME', 'CLASS', 'REFERENCE_LIST', 'DIMENSION_LIST', '_FillValue']: - if val: - if isinstance(val, list): - tmp = '' - for item in val: - tmp += item + ', ' - setattr(varout, str(key), tmp[:-2]) - else: - setattr(varout, str(key), val) + if key != '_FillValue': + if isinstance(val, list): + tmp = '' + for item in val: + tmp += item + ', ' + setattr(varout, str(key), tmp[:-2]) + else: + setattr(varout, str(key), val) logging.debug('egads - netcdf_io.py - EgadsNetCdf - _write_variable - varname ' + str(varname) + ' -> data write OK') @@ -1486,19 +1400,12 @@ def _convert_to_hdf(self, hdf_file): # get variables variable_list = self.get_variable_list(group_walk=True, details=True) var_dim_list = {} - for item in variable_list: - var = list(item.keys())[0] - path = item[var] - if path: - full_var = path + '/' + var - else: - full_var = var + for full_var in variable_list: var_dim_list[full_var] = self.get_dimension_list(full_var) # get groups attributes group_attributes = {} - for item in group_list: - path = item['path'] + for path in group_list: group_attributes[path] = self.get_attribute_list(varname=path) # create hdf file @@ -1516,8 +1423,7 @@ def _convert_to_hdf(self, hdf_file): f.add_attribute('history', 'converted to Hdf by EGADS, ' + str(dt)) # add groups - for item in group_list: - path = item['path'] + for path in group_list: f.add_group(path) metadata = group_attributes[path] if metadata: @@ -1526,31 +1432,18 @@ def _convert_to_hdf(self, hdf_file): # add dimensions dim_list = [] - for name, (size, path) in dimension_list.items(): - if '(' in name: - name = name[: name.find('(') - 1] - if path: - full_name = path + '/' + name - else: - full_name = name - dim_list.append(full_name) - data = self.read_variable(full_name) - ftype = str(data.dtype) - f.add_dim(full_name, data, ftype) + for dim_path, dim_size in dimension_list.items(): + dim_list.append(dim_path) + data = self.read_variable(dim_path) + f.add_dim(dim_path, data, str(data.dtype)) # add variables - for item in variable_list: - var = list(item.keys())[0] - path = item[var] - if path: - full_var = path + '/' + var - else: - full_var = var - if full_var not in dim_list: - data = self.read_variable(full_var) - dims = tuple([key for key, _ in var_dim_list[full_var].items()]) + for path in variable_list: + if path not in dim_list: + data = self.read_variable(path) + dims = tuple([key for key, _ in var_dim_list[path].items()]) ftype = str(data.dtype) - f.write_variable(data, full_var, dims, ftype) + f.write_variable(data, path, dims, ftype) f.close() logging.debug('egads - netcdf_io.py - EgadsNetCdf - _convert_to_hdf -> file conversion OK') diff --git a/egads/tests/input_tests.py b/egads/tests/input_tests.py index 58d87ce..5034fb1 100644 --- a/egads/tests/input_tests.py +++ b/egads/tests/input_tests.py @@ -6,7 +6,7 @@ __author__ = "mfreer, ohenry" __date__ = "2016-12-6 09:37" -__version__ = "1.9" +__version__ = "1.10" import tempfile import unittest @@ -31,6 +31,9 @@ VAR_MULT_UNITS = 'm' GLOBAL_ATTRIBUTE = 'test_file' CONVENTIONS = 'EUFAR' +GRP_NAME_1 = 'forecasts' +GRP_NAME_2 = 'analysis' +GRP_PURPOSE = 'to test group' TITLE = 'Test file' SOURCE = 'Generated for testing purposes' INSTITUTION = 'EUFAR' @@ -119,7 +122,7 @@ class NetCdfFileInputTestCase(unittest.TestCase): """ Test input from NetCDF file """ - + def setUp(self): self.file = FILE_NAME f = netCDF4.Dataset(self.file, 'w') @@ -129,6 +132,9 @@ def setUp(self): f.source = SOURCE f.institution = INSTITUTION f.project = PROJECT + grp_1 = f.createGroup(GRP_NAME_1) + grp_2 = grp_1.createGroup(GRP_NAME_2) + grp_2.purpose = GRP_PURPOSE f.createDimension(DIM1_NAME, DIM1_LEN) f.createDimension(DIM2_NAME, DIM2_LEN) v1 = f.createVariable(VAR_NAME, 'f8', DIM1_NAME) @@ -140,11 +146,18 @@ def setUp(self): v1.Category = CATEGORY v1[:] = random_data v2[:] = random_mult_data + grp_2.createDimension(DIM1_NAME, DIM1_LEN) + v3 = grp_2.createVariable(VAR_NAME, 'f8', DIM1_NAME) + v3.units = VAR_UNITS + v3.long_name = VAR_LONG_NAME + v3.standard_name = VAR_STD_NAME + v3.Category = CATEGORY + v3[:] = random_data f.close() def test_bad_file_name(self): """ Test handling of missing file """ - + self.assertRaises((RuntimeError, IOError), einput.NetCdf, 'test12345.nc') def test_open_file(self): @@ -240,10 +253,48 @@ def test_read_egads_netcdf_data(self): self.assertEqual(data.metadata['standard_name'], VAR_STD_NAME, 'EgadsData standard name attribute doesnt match') infile.close() + def test_group_list(self): + """ Test reading group list in NetCDF """ + + f = einput.NetCdf(self.file) + self.assertListEqual(f.get_group_list(), ['forecasts', 'analysis'], 'NetCDF group list doesnt match') + self.assertListEqual(f.get_group_list(details=True), ['/forecasts', '/forecasts/analysis'], + 'NetCDF group list doesnt match') + f.close() + + def test_read_group_attributes(self): + f = einput.NetCdf(self.file) + self.assertEqual(f.get_attribute_value('purpose', '/forecasts/analysis'), 'to test group', + 'Group attributes do not match') + self.assertEqual(f.get_attribute_value('purpose', 'forecasts/analysis'), 'to test group', + 'Group attributes do not match') + self.assertEqual(f.get_attribute_value('purpose', 'forecasts/analysis/'), 'to test group', + 'Group attributes do not match') + f.close() + + def test_read_group_dimensions(self): + """ Test reading dimensions from file """ + + data = einput.NetCdf(self.file) + dimdict_1 = {DIM1_NAME: DIM1_LEN} + dimdict_2 = {'/forecasts/analysis/' + DIM1_NAME: DIM1_LEN} + self.assertEqual(data.get_dimension_list('/forecasts/analysis'), dimdict_1, + 'dimensions dictionary does not match') + self.assertEqual(data.get_dimension_list('/forecasts/analysis', details=True), dimdict_2, + 'dimensions dictionary does not match') + data.close() + + def test_load_group_data_1d(self): + """ Test reading 1D netcdf data""" + + data = einput.NetCdf(self.file).read_variable('/forecasts/analysis/' + VAR_NAME) + self.assertEqual(len(data), DIM1_LEN, "Input dimensions don't match") + assert_array_equal(data, random_data) + class NetCdfFileOutputTestCase(unittest.TestCase): """ Test output to NetCDF file """ - + def setUp(self): self.data1 = egads.EgadsData(value=[0.5, 2.3, 6.2, 8.1, 4.], units='mm', @@ -294,10 +345,10 @@ def test_2d_variable_creation(self): self.assertEqual(varin.units, VAR_MULT_UNITS, 'Variable units dont match') assert_array_equal(varin[:], random_mult_data) f.close() - + def test_egadsnetcdf_instance_creation(self): """ Test creation of a netcdf file via the EgadsNetCdf class """ - + filename = tempfile.mktemp('.nc') g = einput.EgadsNetCdf(filename, 'w') g.add_dim('time', len(self.data2)) @@ -520,7 +571,7 @@ def test_egadshdf_instance_creation(self): class EgadsFileInputTestCase(unittest.TestCase): """ Test input from text file""" - + def setUp(self): self.filename = tempfile.mktemp('.txt') self.strdata1ln = 'testtesttest\n' @@ -696,10 +747,10 @@ def setUp(self): f.writerows(self.data) f.close() self.f = einput.EgadsCsv(self.filename) - + def tearDown(self): self.f.close() - + def test_read_data_from_EGADS_created_csv(self): """ Test reading data from csv file.""" @@ -737,7 +788,7 @@ def setUp(self): def test_egadsnasaames_read_file(self): """ Test reading data from NASA Ames file - EgadsNasaAmes class""" - + f = einput.EgadsNasaAmes(self.filename) self.assertEqual(self.org, f.file_metadata['Organisation'], 'Organisation values do not match') self.assertEqual(self.originator, f.file_metadata['Originator'], 'Originator values do not match') @@ -1005,7 +1056,7 @@ def setUp(self): def test_convert_nc_to_na_netcdf(self): """ Test conversion of NetCDF to NASA Ames, using the NetCdf class """ - + f = einput.NetCdf(self.ncfilename) f.convert_to_nasa_ames(self.nafilename) f.close() @@ -1019,7 +1070,7 @@ def test_convert_nc_to_na_netcdf(self): def test_convert_nc_to_na_egadsnetcdf(self): """ Test conversion of NetCDF to NASA Ames, using the EgadsNetCdf class """ - + f = einput.EgadsNetCdf(self.ncfilename) f.convert_to_nasa_ames(self.nafilename) f.close() @@ -1030,10 +1081,10 @@ def test_convert_nc_to_na_egadsnetcdf(self): data = g.read_variable('data') self.assertListEqual(self.data1.value.tolist(), data.tolist(), 'data and data1 values do not match') g.close() - + def test_convert_nc_to_csv_netcdf(self): """ Test conversion of NetCDF to Nasa/Ames CSV, using the NetCdf class """ - + f = einput.NetCdf(self.ncfilename) f.convert_to_csv(self.csvfilename) f.close() @@ -1052,10 +1103,10 @@ def test_convert_nc_to_csv_netcdf(self): self.assertEqual('computer', computer, 'Source values do not match') self.assertListEqual(self.data1.value.tolist(), data, 'data and data1 values do not match') self.assertListEqual(self.data2.value.tolist(), time, 'time and data2 values do not match') - + def test_convert_nc_to_csv_egadsnetcdf(self): """ Test conversion of NetCDF to Nasa/Ames CSV, using the EgadsNetCdf class """ - + f = einput.EgadsNetCdf(self.ncfilename) f.convert_to_csv(self.csvfilename) f.close() @@ -1073,7 +1124,7 @@ def test_convert_nc_to_csv_egadsnetcdf(self): self.assertEqual('John Doe (john.doe@email.com)', author, 'Originator values do not match') self.assertEqual('computer', computer, 'Source values do not match') self.assertListEqual(self.data1.value.tolist(), data, 'data and data1 values do not match') - self.assertListEqual(self.data2.value.tolist(), time, 'time and data2 values do not match') + self.assertListEqual(self.data2.value.tolist(), time, 'time and data2 values do not match') def test_convert_nc_to_hdf_netcdf(self): """ Test conversion of NetCDF to Hdf, using the NetCdf class """ @@ -1283,7 +1334,7 @@ def setUp(self): _FillValue=-9900., scale_factor=1., standard_name='Time_np') - + def test_convert_na_nasaames_to_nc(self): """ Test conversion of NASA Ames to NetCDF""" @@ -1355,5 +1406,6 @@ def suite(): text_out_suite, csv_in_suite, csv_out_suite, na_in_suite, na_out_suite, netcdf_convert_format_suite, hdf_convert_format_suite, nasa_ames_convert_format_suite]) + if __name__ == '__main__': unittest.TextTestRunner(verbosity=5).run(suite()) diff --git a/egads_lineage.egg-info/PKG-INFO b/egads_lineage.egg-info/PKG-INFO index 9f86ba2..8644c80 100644 --- a/egads_lineage.egg-info/PKG-INFO +++ b/egads_lineage.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: egads-lineage -Version: 1.2.6 +Version: 1.2.7 Summary: EGADS: EUFAR General Airborne Data-processing Software Home-page: https://github.com/EUFAR/egads/tree/Lineage Author: EUFAR, Olivier Henry diff --git a/egads_lineage.egg-info/SOURCES.txt b/egads_lineage.egg-info/SOURCES.txt index 55ae3b5..3bf4352 100644 --- a/egads_lineage.egg-info/SOURCES.txt +++ b/egads_lineage.egg-info/SOURCES.txt @@ -3,8 +3,8 @@ MANIFEST.in README.md setup.cfg setup.py -Documentation/EGADS Lineage Algorithm Handbook - v1.2.6.pdf -Documentation/EGADS Lineage Documentation - v1.2.6.pdf +Documentation/EGADS Lineage Algorithm Handbook - v1.2.7.pdf +Documentation/EGADS Lineage Documentation - v1.2.7.pdf Documentation/changelog.txt Documentation/EGADS Algorithm Handbook - LATEX/EGADS_alg_doc.tex Documentation/EGADS Algorithm Handbook - LATEX/example.py diff --git a/setup.py b/setup.py index e735f70..422a04e 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ doclines = __doc__.split('\n') setup(name='egads-lineage', - version='1.2.6', + version='1.2.7', description=doclines[0], long_description='\n'.join(doclines[2:]), author='EUFAR, Olivier Henry',