diff --git a/.gitignore b/.gitignore index 1df8ed0..70fc3c5 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,5 @@ ENV/ *.png *.pyc schainpy/scripts + +.vscode \ No newline at end of file diff --git a/.gitignore~ b/.gitignore~ deleted file mode 100644 index 3f4c241..0000000 --- a/.gitignore~ +++ /dev/null @@ -1,3 +0,0 @@ -build/ -dist/ -schainpy.egg-info/ diff --git a/README b/README deleted file mode 100644 index 7b2047d..0000000 --- a/README +++ /dev/null @@ -1,36 +0,0 @@ -Prerequisites: - -Core: - -numpy 1.8.0 - -scipy - -math - -matplotlib - -h5py - -ftplib - -paramiko (optional for SendTFilesToServer) - -stuffr (optional for jroIO_hf) - -pyfits (Fits data) - -GUI: - -PyQt4 - -wxPython - -Signal Chain Installation: - - 1. Install numpy, matplotlib, TKAgg - 2. Install digital_rf_hdf5 module (developed by Haystack Observatory) - if you want to use USRP data - 3. untar schainpy-x.x.x.tar.gz - 4. cd schainpy-x.x.x - 5. execute: - [hostname]$ sudo pyhon setup.py install - 6. testing gui: - [hostname]$ schainGUI (enter) - -If you want to use serialization and zerorpc you will need to install the next packages: - - 1. zerorpc - [hostname]$ sudo port install zerorpc - - 2. cPickle, msgpack and msgpack_numpy - [hostname]$ sudo port install cPickle msgpack mspack_numpy \ No newline at end of file diff --git a/experiment_project.py b/experiment_project.py deleted file mode 100644 index 5bb268a..0000000 --- a/experiment_project.py +++ /dev/null @@ -1,34 +0,0 @@ -from schainpy.controller import Project - -desc = "A schain project" - -controller = Project() -controller.setup(id='191', name="project", description=desc) - -readUnitConf = controller.addReadUnit(datatype='VoltageReader', - path="/home/nanosat/schain", - startDate="1970/01/01", - endDate="2017/12/31", - startTime="00:00:00", - endTime="23:59:59", - online=0, - verbose=1, - walk=1, - ) - -procUnitConf1 = controller.addProcUnit(datatype='VoltageProc', inputId=readUnitConf.getId()) - -opObj11 = procUnitConf1.addOperation(name='ProfileSelector', optype='other') -opObj11.addParameter(name='profileRangeList', value='120,183', format='intlist') - -opObj11 = procUnitConf1.addOperation(name='RTIPlot', optype='other') -opObj11.addParameter(name='wintitle', value='Jicamarca Radio Observatory', format='str') -opObj11.addParameter(name='showprofile', value='0', format='int') -opObj11.addParameter(name='xmin', value='0', format='int') -opObj11.addParameter(name='xmax', value='24', format='int') -opObj11.addParameter(name='figpath', value="/home/nanosat/schain/figs", format='str') -opObj11.addParameter(name='wr_period', value='5', format='int') -opObj11.addParameter(name='exp_code', value='22', format='int') - - -controller.start() diff --git a/schain.xml b/schain.xml deleted file mode 100644 index b67ac71..0000000 --- a/schain.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainc/.svn/all-wcprops b/schainc/.svn/all-wcprops deleted file mode 100644 index e5558a7..0000000 --- a/schainc/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 69 -/svn/jro_soft/schain/!svn/ver/1606/branches/schain_ebocanegra/schainc -END diff --git a/schainc/.svn/entries b/schainc/.svn/entries deleted file mode 100644 index 99de90d..0000000 --- a/schainc/.svn/entries +++ /dev/null @@ -1,37 +0,0 @@ -10 - -dir -1608 -http://jro-dev.igp.gob.pe/svn/jro_soft/schain/branches/schain_ebocanegra/schainc -http://jro-dev.igp.gob.pe/svn/jro_soft/schain - - - -2017-04-12T22:42:28.822577Z -1606 -ebocanegra - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -ea082a80-fb9f-4feb-b8d7-17586309b78c - -include -dir - -schaincuda -dir - -schainmpi -dir - diff --git a/schainc/include/.svn/all-wcprops b/schainc/include/.svn/all-wcprops deleted file mode 100644 index 6a0c96c..0000000 --- a/schainc/include/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 77 -/svn/jro_soft/schain/!svn/ver/1606/branches/schain_ebocanegra/schainc/include -END diff --git a/schainc/include/.svn/entries b/schainc/include/.svn/entries deleted file mode 100644 index 86ee647..0000000 --- a/schainc/include/.svn/entries +++ /dev/null @@ -1,28 +0,0 @@ -10 - -dir -1608 -http://jro-dev.igp.gob.pe/svn/jro_soft/schain/branches/schain_ebocanegra/schainc/include -http://jro-dev.igp.gob.pe/svn/jro_soft/schain - - - -2017-04-12T22:42:28.822577Z -1606 -ebocanegra - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -ea082a80-fb9f-4feb-b8d7-17586309b78c - diff --git a/schainc/schaincuda/.svn/all-wcprops b/schainc/schaincuda/.svn/all-wcprops deleted file mode 100644 index dead4d2..0000000 --- a/schainc/schaincuda/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 80 -/svn/jro_soft/schain/!svn/ver/1606/branches/schain_ebocanegra/schainc/schaincuda -END diff --git a/schainc/schaincuda/.svn/entries b/schainc/schaincuda/.svn/entries deleted file mode 100644 index c9e5c79..0000000 --- a/schainc/schaincuda/.svn/entries +++ /dev/null @@ -1,28 +0,0 @@ -10 - -dir -1608 -http://jro-dev.igp.gob.pe/svn/jro_soft/schain/branches/schain_ebocanegra/schainc/schaincuda -http://jro-dev.igp.gob.pe/svn/jro_soft/schain - - - -2017-04-12T22:42:28.822577Z -1606 -ebocanegra - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -ea082a80-fb9f-4feb-b8d7-17586309b78c - diff --git a/schainc/schainmpi/.svn/all-wcprops b/schainc/schainmpi/.svn/all-wcprops deleted file mode 100644 index 6622275..0000000 --- a/schainc/schainmpi/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 79 -/svn/jro_soft/schain/!svn/ver/1606/branches/schain_ebocanegra/schainc/schainmpi -END diff --git a/schainc/schainmpi/.svn/entries b/schainc/schainmpi/.svn/entries deleted file mode 100644 index c8cffea..0000000 --- a/schainc/schainmpi/.svn/entries +++ /dev/null @@ -1,28 +0,0 @@ -10 - -dir -1608 -http://jro-dev.igp.gob.pe/svn/jro_soft/schain/branches/schain_ebocanegra/schainc/schainmpi -http://jro-dev.igp.gob.pe/svn/jro_soft/schain - - - -2017-04-12T22:42:28.822577Z -1606 -ebocanegra - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -ea082a80-fb9f-4feb-b8d7-17586309b78c - diff --git a/schainpy/.gitignore b/schainpy/.gitignore deleted file mode 100644 index e69de29..0000000 --- a/schainpy/.gitignore +++ /dev/null diff --git a/schainpy/150km_jicamarca.xml b/schainpy/150km_jicamarca.xml deleted file mode 100644 index 95c5465..0000000 --- a/schainpy/150km_jicamarca.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/DBStest.xml b/schainpy/DBStest.xml deleted file mode 100644 index 9573a59..0000000 --- a/schainpy/DBStest.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/JASMET01.xml b/schainpy/JASMET01.xml deleted file mode 100644 index 18f18b6..0000000 --- a/schainpy/JASMET01.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/JASMET02.xml b/schainpy/JASMET02.xml deleted file mode 100644 index 4ad0cde..0000000 --- a/schainpy/JASMET02.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/JASMET04.xml b/schainpy/JASMET04.xml deleted file mode 100644 index 9e2f34f..0000000 --- a/schainpy/JASMET04.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/JASMET05.xml b/schainpy/JASMET05.xml deleted file mode 100644 index 0a2bc25..0000000 --- a/schainpy/JASMET05.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/ProcBLTR.xml b/schainpy/ProcBLTR.xml deleted file mode 100644 index 63dcb27..0000000 --- a/schainpy/ProcBLTR.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/SA2014050.xml b/schainpy/SA2014050.xml deleted file mode 100644 index ade1ed6..0000000 --- a/schainpy/SA2014050.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/__init__.pyc b/schainpy/__init__.pyc deleted file mode 100644 index 3efd92745c0989765364905a746a8558bb44eb1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@|~HdJ+dyavcM2%=a7L?mYc_`t=4F<|$LkeTmT&+i UY;yBcN^?@}*g%RvCbKaD0Ai&r%>V!Z diff --git a/schainpy/admin.pyc b/schainpy/admin.pyc deleted file mode 100644 index 7f0629822de9f45510c15e17d47896c828edc34e..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 f \ No newline at end of file diff --git a/schainpy/bltr_reader.xml b/schainpy/bltr_reader.xml deleted file mode 100644 index b7226fb..0000000 --- a/schainpy/bltr_reader.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/schainpy/controller.pyc b/schainpy/controller.pyc deleted file mode 100644 index 52fcf7f7a1aa217ddcb954dd6298045b5f93c0b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@~Q3OaL6p!#6Xi!H%>&49+ZV!9A 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 diff --git a/schainpy/controller_api.pyc b/schainpy/controller_api.pyc deleted file mode 100644 index 4cdc886a2b26773ca254f08a625b3c88d739fbc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@k*fq-cRh7~!uAPz+Ab&10(gU})XL^Cvr5(!n}LPCv5kboeoEHpCc!zOrj7FysnSZIUS zWT69Iiv@f{n}rSVIxO_SI_+;D2v=mVNW*&s?TlEViVPSFn4@w~tE!Ss<_6pfFi;ws zq#NF3eWDI=)vkjtKsAWU4*e6bL(5GfdD^Fk94V6?qoSB~8#}X9_FMGOCJn4GKfF*i zoN4vpIe3KahrY6H%gAp{rP_Do6m?ApK1*hjg~Q05un>?yk9g_?crRJb)rRR4VGTnD z=c-FE(1c1R_9dH|Y{f%L)*6hWsT|0}cPE3FQ8Gzm$CZQB9XWoOM3EY#(JU!e;_HE1 z*xz=Xmhyi16u^Vg}o1!avhD&6OMeV<#wLfPApb~dkZ-n>ABET$Kbc#jhV;{77 zIowrZW`)_dCj;BwqGJU^e;x88(0Ca#x`CnCRmSYkyV;J(J9o*Db*xSvSB`r*^AlOJ zU$Be5Q))PZWkY$(D3-r&E(zxXy@w2aoxZ&Lh(S z>#8MMMyt%oMy|0|;T*R_nbxz`Kzo_(1pbS4rl-ut)+`LMF7CtYskp$}Uc}m21Z%wu z>#Y_o2Kf|=bUKpWw|7vIcbGZK-y!cXFuJaO1MPL%-S&UJgd40MB6GT%3bh&Y3i%wm z>qJ1Z2bT{a1i0Gg+iLn}J8)yd+=OwRJelsBz~u?uM~e;WTqZS0PN=2A6>L;+7r$qC z*cm%B;XCqSDQ>g2pid^SxNB&atA~E76a{;nMDBC!PO$GgM^E1OUB$Wkg%iwV%Bs1L z>L83~>cC_7_Cx(kTt1Fv;wV1~@t1re;ZWDH?q)(~Ds`FUbon9eQ6#Am=C|kB0~xBH z9pB7$k7L|fy`70ac2g%>1?eG8@3Wzs;!V*J_l%m@!q%on?MW;fC6Ps)C+1?Ttey06j;Z-lfYbmrIuQ{}O+EEr^x_4kMDftT>Ul=a8TGa-W zi5=Zf=lfd@KQsmgT9(tx;^vdjYQKY=qV=c \ No newline at end of file diff --git a/schainpy/model/__init__.pyc b/schainpy/model/__init__.pyc deleted file mode 100644 index eaea447e7b940b709d620f97c189df8a083d5e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@5u Uh`k%94kz3mj6Nq12_^lFFTLhCBme*a diff --git a/schainpy/model/data/__init__.pyc b/schainpy/model/data/__init__.pyc deleted file mode 100644 index c71c585a1eda9793221a2c1defdde039db703799..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@8(rwe6(KN5u^$@1m>$HFdH@}2qZ8)wfXNK$ zYn?sw>Z;fr31vm;Hv~TZ2V^lS;EdmN@eCvQE;*lu{}<=VM(|-t7VWO|9Xv5 zqdT0!>U)-*@vew-|L`RNYTF^8Gpd1yb&VgSLh!1Vrk}TAgwASgAr1f`OmBh^yJ4J~ Rm-KdTaUVbA7le#w`~!eUHmv{v diff --git a/schainpy/model/data/jroamisr.pyc b/schainpy/model/data/jroamisr.pyc deleted file mode 100644 index d973f9dfc5ac1054a5c9701b6ce523e9b640774c..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@ 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 diff --git a/schainpy/model/graphics/__init__.pyc b/schainpy/model/graphics/__init__.pyc deleted file mode 100644 index b5546cd095df53e4aba0c18ed146cc5144d2bbf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@stYxR&I+9ux)7?>OV>y{_bbs=LY!s$ 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 diff --git a/schainpy/model/graphics/jroplot_correlation.pyc b/schainpy/model/graphics/jroplot_correlation.pyc deleted file mode 100644 index a99e2bc56acb6b9ed35b3997ccb1bd96796b718a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@bZ4w;U*sM1$w!}m;l1G+C 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 rAr{F0>O6l<*p*PwvApzP_a#8 diff --git a/schainpy/model/graphics/jroplot_parameters.py b/schainpy/model/graphics/jroplot_parameters.py index 6194c16..b18b6a7 100644 --- a/schainpy/model/graphics/jroplot_parameters.py +++ b/schainpy/model/graphics/jroplot_parameters.py @@ -658,13 +658,8 @@ class WindProfilerPlot(Figure): # tmax = None x = dataOut.getTimeRange1(dataOut.paramInterval) - y = dataOut.heightList - z = dataOut.data_output.copy() - print ' ' - print 'Xvel',z[0] - print ' ' - print 'Yvel',z[1] - print ' ' + y = dataOut.heightList + z = dataOut.data_output.copy() nplots = z.shape[0] #Number of wind dimensions estimated nplotsw = nplots diff --git a/schainpy/model/graphics/jroplot_parameters.pyc b/schainpy/model/graphics/jroplot_parameters.pyc deleted file mode 100644 index fc133def4a52af66fe67fdaa422584c5df04f05d..0000000000000000000000000000000000000000 GIT binary patch literal 0 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.uzrkt4_Ppo2KAs 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 BHI)DW diff --git a/schainpy/model/graphics/jroplot_voltage.pyc b/schainpy/model/graphics/jroplot_voltage.pyc deleted file mode 100644 index 0818d3b463d32f22e917c9e63e112e59cf960fa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@< z&hH+!DEVagxyeto!;MX}$E_mUAWzYrN@;`kjFisMUPkB)c~jKM(q5L7Jw;BI+B}-2 z=S0tl9`5C^e7lhY_e%emTjiQ1Y2d}yzH_BJ5W$*F*LUM)a}LZg zKt@5~D~8ET8fJ~eDu+ZPG0ccf!saokjd(G{64-F!ejjg)8W=S5sX~4j9BZN#c;}=U zJiG72+r7sk!3y~266JEL1t%2wnNC&v6;#t6);em>OXdu<&!;#$G757B^5ho=jj}Y# zAs9z_MB-?g`d2B=fYCEWcOJb%qk=G-qG6VXIT}iE4)Zjere`@)N1xKJL=kNBAch59 zTfB1Y`mq~(j*ftX;8+ansux1cEWo5C#ExXBPBycYMqg<8YyNdV~C&t% zX@Pxn#A}A8YVLNs^jtPFk)N_1uIoZ>v)WkQ8q59 zqADA2t5vmNyo!B)Ivx9BIlfMr;G|x}nQZ{}0FPr7%$%TLSx~SdC^(y(UeQ~MjhUdJ zhQ{0k3eLR-1^?|FE~u*=E);{tYxz!XZHfKFoK~ddVSD{_jyuh`?iwg5Y2yCE0Nb&mRCE%}Uz zEx+4~H^yCjY%8`t>BZyzi?gnM`gnSMI(;_53KSQo%%ZBB>~Ek!sdVY3Wmf+UmJQyF z+u+N&NsV#>>oqs3`9WM`_KA(IOz0(-#0aLY{ruA~XuE8S4|vz3nt7APcg>>+SX_Tt z@6_#PeY1YQzO66jR>zUDtSJ>t+uiS4@j*(1nZB1=PaUZX+i_P8j^nV|Wv~rwLH5SU zNddH%f^kAb0o9*bUeCE3hFtTa=Crz9$F~IyUDSVq?RHZ4Np;wZTkSCDpdZCnrz_PV z-*R_Q7|MMYM@ieW_PJcNK8$X8LF9<+t_tVrDjR<<(g>1 zYBf`%pVNUV7o47d1iqhvd$q*pXO2(ESyfUOjSGDBUp6WRkE*v-=B01(%<&?h!L{TZ z#Tt`2f3k+4dBfzfpm0!c#6 zM8fGh$x1DHKDITHxZ*~X5;=oQlYAjpm@Ry*@J>$5+ZYFCvuOt{RtLfbk$IoeGBBr8 f9X}^QKH+(eGK+D4pw0P1x#q&aIRzJ$j5*^!=9*t_ diff --git a/schainpy/model/graphics/jroplotter.pyc b/schainpy/model/graphics/jroplotter.pyc deleted file mode 100644 index ec931580ebba136bda49a20f5a1c532662e45716..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@i(FRGCE3~sq*^X1rx}21EWhd4?Xa};(Hd8JZ1dK#b zAV6b=wzVZ)R<6n=`$zH*a>y~~9CF)BuDRrtAF%1}0YJ)f?Mb4<;k;*hy1%b`#`<5= ziB|7E4R?d00`VM-Z0Om#jC~#GImNj7B435L0i!1Lnz~;N;sqGBpx1)YBJ>t@Z5`rs@Ho#c zmAU0IcfQPBz}y^&ChTC@hPMDm0MC0X5aNOj2aUsOajfdMqJ%W;}s*dTSI8{nyrP^rp=d{>8Oa!p1 zDy$f-k_s!MLK=OGimcHAqp+wF6qGV^+-h;F4c=CpwjPi*RC25MlBQp$Z2$}nH~=`X z;5!2hWm2JU!2#FyD{!D|s&bhSx{>zD&h<2qoODW99DFbX@C$bR^bA z76p6juhVQ#j{QKa%V6L~N&Yk5UmvBRh}U;Be>{i+xjxL&eEQCK-y?1OjOLqTJuI5G zVH<&w9~ud~L9MHp;F$~o4jDyFSQw3>8c)Se&ykXK=2f zI~XwJ0Y_-_NKRX9(((z>gX89(&15`Lx62}ZLSOk0C#ozTZ;e9t*k{_RNPsBxoZ`S( z?=)Li8wEFz#uOECUB;}om3rP47xpfc6Of7GvF;JQoc{6CF0x5-lcuCifL${kqiHyn zV|Lrl6#9fxgucTCoN^LVk)-RUiSX=W!ZEx#n3J)xNi&2C@YZCn*y8$m2p2hnKI2b=NG1J8xzGNnCX6ESU2O^SsvrBq& zJ6SrKX$#Dpol4IAEpe{)N$fn2n1cHz!C!kUG&=35@=UGB)Ms56S*;=q?9W(0?u!lNoF}iu)J=xc0B9)JaLb&sIwsR*2h%9^0G*YEwwQ`~wqmfueBQZm%3ugievV-R( zpsTjgFm3j5ipor`1lM|TUa5B=l{Fe1bxB`gla9Aa1A?*xpnusPntP#|B zR-C*}pgX`>98TwHTR7Lst-P@TXx76f3>OHCvn>mN28$XV;{UnXVYJ#3440|ya1IWz zc%G0;5-h?&jWCN79D!x9jgiv35gjK701>H_J?~Zexc9Rx&D=ByCWwsCjS_dp5?t=X ze5HH;>9Txr+r2C~2$f_wPBB3_{<6I7c-Lu_HA2@0*@62CYxA{`!xQq`m!%_#l&Qa@ zpz1*?6>;}%ZlcMbqE%7XFv<{zX|}JMNQBNhM+c9iygyUQNJxqM=DeJ24@Dm4VqQfm z7H#rX92g_01F`MrAlgZ@k+1sVO(4d^4eV>=zU0AJi_zpx${u8xMhS;cQiTL5qMO%Q zq;wD{5tSleGPi%Gp??3B$RtjTeuyN+Ee=rF?R^d?=chGXCh;&|VQ;DiERDY{InNtY znGW9Z%0MXP$^-*9+KeBLaEA?MUfMx7Rng8q%Pd6_ein;Nwe1qt>^7aeu`fn`6!UZ_ zn|Fgc+@a)Gl-w*lEH6QqhSR14KAV1j;3r`$*jRRHa$dq*MpwUVR`KiLcM;uZ#cY^V zS~D)0Yi7%66)_~qQ!OZC*C-<6Ayag=%owIB6S6x+8#BhCQ4}jwG>VQ)15|;!$UDsC z+;agb=i(6u+;9F%wuLl-#d|OQO~i9-;lIG61b%eA1HR6#5+CseYxR&h3z=&bdF6mF zsjEZ~>_w1NG^6a*A*&mxbmSP?3bO(-!FP~%!~S=YnZoL!4f_}2z$WfF(DPw;6O5-X zB^ZW*PFcG$8q%V9kt(tB2-_ZEmuL8WnxD*Kc~tDlx{+0IjSdaV0MjE#dtZ>zkbm-i zS;PopG*ND1$r(6UvkLcygyR%loGn|dC$*SBz|$gc`-in)Me)?Aa zWtkqnE7O|}XgbrZa__}j!7Tg=uu6{sW+Cd!HH};b?>n;Bj>}F+@}3kZ4dPS^eG28H zf%k$E|18eK!+pU&Xg()Dixsrn1@mMa&emAO;WN^3=uB}nUIA2=#_0MU4=}V1$#+d7 zTX81Z{`D12!!cRT6kwT$xzQQd9!xh|NbFMy zvFB_D)4IK&H^R>=BuO6wq@dsTKBL{Olcw#o$K}^8M-!Vh| aoHS~DfT0xrnTy7vrGHlpr}(p0I{yc4AjrZ1 diff --git a/schainpy/model/graphics/mpldriver.pyc b/schainpy/model/graphics/mpldriver.pyc deleted file mode 100644 index 990a1ef6bf84397bfb6894ba613cda8bd3e55867..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@5Ru&7XU%CDc!uJ}=NG8qEpe(4QfE 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

wC|HWD8bX`k$grR#7zagIggyb`9xCx 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 b3$Ikw<97X7u0E9$D#c3Szmdm`qjljA#)got diff --git a/schainpy/model/io/__init__.py b/schainpy/model/io/__init__.py index 57d9dc0..a91f271 100644 --- a/schainpy/model/io/__init__.py +++ b/schainpy/model/io/__init__.py @@ -13,7 +13,9 @@ from jroIO_kamisr import * from jroIO_param import * from jroIO_hf import * +from jroIO_madrigal import * + +from bltrIO_param import * from jroIO_bltr import * from jroIO_mira35c import * -from io_bltr_block import * diff --git a/schainpy/model/io/__init__.pyc b/schainpy/model/io/__init__.pyc deleted file mode 100644 index 473b2d63daa18a37cfd74a2196add05654ffc8ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@Cn#|I8eC@aUn39f~l!ZcMR=D2Ol*4%CaggqTJf+b$(Zm3PICb>Rn9Nlb-hDC$Hh+b Hxm*4Lwf=!w diff --git a/schainpy/model/io/bltrIO_param.py b/schainpy/model/io/bltrIO_param.py new file mode 100644 index 0000000..3c834d0 --- /dev/null +++ b/schainpy/model/io/bltrIO_param.py @@ -0,0 +1,362 @@ +''' +Created on Nov 9, 2016 + +@author: roj- LouVD +''' + + +import os +import sys +import time +import glob +import datetime + +import numpy + +from schainpy.model.proc.jroproc_base import ProcessingUnit +from schainpy.model.data.jrodata import Parameters +from schainpy.model.io.jroIO_base import JRODataReader, isNumber + +FILE_HEADER_STRUCTURE = numpy.dtype([ + ('FMN', ' dateFile) or (endDate < dateFile): + continue + + self.fileList.append(thisFile) + self.dateFileList.append(dateFile) + + return + + def setNextFile(self): + + file_id = self.fileIndex + + if file_id == len(self.fileList): + print '\nNo more files in the folder' + print 'Total number of file(s) read : {}'.format(self.fileIndex + 1) + self.flagNoMoreFiles = 1 + return 0 + + print '\n[Setting file] (%s) ...' % self.fileList[file_id] + filename = os.path.join(self.path, self.fileList[file_id]) + + dirname, name = os.path.split(filename) + self.siteFile = name.split('.')[0] # 'peru2' ---> Piura - 'peru1' ---> Huancayo or Porcuya + if self.filename is not None: + self.fp.close() + self.filename = filename + self.fp = open(self.filename, 'rb') + self.header_file = numpy.fromfile(self.fp, FILE_HEADER_STRUCTURE, 1) + self.nrecords = self.header_file['nrec'][0] + self.sizeOfFile = os.path.getsize(self.filename) + self.counter_records = 0 + self.flagIsNewFile = 0 + self.fileIndex += 1 + + return 1 + + def readNextBlock(self): + + while True: + if self.counter_records == self.nrecords: + self.flagIsNewFile = 1 + if not self.setNextFile(): + return 0 + + self.readBlock() + + if (self.datatime.time() < self.startTime) or (self.datatime.time() > self.endTime): + print "[Reading] Record No. %d/%d -> %s [Skipping]" %( + self.counter_records, + self.nrecords, + self.datatime.ctime()) + continue + break + + print "[Reading] Record No. %d/%d -> %s" %( + self.counter_records, + self.nrecords, + self.datatime.ctime()) + + return 1 + + def readBlock(self): + + pointer = self.fp.tell() + header_rec = numpy.fromfile(self.fp, REC_HEADER_STRUCTURE, 1) + self.nchannels = header_rec['nchan'][0]/2 + self.kchan = header_rec['nrxs'][0] + self.nmodes = header_rec['nmodes'][0] + self.nranges = header_rec['nranges'][0] + self.fp.seek(pointer) + self.height = numpy.empty((self.nmodes, self.nranges)) + self.snr = numpy.empty((self.nmodes, self.nchannels, self.nranges)) + self.buffer = numpy.empty((self.nmodes, 3, self.nranges)) + + for mode in range(self.nmodes): + self.readHeader() + data = self.readData() + self.height[mode] = (data[0] - self.correction) / 1000. + self.buffer[mode] = data[1] + self.snr[mode] = data[2] + + self.counter_records = self.counter_records + self.nmodes + + return + + def readHeader(self): + ''' + RecordHeader of BLTR rawdata file + ''' + + header_structure = numpy.dtype( + REC_HEADER_STRUCTURE.descr + [ + ('antenna_coord', 'f4', (2, self.nchannels)), + ('rx_gains', 'u4', (self.nchannels,)), + ('rx_analysis', 'u4', (self.nchannels,)) + ] + ) + + self.header_rec = numpy.fromfile(self.fp, header_structure, 1) + self.lat = self.header_rec['lat'][0] + self.lon = self.header_rec['lon'][0] + self.delta = self.header_rec['delta_r'][0] + self.correction = self.header_rec['dmode_rngcorr'][0] + self.imode = self.header_rec['dmode_index'][0] + self.antenna = self.header_rec['antenna_coord'] + self.rx_gains = self.header_rec['rx_gains'] + self.time = self.header_rec['time'][0] + tseconds = self.header_rec['time'][0] + local_t1 = time.localtime(tseconds) + self.year = local_t1.tm_year + self.month = local_t1.tm_mon + self.day = local_t1.tm_mday + self.t = datetime.datetime(self.year, self.month, self.day) + self.datatime = datetime.datetime.utcfromtimestamp(self.time) + + def readData(self): + ''' + Reading and filtering data block record of BLTR rawdata file, filtering is according to status_value. + + Input: + status_value - Array data is set to NAN for values that are not equal to status_value + + ''' + + data_structure = numpy.dtype( + DATA_STRUCTURE.descr + [ + ('rx_saturation', 'u4', (self.nchannels,)), + ('chan_offset', 'u4', (2 * self.nchannels,)), + ('rx_amp', 'u4', (self.nchannels,)), + ('rx_snr', 'f4', (self.nchannels,)), + ('cross_snr', 'f4', (self.kchan,)), + ('sea_power_relative', 'f4', (self.kchan,))] + ) + + data = numpy.fromfile(self.fp, data_structure, self.nranges) + + height = data['range'] + winds = numpy.array((data['zonal'], data['meridional'], data['vertical'])) + snr = data['rx_snr'].T + + winds[numpy.where(winds == -9999.)] = numpy.nan + winds[:, numpy.where(data['status'] != self.status_value)] = numpy.nan + snr[numpy.where(snr == -9999.)] = numpy.nan + snr[:, numpy.where(data['status'] != self.status_value)] = numpy.nan + snr = numpy.power(10, snr / 10) + + return height, winds, snr + + def set_output(self): + ''' + Storing data from databuffer to dataOut object + ''' + + self.dataOut.data_SNR = self.snr + self.dataOut.height = self.height + self.dataOut.data_output = self.buffer + self.dataOut.utctimeInit = self.time + self.dataOut.utctime = self.dataOut.utctimeInit + self.dataOut.useLocalTime = False + self.dataOut.paramInterval = 157 + self.dataOut.timezone = self.timezone + self.dataOut.site = self.siteFile + self.dataOut.nrecords = self.nrecords/self.nmodes + self.dataOut.sizeOfFile = self.sizeOfFile + self.dataOut.lat = self.lat + self.dataOut.lon = self.lon + self.dataOut.channelList = range(self.nchannels) + self.dataOut.kchan = self.kchan + # self.dataOut.nHeights = self.nranges + self.dataOut.delta = self.delta + self.dataOut.correction = self.correction + self.dataOut.nmodes = self.nmodes + self.dataOut.imode = self.imode + self.dataOut.antenna = self.antenna + self.dataOut.rx_gains = self.rx_gains + self.dataOut.flagNoData = False + + def getData(self): + ''' + Storing data from databuffer to dataOut object + ''' + if self.flagNoMoreFiles: + self.dataOut.flagNoData = True + print 'No file left to process' + return 0 + + if not self.readNextBlock(): + self.dataOut.flagNoData = True + return 0 + + self.set_output() + + return 1 diff --git a/schainpy/model/io/io_bltr_block.py b/schainpy/model/io/io_bltr_block.py deleted file mode 100644 index 56697a4..0000000 --- a/schainpy/model/io/io_bltr_block.py +++ /dev/null @@ -1,950 +0,0 @@ -''' -Created on Nov 9, 2016 - -@author: roj- LouVD -''' - -import numpy -import os.path -import sys -import time -import datetime -from sys import path -from os.path import dirname -from mimify import HeaderFile -from numpy import size, asarray -from datetime import datetime -from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation -from schainpy.model.data.jrodata import Parameters -from schainpy.model.data.jroheaderIO import RadarControllerHeader, SystemHeader -from schainpy.model.graphics.jroplot_parameters import WindProfilerPlot -from schainpy.model.io.jroIO_base import * - -import schainpy -#import madrigal -#import madrigal.cedar -#from madrigal.cedar import MadrigalCatalogRecord - -import warnings -from time import gmtime -from math import floor - -warnings.simplefilter("error") -from numpy.lib.nanfunctions import nansum -warnings.simplefilter('ignore', FutureWarning) - - -class testBLTRReader(ProcessingUnit): - - - def __init__(self, **kwargs): - - path = None - startDate = None - endDate = None - startTime = None - endTime = None - startTime = None - endTime = None - - isConfig = False - dataOut = None - walk = None - ext = 'swwma' - fileList = [] - fileIndex = -1 - timezone = None - filename = None - - timearray = None - height = None - snr_ref = None - zon_ref = None - ver_ref = None - mer_ref = None - nmodes = None - nchannels = None - nranges = None - year = None - month = None - day = None - lat = None - lon = None - siteFile = None - - ProcessingUnit.__init__(self , **kwargs) - self.dataOut = self.createObjByDefault() - self.imode = 0 - self.counter_records = 0 - - self.isConfig = False - self.flagNoMoreFiles = 0 - - self.buffer = None - - - def createObjByDefault(self): - - dataObj = Parameters() - - return dataObj - - def info(self): - ''' - Experience information - - ''' - self.hoy = datetime.datetime.now() - place = 'Jicamarca Radio Observatory' - signalchainweb='http://jro-dev.igp.gob.pe:3000/projects/signal-chain/wiki/Manual_de_Desarrollador' - print '{} at {}'.format(self.hoy,place) - print 'Boundary Layer and Tropospheric Radar (BLTR) script, Wind velocities and SNR from *.sswma files' - print '{} \n'.format(signalchainweb) - - def run(self, path, startDate, endDate, ext, startTime, endTime, queue=None): - - if not(self.isConfig): - self.setup(path, startDate, endDate, ext) - self.isConfig = True - - self.getData() - - def setup(self, - path=None, - startDate=None, - endDate=None, - ext=None, - startTime=datetime.time(0, 0, 0), - endTime=datetime.time(23, 59, 59), - timezone=0): - - self.info() - self.path = path - if self.path == None: - raise ValueError, "The path is not valid" - - if ext == None: - ext = self.ext - - self.searchFiles(self.path, startDate, endDate, ext) - - self.timezone = timezone - self.ext = ext - self.fileIndex = -1 - - if not(self.fileList): - raise Warning, "There is no files matching these date in the folder: %s. \n Check 'startDate' and 'endDate' "%(path) - - - if not(self.setNextFile()): - - print 'not next file' - if (startDate!=None) and (endDate!=None): - print "No files in range: %s - %s" %(datetime.datetime.combine(startDate,startTime).ctime(), datetime.datetime.combine(endDate,endTime).ctime()) - elif startDate != None: - print "No files in range: %s" %(datetime.datetime.combine(startDate,startTime).ctime()) - else: - print "No files" - - sys.exit(-1) - - def searchFiles(self, path, startDate, endDate, ext=None): - ''' - Searching for BLTR rawdata file in path - Creating a list of file to proces included in [startDate,endDate] - - Input: - path - Path to find BLTR rawdata files - startDate - Select file from this date - enDate - Select file until this date - ext - Extension of the file to read - - ''' - - fullpath = path - foldercounter = 0 - - print 'Searching file in %s ' % (fullpath) - fileList0 = glob.glob1(fullpath, "*%s" % ext) - fileList0.sort() - - self.fileList = [] - self.dateFileList = [] - - for thisFile in fileList0: - year = thisFile[-14:-10] - if not isNumber(year): - continue - - month = thisFile[-10:-8] - if not isNumber(month): - continue - - day = thisFile[-8:-6] - if not isNumber(day): - continue - - year, month, day = int(year), int(month), int(day) - dateFile = datetime.date(year, month, day) - - if not ((startDate <= dateFile) and (endDate > dateFile)): - continue - - self.fileList.append(thisFile) - self.dateFileList.append(dateFile) - - return 1 - - - def setNextFile(self): - - idFile = self.fileIndex - - while (True): - idFile += 1 - if idFile >= len(self.fileList): - print '\nNo more files in the folder' - print 'Total number of file(s) read : {}'.format(self.fileIndex + 1) - print 'Time of processing : {}'.format(datetime.datetime.now()- self.hoy) - self.flagNoMoreFiles = 1 - return 0 - if self.isConfig: print '------------------------[Next File]---------------------------' - filename = os.path.join(self.path, self.fileList[idFile]) - self.Open(filename) - - print '\n[Setting file] (%s) ...' % self.fileList[idFile] - - break - - self.flagIsNewFile =0 - - self.fileIndex = idFile - self.filename = filename - print 'File:',self.filename - - return 1 - - def readDataBlock(self): - - - self.readHeader() - self.dataRecords(0) - - print '[New Record] record: {} /{} // file {}/{}'.format(self.counter_records,self.nrecords,self.fileIndex+1,len(self.fileList)) - - self.setDataBuffer() - - self.flagIsNewBlock = 1 - - if self.counter_records > self.nrecords: - self.flagIsNewFile = 1 - return 0 - - return 1 - - def setDataBuffer(self): - - ''' - Storing data from one block - - ''' - self.t = datetime.datetime(self.year, self.month, self.day) - self.doy = time.localtime(time.mktime(self.t.timetuple())).tm_yday - self.buffer = numpy.squeeze(numpy.array([[self.one_snr],[self.one_zonal],[self.one_vertical],[self.one_meridional], - [self.time],[self.height],[self.fileIndex], - [self.year],[self.month],[self.day],[self.t],[self.doy]])) - - self.dataOut.time1 = self.time1 - - def Open(self, filename): - ''' - Opening BLTR rawdata file defined by filename - - Inputs: - - filename - Full path name of BLTR rawdata file - - ''' - [dir, name] = os.path.split(filename) - strFile = name.split('.') - self.siteFile = strFile[0] # 'peru2' ---> Piura - 'peru1' ---> Huancayo or Porcuya - - self.filename = filename - if os.path.isfile(self.filename) == False: - print 'File do not exist. Check "filename"' - sys.exit(0) - - self.h_file = numpy.dtype([ - ('FMN', '= 0., self.dataOut.height[0, :] <= self.hcm, numpy.isfinite(self.dataOut.height[0, :]))) - else: - h_select = numpy.where(numpy.bitwise_and(self.dataOut.height[0, :] >= 0., self.dataOut.height[0, :] < 20, numpy.isfinite(self.dataOut.height[0, :]))) - - ht = h_select[0] - - self.o_height = self.dataOut.height[self.im, ht] - self.o_zon = self.z_zon[ht, self.im] - self.o_mer = self.z_mer[ht, self.im] - self.o_ver = self.z_ver[ht, self.im] - o_snr = self.dataOut.data_SNR[ :, :, self.im] - - o_snr = o_snr[ht, :] - - ndiv = numpy.nansum((numpy.isfinite(o_snr)), 1) - ndiv = ndiv.astype(float) - - sel_div = numpy.where(ndiv == 0.) - ndiv[sel_div] = numpy.nan - - if self.nchannels > 1: - msnr = numpy.nansum(o_snr, axis=1) - else: - msnr = o_snr - - try: - self.msnr = 10 * numpy.log10(msnr / ndiv) - except ZeroDivisionError: - self.msnr = 10 * numpy.log10(msnr /1) - print 'Number of division (ndiv) egal to 1 by default. Check SNR' - - time_t = time.gmtime(self.dataOut.time1) - year = time_t.tm_year - month = time_t.tm_mon - day = time_t.tm_mday - hour = time_t.tm_hour - minute = time_t.tm_min - second = time_t.tm_sec - timedate_0 = datetime.datetime(year, month, day, hour, minute, second) - - # 1d parameters - GDLATR = self.lat - GDLONR = self.lon - GDLAT2 = self.lat - GLON2 = self.lon - - # 2d parameters - GDALT = self.o_height - - SNL = self.msnr - VN1P2 = self.o_zon - VN2P2 = self.o_mer - EL2 = self.o_ver - NROW = len(self.o_height) - - startTime = timedate_0 - endTime = startTime - self.dataRec = madrigal.cedar.MadrigalDataRecord(self.kinst, - self.kindat, - startTime.year, - startTime.month, - startTime.day, - startTime.hour, - startTime.minute, - startTime.second, - 0, - endTime.year, - endTime.month, - endTime.day, - endTime.hour, - endTime.minute, - endTime.second, - 0, - ('gdlatr', 'gdlonr', 'gdlat2', 'glon2'), - ('gdalt', 'snl', 'vn1p2', 'vn2p2', 'el2'), - NROW, ind2DList=['gdalt']) - - # Setting 1d values - self.dataRec.set1D('gdlatr', GDLATR) - self.dataRec.set1D('gdlonr', GDLONR) - self.dataRec.set1D('gdlat2', GDLAT2) - self.dataRec.set1D('glon2', GLON2) - - # Setting 2d values - for n in range(self.o_height.shape[0]): - self.dataRec.set2D('gdalt', n, GDALT[n]) - self.dataRec.set2D('snl', n, SNL[n]) - self.dataRec.set2D('vn1p2', n, VN1P2[n]) - self.dataRec.set2D('vn2p2', n, VN2P2[n]) - self.dataRec.set2D('el2', n, EL2[n]) - - # Appending new data record - ''' - [MADRIGAL3]There are two ways to write to a MadrigalCedarFile. Either this method (write) is called after all the - records have been appended to the MadrigalCedarFile, or dump is called after a certain number of records are appended, - and then at the end dump is called a final time if there were any records not yet dumped, followed by addArray. - ''' - - self.cedarObj.append(self.dataRec) - print ' [Writing] records {} (mode {}).'.format(self.dataOut.counter_records,self.im+1) - self.cedarObj.dump() - - - - - def setHeader(self): - ''' - - Creating self.catHeadObj - - Adding information catalog - - Writing file header - - ''' - self.catHeadObj = madrigal.cedar.CatalogHeaderCreator(self.fullname) - kindatDesc, comments, analyst, history, principleInvestigator = self._info_BLTR() - - self.catHeadObj.createCatalog(principleInvestigator="Jarjar", - expPurpose='characterize the atmospheric dynamics in this region where frequently it happens the El Nino', - sciRemarks="http://madrigal3.haystack.mit.edu/static/CEDARMadrigalHdf5Format.pdf") - - self.catHeadObj.createHeader(kindatDesc, analyst, comments, history) - - self.catHeadObj.write() - - print '[File created] path: %s' % (self.fullname) - - def putData(self): - - if self.dataOut.flagNoData: - return 0 - - if self.dataOut.counter_records == 1: - self.setFile() - print '[Writing] Setting new hdf5 file for the mode {}'.format(self.im+1) - - if self.dataOut.counter_records <= self.dataOut.nrecords: - self.writeBlock() - - - if self.dataOut.counter_records == self.dataOut.nrecords: - self.cedarObj.addArray() - - self.setHeader() - self.flagIsNewFile = 1 - - def _info_BLTR(self): - - kindatDesc = '''--This header is for KINDAT = %d''' % self.kindat - history = None - analyst = '''Jarjar''' - principleInvestigator = ''' - Jarjar - Radio Observatorio de Jicamarca - Instituto Geofisico del Peru - - ''' - if self.type == 1: - comments = ''' - - --These data are provided by two Boundary Layer and Tropospheric Radar (BLTR) deployed at two different locations at Peru(GMT-5), one of them at Piura(5.17 S, 80.64W) and another located at Huancayo (12.04 S, 75.32 W). - - --The purpose of conducting these observations is to measure wind in the differents levels of height, this radar makes measurements the Zonal(U), Meridional(V) and Vertical(W) wind velocities component in northcoast from Peru. And the main purpose of these mensurations is to characterize the atmospheric dynamics in this region where frequently it happens the 'El Nino Phenomenon' - - --In Kindat = 1600, contains information of wind velocities component since 0 Km to 3 Km. - - --In Kindat = 1601, contains information of wind velocities component since 0 Km to 10 Km. - - --The Huancayo-BLTR is a VHF Profiler Radar System is a 3 channel coherent receiver pulsed radar utilising state-of-the-art software and computing techniques to acquire, decode, and translate signals obtained from partial reflection echoes in the troposphere, lower stratosphere and mesosphere. It uses an array of three horizontal spaced and vertically directed receiving antennas. The data is recorded thirty seconds, averaged to one minute mean values of Height, Zonal, Meridional and Vertical wind. - - --The Huancayo-BLTR was installed in January 2010. This instrument was designed and constructed by Genesis Soft Pty. Ltd. Is constituted by three groups of spaced antennas (distributed) forming an isosceles triangle. - - - Station _______ Geographic Coord ______ Geomagnetic Coord - - _______________ Latitude _ Longitude __ Latitude _ Longitude - - Huancayo (HUA) __12.04 S ___ 75.32 W _____ -12.05 ____ 352.85 - Piura (PIU) _____ 5.17 S ___ 80.64 W ______ 5.18 ____ 350.93 - - WIND OBSERVATIONS - - --To obtain wind the BLTR uses Spaced Antenna technique (e.g., Briggs 1984). The scatter and reflection it still provided by variations in the refractive index as in the Doppler method(Gage and Basley,1978; Balsley and Gage 1982; Larsen and Rottger 1982), but instead of using the Doppler shift to derive the velocity components, the cross-correlation between signals in an array of three horizontally spaced and vertically directed receiving antennas is used. - - ...................................................................... - For more information, consult the following references: - - Balsley, B. B., and K. S. Gage., On the use of radars for operational wind profiling, Bull. Amer. Meteor.Soc.,63, 1009-1018, 1982. - - - Briggs, B. H., The analysis of spaced sensor data by correations techniques, Handbook for MAP, Vol. 13, SCOTEP Secretariat, University of Illinois, Urbana, 166-186, 1984. - - - Gage, K. S., and B.B. Balsley., Doppler radar probing of the clear atmosphere, Bull. Amer. Meteor.Soc., 59, 1074-1093, 1978. - - - Larsen, M. F., The Spaced Antenna Technique for Radar Wind Profiling, Journal of Atm. and Ocean. Technology. , Vol.6, 920-937, 1989. - - - Larsen, M. F., A method for single radar voracity measurements?, Handbook for MAP,SCOSTEP Secretariat, University of the Illinois, Urban, in press, 1989. - ...................................................................... - - ACKNOWLEDGEMENTS: - - --The Piura and Huancayo BLTR are part of the network of instruments operated by the Jicamarca Radio Observatory. - - --The Jicamarca Radio Observatory is a facility of the Instituto Geofisico del Peru operated with support from the NSF Cooperative Agreement ATM-0432565 through Cornell University - - ...................................................................... - - Further questions and comments should be addressed to: - Radio Observatorio de Jicamarca - Instituto Geofisico del Peru - Lima, Peru - Web URL: http://jro.igp.gob.pe - ...................................................................... - ''' - - return kindatDesc, comments, analyst, history, principleInvestigator - diff --git a/schainpy/model/io/io_bltr_block.pyc b/schainpy/model/io/io_bltr_block.pyc deleted file mode 100644 index 54881e7746dbb708aaa0f62c84ab515498c293dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@r7hH 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 %s" %(self.nReadBlocks, -# self.processingHeaderObj.dataBlocksPerFile, -# self.dataOut.datatime.ctime()) + if self.verbose: + print "[Reading] Block No. %d/%d -> %s" %(self.nReadBlocks, + self.processingHeaderObj.dataBlocksPerFile, + self.dataOut.datatime.ctime()) return 1 def __readFirstHeader(self): diff --git a/schainpy/model/io/jroIO_base.pyc b/schainpy/model/io/jroIO_base.pyc deleted file mode 100644 index 2bdffe7820075be7b69831065a88be75de8084c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 diff --git a/schainpy/model/io/jroIO_heispectra.pyc b/schainpy/model/io/jroIO_heispectra.pyc deleted file mode 100644 index eefeaf8a98172fc3e29d05b6733426cc62a4a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 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

7cv^l>bQO6SMI{;ULQ={%~9z z2T!o#^>>ufzCbh@F+8n5iaI85Yy#Os@*_w-Z>Zg7(5faixkyA4O^7B!fAN07h$xsH z5w)bs-SRY9eA;S;8(f9VOL8GNj1upc%?u>C<5!hd7mZBCQqYX$cGf-1rV}=EXwwPu z-Y=pJ%v&Dpcr2-rT5`L(;Wya=%Huw+Hh1|ET)6DGWrJKJ>bMZri0{F_YYN=?b4H@5 zhjK5Ix1wo0zg*%4c>h^x;j>{aq^$P-q%s=qFZG0L8y&S8)wWq-Ck}U;INYy;jX*e7 z136+L!_>q5oRhmtpq(sI_nrcDLc=)QzY&U(X(k-ZrmBS=uSFCw@l*S z1lN@LFSl?UcgA^|z0M7IacVe2$g`t{|9rz?Zc`UhIgR}xGX5!-*+jpoe^JW{NBvw+ zoa#@+E@EvW^^7)s5G952LavwcU3Zuz`#FH4z+D!>D~_H1?{&e%h+GpnjDMR+4@YDq zS#x{N1fY;2eXKg_Gy0ON)Nf`%oOEDt$=t!KmyG&UG6tBkw!6p@w6avxrWYD}XOM-V zeiPy$8vhV`Vt>&&V-q?t{j5#xfzA z!Z@=WLkwLdN(B6=G~x{TJZC ze?`)bvEF}E##iy*m3GfBhZUlywzDJ@dy|lJdQdckv707xybJs3r~^Bb6LfRpy&kh% zZ=Q&UlHDU9v@8{}{ZVMj86xIM1Qhxx7iL=FE`s>&Y$v+%V0hw8wQh=@j} zBG+8G=#+)2go}A8_Uj`5l{=Kn-d|Tb%tJI0_O6{!%-9k(taPYLr=jc{%9u01ilkeM z@cv0pcmZY@85i8Dn_j%YX*k$4{%Z%fk4ZZ0i?S zaQs7*6f63l=O^tbsJv8(8ilX}~_~|Dd!*Ay|zXe(e3QGTsMv(y^H8`@5;H!uvI) z{S3*ulXO3-zn*q4#FkMc^;dvy*V<9!2gyCeJNglGl)xvMxy}=F}5kt@qQ^&1YN_;XvfS z%mIR6z9lDb0|kjOkS0(%gDs?CbY}z%#uYAq8)1W8b~wE|uG9M{N$^4&HTYAm=5ri1 z_#P3GK>iL6sCvx&_`X#{L}4k|41d-#y)!(9KanEa1?W+NViKC2MguV678@Kc4#*H8 zmOa7jDSp==l>{dtAd>NfiIu(GDgZO-7@>;|6^#_U5GvBD5zeCaBle=!ud7V zL_aWI!4J$))gY&ir1UdT>UNKCAX@4xAQU|`u{obpf6mCx^UhyD*c3u7f7|W2nubvG z=To_k}Fk2b;Lp);Ro{&2g{B(IbxiygtL9koFt!72KcsFhz$gRV zESEj;Q5f@Sn6W~xG+D?Lo+^wKDu^pBj3cBV!#|}v@;9yF+V3a~(i_hfE))udY~dLe zsaIs+MVi8iJNp114oJPDY(Q!s2c-6KK&pI>vX28&mARhpnCtnjxt^af*YmUbdcG%d zB&VY-;jld;+EPb7b_QH3t+45u&fE8=0xm@|mpIF=dkFk(3476=zr>?&^}&hyRSTR5 zjPzioR9W*(bFzxs!oDPlQ# zUKscRbcr~LAjt2vNoplQKEiu%lPKG$hjFDU+D6Nd!VYcX=6=oJt2L;H_?1o-gWA?{ z+ql&Ts-$V?o`dkr&Z%$d*!Hj#?6s4$Lwfy^>7z=^X;TtId8t%`YP0c9wSw!->4*{5 zZTjCpvvl&6kfu>Qp<1Ow;VK^fzQW`3?&*PP!`id}?xj&n=gMDrFmF%;Zf93~vbEep z(D(nsY9jP2vn&jtV6H*+em&4$wfy?11B#g;6ZQfRoRT?VWY5(2zwsZzr5n_%yeI`mJq%pwqonc zv{_@t{vi_-B+)y0ez6}SzWtH}$xp|Osc@7D@ggy5hph+b%Nh{O7UJoM9;V~#Z=+_+ zFPoUYQC4%ZUE@njIu4ky5d?JBPzVdkAe@l&Y5PfuEk|F6#O+BDBPaRO5_vYd_w&-G zyY>WMN-dmKKLeBe8TEV_;Eek7Fh8GB|31VVol*Z3ZE5}}hX|x2BfRchFab!qkWn)T zPR1H9A{I$Msi^V#h?=k^6tMSs+(0<&r>A3Td}92lV4Uc(5l`bfLVW^P5Rzw1U(d4t zc}h*yr#Ze^Wf0R`R6Ea!L&AO?a~6Jy{bQB9U;D@x9=6#}A)SAKJD=g6%UH$~HJN&k zp=cA&^Qz{|vk&rHtiybt3s=AlwH?Q72F+{+#iF#~-q%Auuj(8caIBo8Av2HffM?}! z$bP|-sxFz2IkClb6qCE=u8)cVbwU^U@5L>sG&s`T4AC7=6E%3b7010dS5h1gD z%?_gTX5>GTFTtYyP5EXnXwSVH+bn|e-3kw%iJpU7R|LwxW$6+t85PF}6V_wu{WGOS zQ0^@VAB#)%$Ga)tk6NPlV^$VPzeLN+g{;V5EM)m)t7Svclh!&uTB>i5}Gz{xQbY$ZrxgC3so#GV-8`1v5Y^SsBhYCz4W5@Mbw@6 zjN-5*+iX~2|3m8fWcTj%$CwqKAY-|7j=|&&xM;}cYXTcq2<&W<+6D`e`?YF7c5%-A(B5rg89i8L;%D~Bq2u$I|doF zeU3lgZ#C!rB=Y_FjxWW__v?UYGS!W0>`UMUOMSShW>z)NtD1*pW1brGcdFU&T{+zd zHgGh;U+I%|pEPW417F5tHAp^(2jJ#QjjWOK9`$DX8Gm1uueW}L9T(5@F-)^hP&`r@ c{*(rRkvmDbNq6$KvGU~DYHxwpXi@&hAj#qh0MXUQb%nO-@rY z-J|ZFCApxIAX*2=VIv3}BR~>3aqL`vaDpHYh9B%a7;%6Efs-JI9l*#11bzyT1I|m5 z|NE<|r)MbHjzb}$SgNkByZ-|zoj1jrsq;CpmecvXSj+2tL97*Yz9`m;IzJ}X#&o_U)=HeuiB4H`D`Kr8y5nMP zTo@?Li%wN^C&b!>d@hL2r0CYfT1|AP#M%^<7R7rs$!YZFj*0hZk_Uua;=)(sJ>k~>1YwKj*Ujiqs{aha0J`N(q;&$Yt9`cS`PJ^h6B)R`xrsZ?Ha`bj&C&RS8p zd8!q5&ph+w3l;yr=}&#hq=v~HCAQ-_(fKe)qOjBPqAQ-`dQnoPH;tV*@w&2L$w2)v zO5O-NiL>F!4kjtN8ig${j{RWc^}tV(G8L`%yvRxXFleEfp$_FdCVY&Nof(k`u}jM_ zgpnAcaXlyr!!QzB)|<3T4emVtI5n(T^yhrryVds`EA}m~W3|FyvmYd(<$6}jiJVsA zMP6)C4SLn>g@G4X{lJQoh^A!q`X1Gby$J2zp_Tb=7+Vf%1pTfTh07Hl$Pag zUVN4d@TcLUp6k&FT|aQ#Q1=>yckP(^m7Q`AD?zWH3_7ExPw4gzEu&9K>{%VpassF0 zzw1~%TFqdz2R<`{$Vq&blGE+5>zzh- zH&1Vc(apH$w7k=CtL^xK`lq*Zx*NJ)=d>T5-i*SP)nPyvzNdP)R_coV%A#AXrI?l7Y-ZjOOJcMTykH*+HT zDS_%#m=l{NRTVv4$1HN0S^O@~f|!R&2_%vVcVZYc|6LRBZki(cI=`in8Uz}bsr>Sl z?Qzg=#la?i889C>s_ZNw@U!3-IAEUe8nBd7}Vm|jk~W)uZ0%A1iY#HpdBAa=uaU5 zQZXsr^mbxUSnMU%`(spi?BtVY+{b*ONdeExRCF?qkAeW(p0)0Gyuj&t*2&m%Ln7)R zOe}BPkCXTiRastM-UvbAge0imapHvAoVAuF&;>9kj2ZJf)X4QCo(px#WM3z!-~vC8 ze9&`}Hq&X`>-dScoiI~$!Y$%oOxfx6yujsb97crKc1dIEdeC)}R-50^6bJy8K+N`( z<|Xu&lN*p=a_Ca>nZKeRlC~e?Eq53&({Q%CgKBAg?9TqNC}hEgmtfpW zQP^#G$;0UNW%O+njaqKT$QLGvSr6uO#+bQe6wPUq%FH>lYLv{fF<~qk^OP%@^Hi5o zqiht+qA^GLmZ_M#pc(v+g=BDZn89;m`(u(NJ_>FJD>K7Oam}n;AXct|m5CEBUtwm> zDc+3N#I3_%STy1is*V2h;C6)@VD+MA^`d6=PpFo}5=7#%szF89sUZ5QpiKuOQ*UK% zL@Z!(iDKu*5(pvwB4pkLuh%C@K*+66m88O^6F~liozUupO5F9ky^a%b#V{fgVwrfH zq~WP;{%8NkmwqSlyCILNDuTWo9*llnEi6YQ zTRKZEL}V+HU5OX?9_F2d5WAQ-D#z9m=?fM(=Fw5Xosod90|DRj5+@ys7NoOsC@S!R zSS}>fzZx5Zs$O+ZcNLl!_pJRM6L|sxGRA~yP|}O|l(3Fv?rQ*E@o9+0HmN3-4}F9C z4I?_J4mGp3{G@HU{`xvq2oiOC40tx+tj^k<%?Y5IVPSa1V0kxNsLZ^H8Sw_b@bS$`QE^hFIir9}w@68AIiVxZ9J$ zJz_g9arr6Sat# zVmEBXlBHPg0rr>M?)tNAQJBi2_(8n-RR}yS0tk{n2BX5nLz8t5WC}XNHXJfzAPHnj zpbBKlx=uxB#vx#ksp^smotYF#jWbh1jWrFTLS_c(<^dKE^f-$q4d%)Ch+ZOFH3T6^ z)NdtWl$J?_CS9ylh-MiO*j8ip8~oC2`ebZ1oA#J4@nh<6-QQpcU@OdZ66Z!IY~4(z zG6KKZ>PNsF)+hQ&i!p+giuI1Ou@cw4Emj@Ms?AE^62{_idQq4bG{g0EC?nNO&#Zo+ zqxL#_xJud;;b&6I4ju*_Kk#hqhSY=-C+Wws4h>%qUkxJXl+)zrAqY;HMzaw&}T z^ZwtH7^Y`(m6!CQ9-!C9Nax>x&&v{3V`HFef`w3}N_v=Q$c_}Kus&!8U*z2&FO z^57>|Hiv!+Ddiekg_)3)ON4UU0OdB=c&c-1qb4uGeo81ckr#GjbN}XlhMNBg`oS&< znq_LQr*p&`*3jkDcxXeJhOD~Og*m?g4t_RriPfs zKc<+KJE@pIbtQZ%%Xq6dsP}-?o0b!h-R`)M_&qokAgVha3Fscl>J|h)aS${VszBQx z#+9_2b0oZ5q{a`l2)4M1)|Q#;V*g!lP~=eM}*L5 zD>T{~8f{GtmpT0^p8@Nl25X@(8WyC4W}%>&i4t5<_g%o>KNFt$7@IM4L-3z(e^6#N zzx@)MnD+aSJdfl#Y}WiR#;p5MoM5}jk~=W`Drh*QY}3AvG@-pp9MxpxRm?4#5n+@B z<=K(ZBDl4J){X@6>EX8$DY-O7&w!A)No;aII1t;@Y=UZ}$L}A}=d8p9BlD9(nxMRe zX^&-398=iUC%&ssd{>|Nu0HYIf;#ctqCW8f#H89QlQ;>8D7ipe$OuTb1n1K?*N7JN z8_t6qx17#RCJo*qsR>_1atX<0Bv+8E?CS>BcmwHlt~wDN7Ky(2KhP~UR%CW?FQa@w zXboo5RB%SdV{}Y&Pfi4jnoDwufv66AEVOOBb?lLl>H@C?qzFBH)cKLbTvb{Yyvf*Z z=@qe0-6wD#=bdS_z1B_4>AwcMGG|mx*aUfl4SbkBdA%!tO3BWb70A<093;v*2y8<+UY0#y&7c8s*hfMMdcSTr{SOSl{QO5?r3} z-xc8s+buy)zDHUhf^CrnEd4t!*aQrLcBJO5lVOHu;+k%c z%}MS9)iS)n=3_-u0E16^z3KW9!;iF5nb4_-4!5b1iJfKZJ)T3`?}aU`fO^eDbLEal z{E7-)vd!D9e!4U#?XLn~?;puk6f<_vZ9GQ193N(i%Nf(gj4@$UC_TVGbH-8WL&h2k zBI9EEH=%V5Qq`E%4EUQi*gdo<*^o)=!rKe%X_nL`UAw0Eh$(J8%r0j(HptomA(|-J z5YpXTQ{+p;h1zd30UILzd|G3UYcQEfhcW8?sO~j4)GPc}m4TP)W?n@9poOZ?=sV86 zv8xwM5=>}8EcHAlQ(!_p1{HqTeSDdIhcK%ll+$&Wo7~I|E3T6oMVPj?_xBFq#g5ax z;W{5Uf)hoj-`C7+XFu`HzCq28>j_C-#whGYW>DpkGu|BLWlT7dF4~w_qt&+OMQRn{ z?qyU3(bR0S-7qe>Fg3i`&9NcxUJ_Tyl{JCU(tPrS#8~C(d>|k#*;jV z{W!`jS2pry(Rh*=?yylbj~jF53=6`koDznBnUZF@&lyq}YKvZpMCK?`?uTA6;S$E< z72oDU`7rq=f@CA^N8}X{Y8BNrg|YpNk!XdIJ+WY;1?J*K<91#Z6SpklN~OR;q5_T~ z_;)3%jX@3&V=WRBk#r!5fJPG}o=SRxlPo6;mJ?%QvnD0d6r@B(*i?in8VH+lT~vX0 ziHoYbs0!Z_7ftA*NqCmHXi^tV!J)%NH8q=ELIs+CRqRfPU78uqrYLSx?J4XS#Mc(* zO_p6-j7Zbzb=8)jzqln*8>sZTBKEDZG{abNM9L#ldT^z}2D}B41N|cjDP^mB`Fs4s z>|@uFtfnk=FY)Mu6MXQ54>prmM<6L5{KNCJuL)&Bx5DlXI3QT$T~6g5tAmdrX$y71 z89Bj*$E;>wMe-UFTPO<)Qte$b-|W{>4BU|}S{`yb<-l2y(O{vUHYGDN(20PhrB6$nR8j>GE@?j)zBZ18&wS=%Q@2k3gpstRjP=>5!p}fDwVY5l* zA(jFUFo56`0N@!0fJ5|CGYUqL%#Wln+)^MJKdrSA$aW^>0n8b!5;)qF5W~25 z>nrBKTBiYmYbM^8lq8KlX(U?1l^TS63td=3bQNwy+*AK2_I|@qj#Al#u;L(<9+diy zdRb&Is+rNq2^$Y8x9YTVz0$n+s+%yAk`gYJ(;IQiAWkCW{BcuVz5QQDCDgr)rc*S` zXf5T5m=Mv&d9!f89h^3ZX|uZ`Wzo=nOqt(#W_$_+?u-AMZ3%u~e5doc*N)ld|I3bj z*$fJTcZ|6auv#BzO7^Q_=;9x+9)nA++AFVKw9i@RSL+v6&abT2V?fxo)eEcE%PSY_ z48^T5io6X!;sy;bNjPi;7lrI7gOBrKRW;vw2U@3!oG~LPN#F1YFSj20wt9+_5zXz zH5Lu~;@RDUHL$x}!WIh|+>1${5jN@#SbrCzD2!|i2$fF}3>(ZsL%QkvozDK>`m;|9 zsws&VrT<~Q@oRvy03(>t|0<*b;)Z_?dLNaHnKko}StHYbntmTJt7gF{m<6+HR83Vz zzw;z2a%L$vr)nPHnum;g*OfGdZS)~AS|AXR%$UYeOiB5T4P~mq8^xAADMf~IzX+K# z(_BvKj;A0mvY^U(<2yN9*K)%A54DxU_~ zfZas-FcD29S1}J8vnHS8xH?Nd$H}aja7P~%%;LR;1tlD%f#Aw`keqS_?IMCBZw#d7 zE_-}nHggygG<^x3zo(tg(rZ*wW|m^D$&2g!RH3?*(^DR^z9sK!wBqv&;fh`Jc6z3tvB&JC|432bFa zOJ72#S7nI!fG#$t0Ok%yCk0iJVu}>Z@#B0m#X-ERnS-c@uYjfhfG;rjaCK5Av4FWN zmProZy9O^Vqtl{u)@cKIjkO-)-l`HZ zYwcw8zM`z}D=KUTk4sF*Yep+7XB-?1hK|}AK0vII?{@2<)eR$0n!|jq1DlqwRMZZbB(dT29yW|2N*bj0*H`NorK3n_2#mot2q*#b zopi0(YlVT!o+{GU5ykIqF+;)^^~1Z1B3_gd)Rz}&;MWLOzKF1Y*Ym+z@q>5ob3KeK z;t*$t`if5u*OBmWx0(zTEVo&+w{S0uMjS?XGL~*J<2&JqiWpi*MK)u|6G(m{1((yB z{rQ%LL##WV*OL~;z(oR(qm98@M*%2>9s6g8@JL?cKBXVoQbGH0eO+H$@mggEKX+e* z{D>Sp0`Pg0!KX@MJx3MEZ>Ntd5d=t}BxAf3#TugCT6ep%h_Q%Srng|#w~QroM*+ZH)1n^zvm%&apL{_qC{fNJ9RCGNX~r9gXzrK>De0C0xByT& zpl???>&H_VucbEMRGO23l*}j`q8T*UdWtV+A!jA9;9a$7pWC5pZ4qm?!+r-?K%mm; zScuv4oeqEKBM)PF5Fy0eevLR7y01nW4)o_h+6L>a8UqN50xOh4)xzNeU5?$OT9B>9 zh#);I4+|ZlEQd>*s81rKy#O##AC1kXVDe)^n~8x2Rr|KMo4Pt`;q6sdM|5!sSwJi4 zx88}Rg0k%=qbBeuX|vk2Ck$tR1IfYRS3uQQy~IIa-Cfk^SHhOldBcf(=f+(kf2e|t zl)11f!So^U?PLmj_Y6DX_5EbJfwzZu@fU>H@5mJO=}f=(5wJccCuXGcq$(Aze9HVTq+t%4lAiwUq!@3(Tx}<3^ChcrcWnD_JWT)r(H4=Jkd~;dQ z@2V|-*NeiK*R zJXIR7O%ohBc+6{;mw}CI7SuMW$D+E3bZ5jyj&EyNVRR3udzxJx@PxqY^5BsWoFu@D zZe_TrKt<+oQBk~@R7Q&y?--e`$4C2J9K5TJ4v={_v8UU?yGg+R;ITF|dpN|ikJH1C zGlNHnku*P>$@5nQDnGAWPRK9t4lW}6-<=a1rbt)XTpUcPDUFl|xbh*+ABF;r$0LfO zH;;l&pAgAOoqsqpokuvcq#qy6tl+Us{_)Jzp3pmSYCuJs z%gE2F8mBXZoyp{%%;cZa+W%qM>}fHl-aNy_&+3ZLaprmb_&&+KK=Dk-D2HLR&%|Kr z7uTQRM^{EC1+gQG`_Bv_>(andI}I-<-05(}?>ZayZwxB^%Lirj@$e9XGPgZkHZmw9 z!N3y~>#>F#>4DSI7l0oa-hNUjUvqS~Z@gD;Y}yRfH6>;Bx88WcSjExDD(=<(P4xI% zLVfhjv8|+KT=xSv+>+N4067jzNyBK{i40TGF|zbr(T%;B+R7nhC$YNCaXp}_^iuV^ z*POnLb;gS(EC`9RFFSo#=FX!9f9QDC!N6?JP!ICfMg_S!d@eS$UHLJlyxxC53fVit zF_@TKo9Bru9qBHAPOqvZgR=QeQP-9qE%40_d-ms5*#$qwCun}q5Bo7kP4j~KNeh-1 zi~BT=U=3fA@To(Uh31cT^vm>i9B zuU>s+rGB~DxMsh8{@UyI#rxo9)T-APAj4pjid@aCg>YSc1N6sxb%Uf}K(G%zK11!$Q1 zQh!DnS3=R)aWRjF7jaHr%W8t*x1$g zl+lWi#0i#N$y8=@rJPNEB#}B|swtQB036Yg&W!!- z{1N5zW>eQ8rCEKGz_h6Tix_-@?#FG<&73E54Bu?94GopW{)*V^NZ5;V_TPvhAkHDG?HIK@=YY5 zaU0*+F`DqU+kZc_+4}-j@Era;`oV`?#az+2%a2)pv|KFb%M<09L#1-LJXM`9A1;@w zZvfD$GdV;5RG+O@>COAg1^JBkxuKuxOVm%L{APKK`k5}*%JXcN+5d!u5&oCc-Q#^^ zz-J4DFE#ML1SGg`(W_eKRV@PomT6sW291?fX$G;8bLif+88}$8vG!K#5pI*etLRuadtVkEYt%2FIt>QISnCJM9K8IrTy zomtJyT4YK#X(jiHAZhy$w0&p`B#rw}q{&NxwkS{pNQyqSeGE{bX!{TZz27fs)BpR= zIkU4Q9UB3KaJh$P&YU@O=KQzs|Ia_P|D{^~?b+vFZ3_Kk)AxD$#&c2#SBO$eMD7;azPOT;JK#2Q7yt+Ce+_Lb-xOF&foy2rk7Ajb!XQ?P( zio8bRx%DupuXsuQ*(d7ndg}bsideV2>&z!Hn)QJ2}{iWWH7i^UM z@6pfl0xh&i@))h{dEEsIhZ9sd4Yv_p3WFpH+ifqp>NQ+1N^skiojCD2szF^oM8!wL zcGB4J)Bwk*xDka-FOL0S<0FBeBqeIP-u0qJ;)j8{EJuakX>26JRC(d$Yb%b!gQo0I zrSC;dEvEjSU=|RX__Q9N{HcLoFOSu6RlAK}uK*%Fs4&^{d{q$yL8Sy5?Efu_2gEOB zO$eej5doD74@Gp4AhuiK#$&>*a-}BRV_X^GZZ+<995ii>>6y^)ecQB*2=_RC(L!?` z6%TCi!Q1UW#{G#w#`&hi6BAsS67D2driDAjl^NkqbLE6^XSg!UGd#gFoD=RWH=Y#k z99L-FPIBe6a8?#hWAVqpWp(;#wi|KmhRs+Vfrj{k;+N3z-#}C$T2ky1vr6LXA=K7v zp(`w%s4$sODc~_t84^j6Dvee~U@Ov^O51(g|a3o0kfsacWCK^9RziN=+MA|C&wSttCE;&KNiSycztU*aK)9hF)8yBEC6=xq z1&xmPVLwh-_%U?aP|^+80+()H!%@4ju^he}M&1=_kCUoyyB05d_t3<5FoPr`bkOMd zafDMhLO)1I$MD1(NdwP?TXv&x@FsV>M(0xKdKY)DL}rwT)K&AQ-$@&%uyh%vvPP>C z#R<;=kAA1OzD_s8bP~GkQ&`x!1J~SZ_{o(pGLt`f$e`*`*219e2cBaaeTXNx-b?zL zF812%3m`TZ@dv0_+6+71k{9{St)+Wmv=w(7O>Ze~ZZ`Zt|LN{5b?8ysOMbZ2io$Ex z*S2`U7P~tR=u^j7@4<-qs#TJ2`msxS`pS|;e=Vw^ujQ0MZd}}~YIQqgg!zxD*i{Tq z6(t=cycMpH@Rqb_)3fcCA?-@8aX4%a3+Nwjpx&aPsF5xtVWd7JTm^BzK$dilPZ!_h zG|rVo{3X^LQcS*hl|;Wa4E+HO69}V8cw((8?uZj45n4fz!CC-Smg9M_{-zgsbw92L zVI8!K>%??nJ=yf?>tUNndZ9iavuRuaTRD$_e7L;PZZqE~Ix|I^L>N9tL$C}5;7V1y z*yy=Q{Q$efUL$I5vTR&mU+0ldf8S1utES8>VzRwCmUTaIrqK!sAq3zqlW^b?XB5+h z1z!L?op%`i>o$^2mRJ({D7j3Sf%()6T&|~QAVlU2*KzT^Mth6b!U6X>kE3`3#gi!B zX}J2RSX%)SFX?qxP^mK*U_K_kt;t%xV4b$+n1@HKl2s+1ZbF6PGTU(Q=PgE$dlnd{ zCBR+8D^r>`rEZ0pm4>O)ez~-tooUUdt+`BVA#KfPT8GlsLZ-Etwhm=lOKEE{(^^hj zOJ=UAWR*=z#k35YmMU8I*yObeqE!JhnNjAm-&9jgEF>)k6f;U(aBO9}jA-e_D7wuY z(RW(eTrGN39uwpEbDaN>5mpC;U&dYCHU=4QjdPo}#>b2`u8BQ1vgW5IWQ%)ZX@b8 zXGQXeKGw8&ln;l~8KG@nX(G1p@g$_Caqs;3C6c|y60mkt0qPiXxO7olxOjZ9Bif;L z;uyMri7nlwuoomTH2KoYbn3+@>~&+{fu-e@MyE?kg=#N zTw#b1PY+H+k4)DG8(s_@+(NqZ*^b(U>HGJ2p38_9#WMDxv^uIE&YDLLdR*`BhAIqW2xSnz4!-Me8H zHE#%W$ZYi*Gju%!9vb2;gzKR>jf}E72)}+jSM(I)e7 z_1>g0moW3JqR_Ieo=BRNINAq<^fWnaagkAY{CgM}i!Ce%;?RWD;G6oE7pT~k298?B zgxkh)=Zvw=8~a=^o@W1?By3T@y7tbDyE0ZsH)(83mMdlMU3zO*xUM^)&9teOv71HEXqOv6UB5 zYz}i`OY)%!v}|zw^6eVKU>nXQdf#SnDMkF1w8w-2$|W9Ea=%ZTQSE_I2_7Qq#8V

g`M7&-k-h_By<+%#S7?lCw3ke| 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 diff --git a/schainpy/model/io/jroIO_madrigal.py b/schainpy/model/io/jroIO_madrigal.py new file mode 100644 index 0000000..c8210e2 --- /dev/null +++ b/schainpy/model/io/jroIO_madrigal.py @@ -0,0 +1,243 @@ +''' +Created on Aug 1, 2017 + +@author: Juan C. Espinoza +''' + +import os +import sys +import time +import json +import datetime + +import numpy + +try: + import madrigal + import madrigal.cedar +except: + print 'You should install "madrigal library" module if you want to read/write Madrigal data' + +from schainpy.model.proc.jroproc_base import Operation +from schainpy.model.data.jrodata import Parameters + +MISSING = -32767 +DEF_CATALOG = { + 'principleInvestigator': 'Marco Milla', + 'expPurpose': None, + 'expMode': None, + 'cycleTime': None, + 'correlativeExp': None, + 'sciRemarks': None, + 'instRemarks': None + } +DEF_HEADER = { + 'kindatDesc': None, + 'analyst': 'Jicamarca User', + 'comments': None, + 'history': None + } +MNEMONICS = { + 10: 'jro', + 11: 'jbr', + 840: 'jul', + 13: 'jas', + 1000: 'pbr', + 1001: 'hbr', + 1002: 'obr', +} + +def load_json(obj): + ''' + Parse json as string instead of unicode + ''' + + if isinstance(obj, str): + obj = json.loads(obj) + + return {str(k): load_json(v) if isinstance(v, dict) else str(v) if isinstance(v, unicode) else v + for k, v in obj.items()} + + +class MAD2Writer(Operation): + + def __init__(self, **kwargs): + + Operation.__init__(self, **kwargs) + self.dataOut = Parameters() + self.path = None + self.dataOut = None + self.ext = '.dat' + + return + + def run(self, dataOut, path, oneDList, twoDParam='', twoDList='{}', metadata='{}', **kwargs): + ''' + Inputs: + path - path where files will be created + oneDList - json of one-dimensional parameters in record where keys + are Madrigal codes (integers or mnemonics) and values the corresponding + dataOut attribute e.g: { + 'gdlatr': 'lat', + 'gdlonr': 'lon', + 'gdlat2':'lat', + 'glon2':'lon'} + twoDParam - independent parameter to get the number of rows e.g: + heighList + twoDList - json of two-dimensional parameters in record where keys + are Madrigal codes (integers or mnemonics) and values the corresponding + dataOut attribute if multidimensional array specify as tupple + ('attr', pos) e.g: { + 'gdalt': 'heightList', + 'vn1p2': ('data_output', 0), + 'vn2p2': ('data_output', 1), + 'vn3': ('data_output', 2), + 'snl': ('data_SNR', 'db') + } + metadata - json of madrigal metadata (kinst, kindat, catalog and header) + ''' + if not self.isConfig: + self.setup(dataOut, path, oneDList, twoDParam, twoDList, metadata, **kwargs) + self.isConfig = True + + self.putData() + return + + def setup(self, dataOut, path, oneDList, twoDParam, twoDList, metadata, **kwargs): + ''' + Configure Operation + ''' + + self.dataOut = dataOut + self.nmodes = self.dataOut.nmodes + self.path = path + self.blocks = kwargs.get('blocks', None) + self.counter = 0 + self.oneDList = load_json(oneDList) + self.twoDList = load_json(twoDList) + self.twoDParam = twoDParam + meta = load_json(metadata) + self.kinst = meta.get('kinst') + self.kindat = meta.get('kindat') + self.catalog = meta.get('catalog', DEF_CATALOG) + self.header = meta.get('header', DEF_HEADER) + + return + + def setFile(self): + ''' + Create new cedar file object + ''' + + self.mnemonic = MNEMONICS[self.kinst] #TODO get mnemonic from madrigal + date = datetime.datetime.utcfromtimestamp(self.dataOut.utctime) + + filename = '%s%s_%s%s' % (self.mnemonic, + date.strftime('%Y%m%d_%H%M%S'), + self.dataOut.mode, + self.ext) + + self.fullname = os.path.join(self.path, filename) + + if os.path.isfile(self.fullname) : + print "Destination path '%s' already exists. Previous file deleted. " %self.fullname + os.remove(self.fullname) + + try: + print '[Writing] creating file : %s' % (self.fullname) + self.cedarObj = madrigal.cedar.MadrigalCedarFile(self.fullname, True) + except ValueError, e: + print '[Error]: Impossible to create a cedar object with "madrigal.cedar.MadrigalCedarFile" ' + return + + return 1 + + def writeBlock(self): + ''' + Add data records to cedar file taking data from oneDList and twoDList + attributes. + Allowed parameters in: parcodes.tab + ''' + + startTime = datetime.datetime.utcfromtimestamp(self.dataOut.utctime) + endTime = startTime + datetime.timedelta(seconds=self.dataOut.paramInterval) + nrows = len(getattr(self.dataOut, self.twoDParam)) + + rec = madrigal.cedar.MadrigalDataRecord( + self.kinst, + self.kindat, + startTime.year, + startTime.month, + startTime.day, + startTime.hour, + startTime.minute, + startTime.second, + startTime.microsecond/10000, + endTime.year, + endTime.month, + endTime.day, + endTime.hour, + endTime.minute, + endTime.second, + endTime.microsecond/10000, + self.oneDList.keys(), + self.twoDList.keys(), + nrows + ) + + # Setting 1d values + for key in self.oneDList: + rec.set1D(key, getattr(self.dataOut, self.oneDList[key])) + + # Setting 2d values + invalid = numpy.isnan(self.dataOut.data_output) + self.dataOut.data_output[invalid] = MISSING + out = {} + for key, value in self.twoDList.items(): + if isinstance(value, str): + out[key] = getattr(self.dataOut, value) + elif isinstance(value, tuple): + attr, x = value + if isinstance(x, (int, float)): + out[key] = getattr(self.dataOut, attr)[int(x)] + elif x.lower()=='db': + tmp = getattr(self.dataOut, attr) + SNRavg = numpy.average(tmp, axis=0) + out[key] = 10*numpy.log10(SNRavg) + + for n in range(nrows): + for key in out: + rec.set2D(key, n, out[key][n]) + + self.cedarObj.append(rec) + self.cedarObj.dump() + print '[Writing] Record No. {} (mode {}).'.format( + self.counter, + self.dataOut.mode + ) + + def setHeader(self): + ''' + Create an add catalog and header to cedar file + ''' + + header = madrigal.cedar.CatalogHeaderCreator(self.fullname) + header.createCatalog(**self.catalog) + header.createHeader(**self.header) + header.write() + + def putData(self): + + if self.dataOut.flagNoData: + return 0 + + if self.counter == 0: + self.setFile() + + if self.counter <= self.dataOut.nrecords: + self.writeBlock() + self.counter += 1 + + if self.counter == self.dataOut.nrecords or self.counter == self.blocks: + self.setHeader() + self.counter = 0 diff --git a/schainpy/model/io/jroIO_mira35c.py b/schainpy/model/io/jroIO_mira35c.py index b447548..632bc93 100644 --- a/schainpy/model/io/jroIO_mira35c.py +++ b/schainpy/model/io/jroIO_mira35c.py @@ -13,7 +13,6 @@ from scipy.optimize import curve_fit from scipy import asarray as ar,exp from scipy import stats -from duplicity.path import Path from numpy.ma.core import getdata SPEED_OF_LIGHT = 299792458 diff --git a/schainpy/model/io/jroIO_mira35c.pyc b/schainpy/model/io/jroIO_mira35c.pyc deleted file mode 100644 index d632d4f14af2226a5d20c730704c346232c0c107..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@7JPeX1a&n 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 diff --git a/schainpy/model/io/jroIO_param.pyc b/schainpy/model/io/jroIO_param.pyc deleted file mode 100644 index 99bc2908b9d308275c3d821f2dc4bf70a05655ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@_kx<$Ei{(Wjk@j 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 IeN#>Re;qA=p8x;= diff --git a/schainpy/model/io/jroIO_spectra.pyc b/schainpy/model/io/jroIO_spectra.pyc deleted file mode 100644 index 95c0e820cb5c2247cf4c0bf4a151acbc2bdda186..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 a?rjbkg4t`-ny^pMHK~)fxcDpa^?w7`AGDYN diff --git a/schainpy/model/io/jroIO_usrp.pyc b/schainpy/model/io/jroIO_usrp.pyc deleted file mode 100644 index fac87c6050d2b1bf4bf65ac4a3b157b53edd50f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@s%LbyU~Q)md+6iq{H8#-=^ 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 J)K$yo{{tZl_ig|H diff --git a/schainpy/model/io/jroIO_voltage.pyc b/schainpy/model/io/jroIO_voltage.pyc deleted file mode 100644 index 21f49c70fbf6587a70e5563460cde1623ce9b177..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 minvalid: + + if method == 0: + #SMOOTH + w = value_temp[h] - self.Smooth(input=value_temp[h], width=npoints, edge_truncate=1) + + + if method == 1: + #MEDIAN + w = value_temp[h] - self.Median(input=value_temp[h], width = npoints) + + dw = numpy.std(w[numpy.where(numpy.isfinite(w))],ddof = 1) + + threshold = dw*factor + value_temp[numpy.where(w > threshold),h] = numpy.nan + value_temp[numpy.where(w < -1*threshold),h] = numpy.nan + + + #At the end + if svalue2 == 'inHeight': + value_temp = numpy.transpose(value_temp) + output_array[:,m] = value_temp + + if svalue == 'zonal': + self.dataOut.data_output[0] = output_array + + elif svalue == 'meridional': + self.dataOut.data_output[1] = output_array + + elif svalue == 'vertical': + self.dataOut.data_output[2] = output_array + + return self.dataOut.data_output + + + def Median(self,input,width): + ''' + Inputs: + input - Velocity array + width - Number of points for mask filter + + ''' + + if numpy.mod(width,2) == 1: + pc = int((width - 1) / 2) + cont = 0 + output = [] + + for i in range(len(input)): + if i >= pc and i < len(input) - pc: + new2 = input[i-pc:i+pc+1] + temp = numpy.where(numpy.isfinite(new2)) + new = new2[temp] + value = numpy.median(new) + output.append(value) + + output = numpy.array(output) + output = numpy.hstack((input[0:pc],output)) + output = numpy.hstack((output,input[-pc:len(input)])) + + return output + + def Smooth(self,input,width,edge_truncate = None): + ''' + Inputs: + input - Velocity array + width - Number of points for mask filter + edge_truncate - 1 for truncate the convolution product else + + ''' + + if numpy.mod(width,2) == 0: + real_width = width + 1 + nzeros = width / 2 + else: + real_width = width + nzeros = (width - 1) / 2 + + half_width = int(real_width)/2 + length = len(input) + + gate = numpy.ones(real_width,dtype='float') + norm_of_gate = numpy.sum(gate) + + nan_process = 0 + nan_id = numpy.where(numpy.isnan(input)) + if len(nan_id[0]) > 0: + nan_process = 1 + pb = numpy.zeros(len(input)) + pb[nan_id] = 1. + input[nan_id] = 0. + + if edge_truncate == True: + output = numpy.convolve(input/norm_of_gate,gate,mode='same') + elif edge_truncate == False or edge_truncate == None: + output = numpy.convolve(input/norm_of_gate,gate,mode='valid') + output = numpy.hstack((input[0:half_width],output)) + output = numpy.hstack((output,input[len(input)-half_width:len(input)])) + + if nan_process: + pb = numpy.convolve(pb/norm_of_gate,gate,mode='valid') + pb = numpy.hstack((numpy.zeros(half_width),pb)) + pb = numpy.hstack((pb,numpy.zeros(half_width))) + output[numpy.where(pb > 0.9999)] = numpy.nan + input[nan_id] = numpy.nan + return output + + def Average(self,aver=0,nhaver=1): + ''' + Inputs: + aver - Indicates the time period over which is averaged or consensus data + nhaver - Indicates the decimation factor in heights + + ''' + nhpoints = 48 + + lat_piura = -5.17 + lat_huancayo = -12.04 + lat_porcuya = -5.8 + + if '%2.2f'%self.dataOut.lat == '%2.2f'%lat_piura: + hcm = 3. + if self.dataOut.year == 2003 : + if self.dataOut.doy >= 25 and self.dataOut.doy < 64: + nhpoints = 12 + + elif '%2.2f'%self.dataOut.lat == '%2.2f'%lat_huancayo: + hcm = 3. + if self.dataOut.year == 2003 : + if self.dataOut.doy >= 25 and self.dataOut.doy < 64: + nhpoints = 12 + + + elif '%2.2f'%self.dataOut.lat == '%2.2f'%lat_porcuya: + hcm = 5.#2 + + pdata = 0.2 + taver = [1,2,3,4,6,8,12,24] + t0 = 0 + tf = 24 + ntime =(tf-t0)/taver[aver] + ti = numpy.arange(ntime) + tf = numpy.arange(ntime) + taver[aver] + + + old_height = self.dataOut.heightList + + if nhaver > 1: + num_hei = len(self.dataOut.heightList)/nhaver/self.dataOut.nmodes + deltha = 0.05*nhaver + minhvalid = pdata*nhaver + for im in range(self.dataOut.nmodes): + new_height = numpy.arange(num_hei)*deltha + self.dataOut.height[im,0] + deltha/2. + + + data_fHeigths_List = [] + data_fZonal_List = [] + data_fMeridional_List = [] + data_fVertical_List = [] + startDTList = [] + + + for i in range(ntime): + height = old_height + + start = datetime.datetime(self.dataOut.year,self.dataOut.month,self.dataOut.day) + datetime.timedelta(hours = int(ti[i])) - datetime.timedelta(hours = 5) + stop = datetime.datetime(self.dataOut.year,self.dataOut.month,self.dataOut.day) + datetime.timedelta(hours = int(tf[i])) - datetime.timedelta(hours = 5) + + + limit_sec1 = time.mktime(start.timetuple()) + limit_sec2 = time.mktime(stop.timetuple()) + + t1 = numpy.where(self.f_timesec >= limit_sec1) + t2 = numpy.where(self.f_timesec < limit_sec2) + time_select = [] + for val_sec in t1[0]: + if val_sec in t2[0]: + time_select.append(val_sec) + + + time_select = numpy.array(time_select,dtype = 'int') + minvalid = numpy.ceil(pdata*nhpoints) + + zon_aver = numpy.zeros([self.dataOut.nranges,self.dataOut.nmodes],dtype='f4') + numpy.nan + mer_aver = numpy.zeros([self.dataOut.nranges,self.dataOut.nmodes],dtype='f4') + numpy.nan + ver_aver = numpy.zeros([self.dataOut.nranges,self.dataOut.nmodes],dtype='f4') + numpy.nan + + if nhaver > 1: + new_zon_aver = numpy.zeros([num_hei,self.dataOut.nmodes],dtype='f4') + numpy.nan + new_mer_aver = numpy.zeros([num_hei,self.dataOut.nmodes],dtype='f4') + numpy.nan + new_ver_aver = numpy.zeros([num_hei,self.dataOut.nmodes],dtype='f4') + numpy.nan + + if len(time_select) > minvalid: + time_average = self.f_timesec[time_select] + + for im in range(self.dataOut.nmodes): + + for ih in range(self.dataOut.nranges): + if numpy.sum(numpy.isfinite(self.f_zon[time_select,ih,im])) >= minvalid: + zon_aver[ih,im] = numpy.nansum(self.f_zon[time_select,ih,im]) / numpy.sum(numpy.isfinite(self.f_zon[time_select,ih,im])) + + if numpy.sum(numpy.isfinite(self.f_mer[time_select,ih,im])) >= minvalid: + mer_aver[ih,im] = numpy.nansum(self.f_mer[time_select,ih,im]) / numpy.sum(numpy.isfinite(self.f_mer[time_select,ih,im])) + + if numpy.sum(numpy.isfinite(self.f_ver[time_select,ih,im])) >= minvalid: + ver_aver[ih,im] = numpy.nansum(self.f_ver[time_select,ih,im]) / numpy.sum(numpy.isfinite(self.f_ver[time_select,ih,im])) + + if nhaver > 1: + for ih in range(num_hei): + hvalid = numpy.arange(nhaver) + nhaver*ih + + if numpy.sum(numpy.isfinite(zon_aver[hvalid,im])) >= minvalid: + new_zon_aver[ih,im] = numpy.nansum(zon_aver[hvalid,im]) / numpy.sum(numpy.isfinite(zon_aver[hvalid,im])) + + if numpy.sum(numpy.isfinite(mer_aver[hvalid,im])) >= minvalid: + new_mer_aver[ih,im] = numpy.nansum(mer_aver[hvalid,im]) / numpy.sum(numpy.isfinite(mer_aver[hvalid,im])) + + if numpy.sum(numpy.isfinite(ver_aver[hvalid,im])) >= minvalid: + new_ver_aver[ih,im] = numpy.nansum(ver_aver[hvalid,im]) / numpy.sum(numpy.isfinite(ver_aver[hvalid,im])) + if nhaver > 1: + zon_aver = new_zon_aver + mer_aver = new_mer_aver + ver_aver = new_ver_aver + height = new_height + + + tstart = time_average[0] + tend = time_average[-1] + startTime = time.gmtime(tstart) + + year = startTime.tm_year + month = startTime.tm_mon + day = startTime.tm_mday + hour = startTime.tm_hour + minute = startTime.tm_min + second = startTime.tm_sec + + startDTList.append(datetime.datetime(year,month,day,hour,minute,second)) + + + o_height = numpy.array([]) + o_zon_aver = numpy.array([]) + o_mer_aver = numpy.array([]) + o_ver_aver = numpy.array([]) + if self.dataOut.nmodes > 1: + for im in range(self.dataOut.nmodes): + + if im == 0: + h_select = numpy.where(numpy.bitwise_and(height[0,:] >=0,height[0,:] <= hcm,numpy.isfinite(height[0,:]))) + else: + h_select = numpy.where(numpy.bitwise_and(height[1,:] > hcm,height[1,:] < 20,numpy.isfinite(height[1,:]))) + + + ht = h_select[0] + + o_height = numpy.hstack((o_height,height[im,ht])) + o_zon_aver = numpy.hstack((o_zon_aver,zon_aver[ht,im])) + o_mer_aver = numpy.hstack((o_mer_aver,mer_aver[ht,im])) + o_ver_aver = numpy.hstack((o_ver_aver,ver_aver[ht,im])) + + data_fHeigths_List.append(o_height) + data_fZonal_List.append(o_zon_aver) + data_fMeridional_List.append(o_mer_aver) + data_fVertical_List.append(o_ver_aver) + + + else: + h_select = numpy.where(numpy.bitwise_and(height[0,:] <= hcm,numpy.isfinite(height[0,:]))) + ht = h_select[0] + o_height = numpy.hstack((o_height,height[im,ht])) + o_zon_aver = numpy.hstack((o_zon_aver,zon_aver[ht,im])) + o_mer_aver = numpy.hstack((o_mer_aver,mer_aver[ht,im])) + o_ver_aver = numpy.hstack((o_ver_aver,ver_aver[ht,im])) + + data_fHeigths_List.append(o_height) + data_fZonal_List.append(o_zon_aver) + data_fMeridional_List.append(o_mer_aver) + data_fVertical_List.append(o_ver_aver) + + + return startDTList, data_fHeigths_List, data_fZonal_List, data_fMeridional_List, data_fVertical_List + + + \ No newline at end of file diff --git a/schainpy/model/proc/jroproc_amisr.pyc b/schainpy/model/proc/jroproc_amisr.pyc deleted file mode 100644 index 70a3d34c8e3db6432e99525392f6529ede62ef83..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@c-W98+jWS1;4wpdAM)k3k$%mcLq2IS(g z3+*l(Qbk>2=ag$wm0yr!4oOum{slhdkK~#kko4EHvjix)bRh_0Ff%)^?&?ls|w043h)ZG!3J}UqxY-Rk`cqsZN3{jH9-~ zs1g?+{BpPB%R{MQQlS(Kx{qyN<3f`tf^e>V2O2@eCBGwE_EbIrjR%-?16vRc6`isq zid0CbbsfrFNQSzH1v_$@y*7^HW8Z9ri*7gMV|Tk*jT`a7Q1`N(u$TEFUj?@mWWmR? z%!uM)M?D_2F<*-G11`3Y;)&kYN!S~0|2|Ge=``r+?X-6kgi-!8J=vbbeLdcuvgq5x zB*t$yn1pGvH9hgMFtn4FMI)=Ks-741CW$yhk(Mi6{)QUY(SyfA7qK}d=%66kcd_g9*w zvtg#v(Ea7zis<(;mUBeR9)8NXEy~&dUD#auHAFpCFuvwT4;d{`ccku0-Iclrb3(HO zTSQMunq{e%rCyPGg+6+CNYb%F!z#RW=eIwi-#GM)|6L&2DevL}#WwL%Ge33n)1b{k ziJHH2=*gI#d33x%ryj3Rr)Ruli5GwJclwkq3W_JPPJ!FlORu4vO%8O@iU%!U_u{0V zwhm5OABJOnr**xbUS1gSXvSBR%7be!cpx(qHeng@#=?kBFqw|c5E(2()_BP7blU3h z&QTu=57Lc=Y4>$7F&n}s(0afZnchk7=1qRoy7hhwz3*M`-)sd>!wEz7d)IGo-5%U* zwVrB5wxW5+#$f6pt~!KGg}CkzPSA#r`IoFaM!7=79U?~S0c$1Apt@)Z8SbBmwBprc z9f{i>>G1F<`$d>$(hR55TsXm