From 23d802cabb955498406fa7e9159a1b78a41961da Mon Sep 17 00:00:00 2001 From: Tibeuleu Date: Mon, 24 Oct 2022 16:53:51 +0200 Subject: [PATCH] add code to compare to Kishimoto's pipeline output --- src/FOC_reduction.py | 3 +- src/Figure_1.png | Bin 0 -> 93444 bytes src/comparison_Kishimoto.py | 96 ++++++++++++++++++++++++++++++++++++ src/lib/reduction.py | 40 +++++++++------ 4 files changed, 123 insertions(+), 16 deletions(-) create mode 100644 src/Figure_1.png create mode 100755 src/comparison_Kishimoto.py diff --git a/src/FOC_reduction.py b/src/FOC_reduction.py index 6e60d54..a8c9f7f 100755 --- a/src/FOC_reduction.py +++ b/src/FOC_reduction.py @@ -148,7 +148,7 @@ def main(): # Polarization map output figname = 'NGC1068_K_FOC' #target/intrument name figtype = '_bin10px' #additionnal informations - SNRp_cut = 3. #P measurments with SNR>3 + SNRp_cut = 5. #P measurments with SNR>3 SNRi_cut = 30. #I measurments with SNR>30, which implies an uncertainty in P of 4.7%. step_vec = 1 #plot all vectors in the array. if step_vec = 2, then every other vector will be plotted # if step_vec = 0 then all vectors are displayed at full length @@ -164,7 +164,6 @@ def main(): # Deconvolve data using Richardson-Lucy iterative algorithm with a gaussian PSF of given FWHM. if deconvolve: data_array = proj_red.deconvolve_array(data_array, headers, psf=psf, FWHM=psf_FWHM, scale=psf_scale, shape=psf_shape, iterations=iterations, algo=algo) - # Rotate data to have North up if rotate_data: data_mask = np.ones(data_array.shape[1:]).astype(bool) diff --git a/src/Figure_1.png b/src/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6f29ebdddcbde34a296d8ce3d055a0ce714eda GIT binary patch literal 93444 zcmeFZby!wg+b@c`)TJOc2ofrwGy>A4q97n8-6i$V-LZ5D3Id9Rv~+hjO9Z3^9=b%j zB_2A?J?lIrUNQs_1OL`U$5AU4VlSj|+ z@cx*@!#m0O=P7t);KlJg_>af-v9hh4g@LVujinnsfDenvF;6feQO(I3v+g6 zPUgFeH;im;Ep2#NSj_&*2be9a4Os-@*_OA$&o#yf_GC-&%p zykq3Tu#>AiF81(nbK!&A9sGW=hkXtgWP-}R5AMDe3nx_S=*5Cu?Mxd3aRd z$WvzA)sUt;jm}VWq2aOv-|uFf zx_RNxl;UC~9v&VaKR@!>F+6Ucx-Vaz1cpaMaA2@0`xH&$ndg6<_K%kj!~(l!$;RH} zaT6^tE$_P@y7$Wcx&g~;gtqRqczwOG?us(MUh+(#Wn{$a1qg6<)^dMxSt=EkOO_&^ z)gjAGj&WCQY;2SrHZ(KKWF+$K$}6>h2IAT2jjzE{`I?uxcxQUaNTfs@MFyz zMNdc9;kG%PeE-IU+~K&#zR&af3ozYj!b>*XO*hE~^g}h0nAD00OzJC~*06njDG3P) zI<3cuosT+J`w0>AJ+9@+;h5Vdbm*$#v5#|JDxJpm_BzzKF=gbXA?dY=+t^0)9W``9xJInz-8A4>@sL=`@oIf+Snf)Jy0C4_xmuosOaQWO5w4$ zazb#VU8vWEUCU*W!|ytm)XK^V@9si=cVD057m^v#-}Cy+?c29S1Y@KFpI`HW!OLLC zu6PDB98C(X!=2s}BMu`KPReZ{N1xD}Pce-Nc-iuOn)Seg0z|HrXbi_U0`9WNr zl9rbCKq%=dgW`d@|`VDa}DfjN5=l|(RPfx#IOL-tOdU&vjYhiCEvn7l1*gG$@mveO0 zD2EYQ82m4r{G=pzZvBo3QWv~*X8gEDzL{iKCb77V;RhygjX0v{fjWqKwuvDd`$1aJ zsm6^vN{WVtrcpPSmVrS6f{;%@!1-*U%^@4yqJ@VVyj3>t&leOOomDL8(6ZRdHJahe zT=wMgHZ9S-i`IbtAL$%yX>;1{oDfeeY!+GuIbTsb$@HpJ`uxsO)o`KPmQ&9=4 z+F!JokF;qc$CVu;&I}q*mf1%UkUKQ z7WQhod~INLSQ`4-o0^(R%4fguAjW%d&()7YfcM7%M4;f{;JMjZSv$MJsue#AT0ud< zJ*&h0P0F6l&9wlJ(P>6im{!cc(prs`IduQdB#Q@Ka#w0(WTfS>-hqL%>cjozu`q3y zlP@0#;IMML0()yRf*u{GeCy(5Xs_flGBYpbY#0}Aw9~N>P*p5wd)pG)xxOrIkKM5O z=OpphN$c5VkHhjvsbmPx5VHcQNY~!aEiHv$J+dl!Y^EM%*ewT)-yv z=yx6^oBr|Rhy1f=Y}(uT?Skn;L+X`VKYTAXA8xmM90dSKGsUC2b+fi!ESS6UZ{ECV zYHaNAxyoP*DZwi=TRHa@e-{%Km2e=+GeJRD#P*4u`+ECw^{Cp$ZX4H_vG*_9yY0_w z_5P^yowVh(+nx+PKi8DHTzy!zy0%6mW@ctKkf-lk?|0pyW^sOQ4*TufC+L-*`vVa3 zSe@(Uf-GYhTclg(^I&+oYIjLaRW%$Y74Gn0^ia;(xvUD7C8ebc%<^oH{dwoDG4JmF z{?rKbGBK^~CZ(X@U>dQq%@G$n$S-tsbYdtqS7>Gn?#xg@4x8;!vmjs9yT>r@_=V?p zmOYlKS*beTli5{Ati`Xb@$6Zkl+gbA3C*865dU|2imMWvnaiJ&kdW-aH0Dpp9fH(V zhU-zo#T;(Ogx@npp)$>5Z=8~zi76QCu{8m=oZK40h1S=EW{g^sf7Kc0PmeNJ9cTLAc2O&YQyd$>{!)1BYHc0S5=iY+|S; zU?u+V8z>IW#QEAndY{Y4Z|j_B{D9jU5Ag2wSc@3NT6pZLF+mXea9a|k_cR2JAVLbe zyBZjf1u)iEoqm4eC|c~VI`XHbrpm(cs3YGpwsd@J=+#rJ3uxhTT8v~kjJi2IT0K`Q zV{Dv?;w7bZec$S2bD`zfL+D029v&x|-RkLRm-QdMEQH)a#G>9O_FMXVYn6`h=e6VF zdGQS>CbPHm%UM}jIpeyOP{w%FLdq^DA>oU%7rL!*lPr?=tlwuue&u95e|$>!typ*H z%=GkhiMqPFo&I+BBn$Vo2r9M^*?18;0RatZ{*^~tKd#hNal2kUx|avs*jOXHoNVF! zmhTUbz$Jvk|0XDo4?4Pgz|{Y`Al}Efzv3qz-d&PJGITz?*FK*=KNQ&L)1wl2d!h_( z5&#i4WqETpIY!ai+8SF_xigoJgV5vjb(~l6T*IdE_Ua@cN{od?sIB8@{@BCc2*YY& zEPWL_h0J;+sd$Ux&EO_$xU#}O5m{h4FT9Xvg70In*M1^B@LfS)l0@11!`*7R% zpBE?RW@f(q2B43a){=$xQ={E?W>XfI?@RG5-WzsZYxQ=kPS37Vg#;;$ZOHF6D;`dQ z6?$&)fadYOi#_!MRrpb2sL3@SduX#Z;yje0O&@0w^5rdye~X^RiE$zNLO8 zBq|JG4!dE;2HN-ob}w2qRaI3dmQ0{C%cjCjupJ#2qyH*i&Pe@lVc3BIRTV~}{eKh2=654b z07+nAVBlxo=-w1pQ**N%!le~IAEE`h8`ZH1saf;Yt5@RU;+>PBT3K*B5D1v>&F+Pq zpHXTvJqPiDAe1*IhNr}Qn3qYtMCQzyGvZI5V&9Um0}`fuyf6-SeVn-aqH_dumWTsK70XJU5Cjc^1K4TS-5~p zkvel|UVc8Va@mcAUw9SX>KU}C&Wt%&PaazyADLd&-W-f+p!85rOiTofjLt{{Af?7^ zQ&0(jqwbcVFA>u-H#axOh<3`Vvd!%hh>5}P-^aq>xXr7L0`J4OxP122`uCUT(^68N zu(GnEpmea)TTNk27Sqn(XEJWdPWb9KxVZcjj*@RcN_~l0dV-ZSQ&(550q~O*7=7fj zh^BB^V5PZzJ1sX?7Vf!hv1st~Jf+jb#nwn3Ip8}T#nt;}h^wS!WW4Qb*sR(Va0B?G z@c8j7SO*E{rknxvtpBV%Z?eCGL%^_VtBwUgGUi)=ah=cAqbR%#kV&=NKC_K~?Ww@e zniD6A(zCL9d|9ee03jPS2GTh1E*9gy37;poK1354#Xopg*<-7g@_8}k*7w?Mw?&ht z)>eSM=>^U>jN7uysPD&feS?GP-jwdj2s_}~_?A<$vY3DH48<5mJBiHB&h9{~?8g1L z=FlvKFr4PJHZ?mQAk?E`7?qfwRVEHlHZUQI&tY!JroB5uCBFb>$Np+)HG;LN5c{>B z9p22dnQrU0>(wAW5S*HvBwuxp*@PK0n-pQ*i3n&@lQ_ci_(Y7{GkUX&i`^&A^M69& zAAvQXuqfSAt_wDYFv&rmg|KL4K~$3R*c}|TU9Q~p>J{4h{&EL+M>2wl10`1R=B1NF z8cvhJs7ub5jk=M~6<+jv>t?k@e-z>F{8@Xqz_g#O5*R`m6H4j}lMP&FX9 zs-@P6z;rI<{tJ)){r4YYoxj2OVsXvj5yL@QSO@^sd7hB6GTveL-9>s9mQd>8kPwlK z&E5T-?rir&Kq5~9%}d5k0W5JlJv<#mCua*OO)PM!Voge5{hP43v~(|w!yU1mf6lvq z(mGfTRjqcfl;WMG7C6`%hp5oi?r~rPp(QvpG(9%|-wb8|0_ zHV6;5V+utgmmx$*L2~0g+*=EN_wLh+7sn+dI2S(!)Gcq$1CJ`5Y6+uCt+piNGLID8 z`zhQSE#OkUX~i3bbbu?@ucx26e0v5EP8YDdEYu?*qszVLJ+_1^VMxOH9I~iWOG=c1 zidL`BYaOaWP@a1Lf&L%O>zdhI^d!5wNx$+{Ln$l(fXkZZ#cI=$HvY`z3wb|pCQA$8 zf{uP|$!5qZdB~ucA!BEUyQnW2&Cj!k8~Kq{TFRpv5yo!lRlT&ZATKQZ5)eOSZtLFm z8n8yznW3hprem+#4$ejcu(zDOCDz~Hf1r+4So>JN^J(4UL8>-2WlhbjiHV7q?$yap z!{Yk-`hG4#SWYW1SHt0O17&vUFoEr+!VJCIMTsE-qxIvB;}z^Pp;9H;jr*1QzjGG@ zgvkU^LqS1dZhpQC07`sG33p*p(Hw&QARkx()P^6RC8~ejzYo2Ly{PYY5O)q#kXRX7 zT@`ipA)Uo8%wjeRLG7O`YrFfkoK^eVKn^pJ`hf;u#A!O}rMU~N6eAEOc$X{I5Xi;s zZLJ*fzi+GyyM3qlmfS)YnL19bDaX;>y!n9AV=osmCXmzSPYZ4RmGm_1lGQ==SkLe< zlbAEC|3dr4fu9XYk`aXSkrt<2%pNi5Y5kwrN8H}t-fNp!)N3frmD$bT^6?U-aC#&y zv|sSzpYQIQ)3&_lOO`AlR@2|PBMMXEwQ`ki-B~|MAW~D9dh^}%MFs|jE~et4IFEz17z9WQ99Mp%`03vT29gY^ zh9z!64Pw`&OP7KoA{dMhM;rbbT3%bQFFz8owi<+bc5w3wYHI0RqpoY7diZ}Fzerq_ zl93_r;!=J@Vs0 z<(gy^uL4SM1BE8Ih5UB$XC+%D2;zbwV+5fWrKnpQR*(uXfX|TlWe1#b280MK;4o6F zYf~}^lFTVp2euk?f%=vXVuVU^l)dT~PDsQ^b+K!t2~B})3*7e`bgu169kHkx*~=9q za0Cc!d^E3E5kW#B&N8r`brLP0UL zs7Mi_WHAbtDw&Ej)YM2IIT}IGR+wE)nwB_^PYOLjP)k^0= z5R8%$nmW+~BQm?*CEW{OD;<4i{-2qX%f>8sZBNPBEiy$J0)9Ulqa1M#hQIBfo%Jt5lf=G)%x$TJALEDW%NGqERQ9EU) z<5jBza-px*-b2N71yEc^Jn_Z)OgR_(^Fy;yW&z(J)rV&Atno?2}oWy z!m1Fv$t+DFA0Sm~9deHXpTiQCE;%v|GUw{2fNAIrB_K~kjLJ7a7KR9X>j%f?=;8h- zlH6XN7fdl5ECL>-(v>XT>#^VKK|XTX;X+4S&NXjdBa)*m{dIgLB`HY+_!}TRDgiQr z&ycwgvphfdgWzrh60QJHZs)Y|H~_s$udLJnO3cAj;7qt3uuj zcmbAM^q#d=DKR7`SR#H~4cf~8;X3>#Sl{nj64BzlgwI|5m(lQ|)!+j)*bo;f&UorQ zu&~IcZXB~*a1c<^I*HD#eF0*FuAW|ZXXh>N+MDUYPR#$wWk9s6$u9=Q_kS1XvCZgm4Ai%;g z0z_X)08a1|!D&XC6M)ZLa=)~+ba!|}H}~t9C0J^YAm|6U3dYa{%-;uQL%~|)CN$!4 zxc^{r9B6nC5UMN0#K{W_rW&p*b-Qkwgp-aQOI+qdDH1G|@}LkQITB<+h_jzUHJy#C z2VE*P5iFhemN*)V`UL>CN)%k0AWovgo@i6H=h2sNk^NDk?!+#F$m zK!2Lj^;?3dqc+#D?FWO_@T<8Q2?-PLHq{C-!By*tEXJSzK7(|`jJ7r@Ch*776*EbH zR*<#4`8i}US_STj#tz{9ENBg~%fQ(A28`+PKD^dbeYjgKYU%-@ejb$1bn~ih1K>V$ zpi1>1uz^Szq@FzEaWKUjn0|R2+6>SwQYGBnNJ@-UW4q_ znjp&a?YAg+)CEX^=-aGD2~p^9O$cLZDsNz5;8@x_AKW}iiWQW?PHP6f_~(;B%g37m z4e^l4yhA;JD2B5e`X5Yt9EcVV+ec70j;|PjBS^}D2~x~b=XoZK?&ks_$`hiM$U6d9 zvQy7h#ro+=;1%Xq2?za3NbcO8j>(2OCk=4pjq)Ai8q-Wj(SJ+a6a%9d%>_}>hKm8) zph;p8iATa{x&0#VkNpLd@b2HRRNl;0-8@Vm(Z=VQ?Q>j;-&bGO&+kWe=f=jy>q*d> zwczht2JNN8=5FKHN58o&S0?Z5?4{(-fc+wjF(58c8-v^E9ef54PwFYki{DcaE2^unpUZ8aKo;3j$v7b* zc4tq$yf|n!P#^|=*oQmPir^vNmJGjQ6?XtjqjA#Oc%d)%;vn(WtHzs4!!X`h=iKyW7omPR64)8I`zkG&$s_V@pC0MR1f0aY&z zCi`L6{^n@5wBYum8%#grYhF4-K<7ksb>qg?wh3zQg4$*s0 z2*$K47nz1xfzm-5FXG2WO+x5h3tAGzx*!NyZ(+&k0cbrvY!0-_t84b2I}oSqpk@Dk zv#|sS2vrf!d`A9Th@9K+!Ww?qcqFvjf!4DEs?+s${ia5X5$vfFl-Ym5aPy$50R0 zie&gbu|QkUVAJ#S<$$O9!|LQTA1WD5_o&)iZFUA{8|N*w_u%sFr{Ctf(?JKir%eC` z0I1za?*#=_Ttb41u!H~O{TrWx8I&-yor$Vtwy99=0gJ`9Q|t~MGqd@(c45%IQTSVQ zC>p3*Dw}6Uk&AD1+dr#(iFY6D&*G)ZP0js@J3?nH@~y^2TEp0<--U@b+gRlHe|9>} z9yDE6QK60$hJ(e?14-aMvJMW#%q8Dnysp*O)7728IiDWt9bfso7X*GXpI=elk{gUX zG(u7K1I8F*;|?%L$1{t)PbT0;y+^K{TCbX}}``)cq*3))ak! zmi8M&*6W&_ZacP!A_oW^l%P0u=avh~1Kd_|g4+|9#X8Y6ozJe;94xjNT~=08RYg+n z9Lip3Ir#e%CMGA(1EcH#)x?cSwcrV8z~1|06HrbAVIn!%u*Ru%1BqZqWM{E_sZ0W5 zQ)g!JNE#?%pa_^uw?!fH%{epl-hD|zLgMQ6>*b@l=X!12fKko}9gGWs!4~o}w%8@6 zyxqjqH0X-c3O=|XCt{K8(U4K8ba9w39|JcPF680vSlNx~=9!L+N0A?>VPL}7bdM~p zYC%`)gGxl;K@>u{r_X{F>Ks~rE~?}k%&s(0jxP6&xGW1qxvn;zef1FXU|!W))bb2) z>n?Pfn)Eor9-yQX_T{xF`wo;DLyjpOLlS-3)Re(~gU6mX)R!RNLv|^|qtDmz68xd)R5D!RXecXTkb9xL1`P%#QSUQSQ8<6-I)ZZ=~sl+hN zKn+O(t^!U{YH6v{eJdMe%Y(;>YGSC}>~ZatgVK@QRy9?`ATtA{Q;?T`#5h_UWMX9W zEx>)93RSV}k~_fQyRZ0arBqdEA|DWmuORZ0D~e$|JK41RK}T5+@YoYJjI!%_u!;N& zBTx{Kv|8H?;J_WkP+*0Uc6N3R%^hk5w@z`dbzb4VW+70-lT1uXmE$Vh(eZR9>d)IzQ##IsK5>-8^} zrD-`i70-i``e1V#r1n`cICwR<$=7Olwc-BR=SFj=E<+dj#z*5Q4 zLf(f`^^QV!Pmlk)j1)Ke8%lgW3Ak*$1-6Wb7w2VzO6mwcBZ07u;nW)0f-9;eY@kOZ z*z>`spzAzGsKD_HT6XC0Z2ax!;T;*K+=SqD2tX3JNC}4Z7!E|P0Z-g0*fb)RUyi;I z*|$I?fQQ$?s`L2|BxjEe+Ph2)?v~AGbpgaAt|GsF-DIHe=%e?k#d*GS>l6%0nW

zbj|zoEqz<)&&PqswfJeb5(Go!$q*`QLb3%bbj+C>&#MuH8$;EQ!9`9ci9p~wsZM|0 zufg(%HtVZ~^pBQTRSC+ifp{(146g58_{eO2U%>QcRDZTaevCwNm$9lM?G-k79VB3V zjHZG@aH`YkE~t8d0*k`pVh9Gt3En5PFVIeUj>~|63awk8i4T~&4pN^d4kV%^fPuDV z!(|G3^>2B;y9)}*nJ){i1CE9cWSvP%&thYmcVwA_qL)-B1HqUE7rNfAEWvUe~IqX9`qn>@2 z7}-3@W@nG8bn)=+oNYV!lgt|ymV$;x=EB0lewG%5Giq{6m?&^u(`*Sk;eX-?zLk7G ze)YMUSXny? z7-zQ*Mou0-25*DNIgI7cADzz3%uJd(cGR2bX8s4o4*x$=S;CHBVa*$Q=s9c!1pKZ% zfV;*jfmiWzk2Kiwj`nk$an*$S|%2jR+vdPnCs7hmHl3+V@`)OOuHc_IxM?YhW5E?2zCGB)B!OUWCU!*%gSY73Rcv3aesyVcdNAj?P>F0 z%ah-8?r}_}q+udc!!$I+cD}!qD|FvCm9v2v>N%!MiOR)2^@J@fG6WB{sJpwbHe=4w zF_#wc&sl@d&ukg)C)a-zlgSz3tt> zv0weOueQ0!oT<0Kn37P!z{I2svV0afpU*pZ@}{e#=H$H zO4+L9;(~DuYo6>_pQTL6$)TTfVqyv#C@?M~y}m{jQm*bs&!Uwa7$|AYy(im_G~kw_ znw(QV9fwr&4g4_}ajKBe5JjWa2?gs?SJ`GZg49x{0#5VDtf{HU*LJzN!{`J*ew^)J z{3k^pgbq9^KUA&oH;LC{1%*k~V)KwacSA=fRaIYuHuczof??T~K)80H)wu0q{|Ay> zX2B}C@%l^!9i2qeA{i_j>a_Tis0QdAHGCjeA$=;nkVBxNWp*9VmjXRqYEYf-BbtW0 z32^rX#$C3Bg^8jW5>HK`CPzWh#C8>$;TeAso#YO8c5kZPyn*q2kJZIyU*BRV zkvl(WFFGxr9Q*FEogEGIMK~{?+^rs(JIeqJDH&L@Z(}AY;S84d(7gEmN0FIYYEMQO zRdz4AW=P~vno7PREtQ^Db zD0afv`qpQc({ov+d3bQ)g8OcDU)Dtgs919~N=pajwS+`eRB-59ex%)3aB!!1-<46t zQ_UGh&LXAhn8Q#Vy73M0aOi_Wv!QygIcEw!gV%5tO)V+QT8*z_&mKN($T2*6_0l{F zh(`x^$8U295AXKBy)b^o)A%}$UUfZ;CSayiC+5)R0!H6DUDci^6HsFFF?@Q(@o6*2 zKuP-K%Pp?$Vu281Iasco4GW*fIZHO@skTOyYj2p;wKVjOjF`hx275tnt;Ky5Jm4MA z`G>LZ0KG|)o%4+Sm*xJyHfnO;zUEb6D4hmleXI7`YzOKMVZGnW*jMLCW~TAkR~b!T zjYu{s+S(kuu~&fP+_JN!77NVFzaAXiO@?Ev9?ja>(KQ>@jN4w*3hkN=a7J182C`;6 zAI!ughGY#49EZ14mX;j#^*O*m>-D0^&TdZ}7`SCNsF)EFvVLsd1mhF0*hJ!m9g2(( z4`=J{C1$uVbBIgHGJh*B&M8U*Qv`2|AB|&Ml9IWkqe;z7Rz~+*g{TL*6+s;XYZitO+FAhGNAn&T!!bBmu;ODWMneq;=~h^2oGaR z;TE{9P`6mVU?=bmj}T(`0UdYBRIktru9Nclv+CqzcjM&hxtr2p1P7rD$;r{iwDV|3 zY;BoeCGJfraf}H3z~|3BpI<@NjeXngPyTqUR&H~Sg=8KGW@<-#akBybIXX10uMr$g zdYQ#VG2k|lb91ZbmA_0*EXeDO*~4X;XZcreNd>B^eW)ci-P()I37oKYf^($*_+bXa z{a*ijN4j@nI)fMohkjZror1-3O|9IA4{8eX1&>djRPcE-dtLP!T*mSvk{`Jr;Ba+m zdDf<1*wQ%?I^rGDa&i<)OL4+gJ4Vvd8AWCcz|QM1CK41mBj)F6g{n2{>IUJSZ$z|S zdp4qJW|pd2wjOw_IZ7(~EPgsj#;HL;0>aD(Z~;%M$44t1g1s1XsM24aZZWsay~+Gz zuUhTGKzGe`cTt6?FnWmun9IN@qaGalQ-sMPdtw5NW!n_E1tMS2*m|ZMf z(biJ_(@~hyFC^t1f7=@zguUslXGCnu{SF4fZEMUFB6++>A?ok5_$HI~F5Wa2EWVFP zh1@e;1(VO>7dI_V{gj8+k!c*={$Gj7%OpMf4PPAXn&_74sp21>IU`UTj&rK33kF04 zAM}2SG6Vs1@4$Nslrk)_x&FWRNkP~<_qzb}|HkV6watqABUJXLC+UM75f(xNCVM-U z9|fQgAd&#vb#-+Cv;l}X3OXUcH-HRKlX&R>dRTsW|AsdFrII;yP&vH757bpvQB>3$ zV9E31h~3dV@E5xBTK2X%F15JFP%ac&R|xgiti1kz1y?|i{Htx-Qv6&@>uVq z!i-ai#atpxOeBB{WF(qtX>QxkOnguh5x8?92Q%FUE9go}m7tP)weZ@M+o#plv=l=- z``dHl0m;U@8=sFgpEwq=u%V4*N8^XG6W)U8T_af&lY!)u>W8Az(&}G01q543LNy!KD5~U*}*D}?(02Ao55lA>XJ$x9NB&inv`7@~s4Dv(KH@;m@htBmHXZqCVDLkM z{h~ZXrIg~$@A)GO8=jqA4kp+XBK_y<9%PL?BYW-<_6uJXBqgin=545aax2l5@aN@~ zmB9dm9eDLR)2^C#jk=~4Ln7NOLlcdVb)CL4Ci^9D`8YJ>t%;!E90Ty15DCBYyFYn3qmRPo^H!E@EHT zT4eUTYii~)=}f@YIv)d<0Pp+#Ujc@O#;$30z40#N#r*G`U1}5dyIwT;pFRnyH@PW( zF;lYNU{=ZOp!>0bF>UEQO&OWs@1O8`QmpeZ>2rtyggxQ`VfnU(!@_(sk_#bnqBN$?7S_<0s(^ea9vLt=9pfl-@Kn8*z zP(}jepY71a5ZDE9h?TJYGJ-#jCrvq3!ukfG`uBoQuhhAgG!?d86Q337@g703han z0$H?-L=s;_q2|i5vSGZ#p=ymBC^#Jy9TID~=7KK4@q!BWm&$3yNSO3I#R?r*6+OJ! z{Ny}xTN_wW@7%Y2`tj}qs52GWDjGiMAKVR5Gw%R5A_MKSLPgi8@Eq;vf~vG@Z(@&g z`~UHhv)}X|o&I8kfEv>>$us+u1M2d4 zB6*y5W|KMW7nIS4M$q%SQPC1;TPdljsKgb_$cvkeEiLkLa$OHL=W))HIOp18K0ZEg zy)8VE`*)3Y3tT1qXvfORPYdw@Hv(QHDHtPRzdLqS+0BjFY*bKnusEQ{pS=IS-yo-~s3ZT)a4c>2mo!orj4{O=**se|Vu4i$`z@ z=`Y++OZiz#I+|Yv#9-M65B@p;M~~t5?WxzByHK`{+U{3>;TW0z+&q4v_2lOVX7iR? zK|$E0i3v^`nnF6dRE5SyGvKy)Wc7s?UOe#SG`*HSFrdCT5bW-m;kmj70Le0Wb(M6& zmay`MiHSs~*SX1y)4qcce^f5tQKS{}@Xk;_K$TCop-#$Q7`lcY${s;QMrEc=;N4VK z3g{LM!5-NS7s4{PVK55O&Y+|2f{H~h_1aU~aR~`U$C}9q50euI4JlEB%3aQi(D75?k zfqDkEq$z^$he~8yKe7tL77nOSMEjQ*#h`RhUPB`aW}C~m{StL%*h0+iMNsqn%^Pxh z=8;RXHFfnHj}qbXzK`i?`(pjBHwT3e#J+ez4i`^dU++no-dO)KSJ+#1qjt-*A(91Y zYND6Xg0dVmE1rFU&nyEY0h9ax06YG?AU%d<^i^wd7tt@E20NVC@k%GhXvh2eb zPVCqu$-z&7fuwE35Pv-5FZ~xauWV$|ejbv}E9Cclymt%lnv=1ynYhGt$0dHa^mn70 zQDo<%=7-<5~cUo~T+P==-;k-+arq|8x-s$qytqwh~u5AT_n~*SVC#8kQQZB^737V z6=euUQ@f0`bOnF(wM;D`yFQzXno!N_?T zv#qc6%r04+%c3V_W!#&Fy>bc4!`@Chz#Ur69}iJGjz^%=XVcYC)T96J{TXyKB}ZSVz0s|8}RrFs0t=ZMMdW1 z>1AcGHCF+EE9~e^o3wR~59D&LHIQ_jBrn8$X&$%27`lYpCsT_PK{~Uwv#$q<)OlKU zVcsUasObJ+(N&P%CuJlm*J({o{GW9brDY9e0UZu2R zC0Dj}b(b7~cN(Wf^fg)Mw-g%LBLN zmOX~hE8J#cCi!iu)oCD)Mml-XRT7^sls4g@CDCenj5}?v zR(V3-4AJwzd(JkQO(CX1J3G>mlzDyYD+MZZyj&U`{Px(p2?GPVZhI@HIGo!C_mA;% zF!*w0;VE;(geeLhr{AbQ+#1L6=h>MXpcOX1T zMhGGDZbSo>z)#P0C@C*m=#)sbaFfUr*-Q(tkCB!O@kl7>E}u9o2r?=%oQt=aqBFqQ zwug52gv5a!n^wxhP|;$5kNNz!UHILx4>u{NUe62^GRQ@6N_MtIZJ+1?sWPpkM4W~u zST>r&VCLod`o?*?Ctk50^U4|d&LK^c8+4pK@l0ADspc~nC+T^K{od_pz1$_T&dsf) zr%zL`vhwTf+^`fBhQ_|Vh8im;;k$l#5F@Y9?JE1!pHfKsG`7sHt5CnW$W{oC_bDBEK_MdSVbgO0r#n(4p+ zX2QaMd8&RXhP-4qgM${Z(78=57$xTiF?pEHuNd|M`>}`JQjyniEpc(AW+VKHuU-uT zkPLx7UGS>}S;%N@xdcH)%@N_1~J z1f1NIl;Y?a8oVv;P}^d9GByE}v8VC8&Wek}WNHeifv7`6qjt}rg{ZC$N8qy55~g;~ zOf~qKT=`WQ{~}jzwP7)_0ap8koC%sc4s&_U2W*TqRM3pOS0GtvCmDCavkKlvyJQ`{ zAlyE2p8PF+x&i|+bCA>-y1`+{dBnKaAi%?I%S*OilZ>u_2X>fUTPfXvqE1Mx{c5!9F|WI zB}d2qs6x5ETj|)1ri1zFgJx{SktJlxIcODScsrj`?Z$<>OeRqHmZUEh*o|2lC4ovL zV1GzxhU(35P=W}($4gp$0|K~??4t{3Um@ye__2Ta<&o!mWIsUy?;RdC11(4>Ch=u; z`?>!`&XKk!C?AyvJH{9cDMzO;>I2X5z#|Wgy9|oRAZ7BbZbt%>>Ito`cqC=0o#2gp z7`%q7z$$BGQ!)i5ojlCn*Uob>bnwinjGY#`D93@W@SP#((U^I#Z&DeU|4Gl&tr1ChCf8F`f7( zSM!sVEE1#AFothHT$yU!y^nY!jZJ&>JqU{g9QP*v4u$0=b@`6@wGjSC(k?D(g4@r_ z>=$UyvJB?vl(DfpH0i!^*Sw)EXJ+=Eo}szW#i7i!=+o-j{G_#0Jmu}wbOz1fV7tEokN0KgdAOrPyF3+Xd+|JlvWCBmZ*9y#3QsSAQ5Sq`|GNB^?TKnD3Vm z_zKFYu;>aMagmgY_b^a3w5|{=d;Y@tlK1q_wuu1MduII@l@t5y*sS?2KX*Z#NR(^S zX&=8uUuR82!#FSzK|IF^Mobl~r(W2N7xM4MuxglE`lZEYLAfQ40C&Eg?$`n||h{OU`j2`ARpm zyEYadr=^jmhlI$AOIvjCOf$Z5CiHjnLVjRsE~}QGpVL4kpPZLY_decQ?H0|?tP~YJ*4?af%p++2aZ zq0@NxVW!-Td;2anGE|KtAEV)@qTrrOUmba;*4)=Qy1Ffn&OL_UVupJv)a0C z(%=Em$YR=K&t1Qr8mC)v{IB+d(l>8ryMpLU6jW7d(mAelKYi2?Eiel@f)^?2Dpg1W zv~6$8j+EUX-?V5Z$jZ%)6?(Qigh{Wv>$1xIKGO%#L(oyJ;?kq!!4(27&rs?IXnXSI z`{mq{5{lqZrL=+qar4b@=ii?@Wj0V%DWjmE*F6-;qwOXxp5D|%AN;N+_SK!VgMQ0d zfNHQGyIAPW8?&aitlpW9mkdegYSTJ9B|$sxSsD&IdrD}RXQ-Drd2vvpz|G}N!a-bR zb;5j%WaztZR$mfT3=OTfOtO13Lqbdo3!aObj)NZX?pszu!q?AP9;Yak0*>KDBJolC zZ{-sYf-7aRJEI0aH!FrpE7tND`)pi!A@gLlQooy6&{dc<_CQ!}pU8V8$|>!IVaXLk z@}ccFr>L$K7_UuPyR9}(yoQbDgw?mD_8vhl3#`5PT9qQsusxap-Xj1Y_?R)kZ?R`< zWnNyrLIuF9FZO_hKP)YS4Cu$+Ym%Tq7}L~TJuZ`$kD0Qi-=5qxQZO@%<+PxHMfLXB zyp1)fyk?b3X(``x5Ns8Ac`w0!RnUGqU#nO>^XO1kE|JvNj|dJais*lM=To~uEsio| zZsp68178Falsu7xnxbTHKdci&+=e*^57^=e?4iAqhiQ+t<=~o5DdkaPVp6$C6V-4T zr~zwQ`gN+*!*AZ2FLU>bB$Hk62qS5YIKxknb1C$wZkESo=LaYd`$b<@L3n|g zD6;h~zfxDP94u~Cu#ZF%->z+w4HTKZh2Yyg5>1xd1`Z*J#H*{VO>O3{#Z|7J6$1@Y zPC+4+Kl zz{jh}MN<7!qTY`9FpvI(FKq|6YV@p3`Wx>s++!&7wkGu|D2)YsM7!9a4* z)BB9vtUq^-2dZmX9+5RM;wanHft%>-tHmAg=Bg%6O|`s!$jnhFIXM{t_M#-As4d|? z!%9+8FEe`HLA?Q_xU*+53W`N4v$L%&K9IanV1oHUZ#Xc+)(R}y z3{Bn}fZXV4M<_xhrV7D@T2ZE_7@1((H$%hA z?&vB$RaE>???0Tew^ybkP^=BJPgS*3K_*877PTU{COIK`=Eb7$hs@KrqIGo&vOIf4 z4WUqVg4?+L$c=MIMmf`~v(uh|$*j2EZ}*Xxj;xwm8cYr-&>r@P*~sgEAueUEU~O&N zZg>_(`)@Sb6C)IV5?k|;#p9No@~>!-RffS}f(M_nITArG7}_0Jvc|#c7GHs{hkYMK zRG3l8#vXAGBcC50Axg(?6PhG__ylZGvK{|xvQ}2ZP3_r=8pEIiI{+)-fV6=n65m_1rk2{+9&77-Z2shgK7~J zUS^o!eH^dG3YF13#ojdx(&ZDsl4ftz8d^_Bmn;C%w__w!srzG0@IN<$YlB?YR43b| z2TMHnh3}Dfj@~{{0Avj{iZRS+1ZvPZXz%ZX<2jiphOeC z8Tk%TpXXk6w?v=bnA??%I^JoWqbF*{HDEYsC(sMuuN^s+=-2AGSIplNYL& zk$Kaw%rg(}O{x<-2qJ0f2=?o5%zs&!?p)Y(x^ZEjfs^v}u=!H9_wX>7H?Vi8D-X&U zja8`rY3WU*hB9zu?mE$lQ3Nz#`PoNL!%lIa6H|u->}#b#ga=jZYXZk_@cviTx2T!G zy#DpLqJPV+{>;nw0oxsXud^0?*K?c#sc@47wULn;<<{%<*NNw%9NK`pvfV*eFP@al z5ex--0FOWEf=366)kYVZsg;JX2uXw3uc6ThGDuI3A(EtP-n0mI!iW-J`#vTsq)P!x zkEAwUpCJW1-pAQr=gE9eYsXZpTy3*RKvs7U-Lj|vKKC=IX-P{9{{*PU@A_urlk<1x z9^P!kbjFC4m+N(Zdk34RNaa=ugfYgAGG=DENs_zDgx;e;>d_MFE!1 z9n-fj*P@U%#pWMBRt{SS@dt9_X)8<@`s~7aaVJz5ZJ9JWp%h_qf zSXl+&5p?kxJ>Tw5sY3Bh_|TFd4fQ&K8Z@}I724LMWM>!6T%uk2Opec+37$~FXf`09 zR94mzn2?cSKy#b0Yn+{cXWsR!SI%FAX=)^b>b=w~vH} zr1lz5wK%{-KZXzaH*s~Sw-wdYyr>&>&%hfVC|9IR;dwWYzX2O|Twa00{5}ae!9aI^ zSjNOePs$|JxNx#X-~5IO;o_eKkd4U}4W)PR_poIrxnu<7(t5Q$5K^NG8?-y8JUR7bz2nD zfkF?Ki!P4t@{5X6htVHmw516V0$AObYCAHDwr_%Q9H3ESX7)-=Q>4c#8Ebx;FEwFsHG|S?>)Ts+)a;pGn!p(oE>42e zH!h%Vyca)6d{3-cr38uDLtr=EM16eu{L}flLaJkLp^VJONKZU_+SVUxE-oG5^k!=7 zaJ-)QtH~)DpDKG58#T}Kv@t@I`6*rIoi{6uApQ< zLrtwoTU!~Ws74bFzP_t0-Q$Xj%hkO}Ji}NBx&bz`hgFs;`CywwE*k8&0W?gtUf3+( z+R^0KFVWD~*+nP)M6L%9X zS}T~A@YZH>62EY3E1F^;in3;w5cz=c0v^|=+|=6`s1E%FitUZ zcDr-Kg9?@~60i(}eR|X%0i4A-sL!)R1O`~MnRKXux3P{r>^3zok7siYVgR_X!L|hU zPknsKK+2j|tkVVC4o}Hhck}?&F7wzJYh~TJp^!~*uYrEBHAv}5>|f=L<`os`_4ZgQ zySirGYrW2IHV$|zZFJJAZTmGu+kW2ILQ>~5*-W;;|AEobj>cGlpLQgNFro{&i zlEXN4bW=l1tEw|{u>gdfnP+$N*Zbim z=!qsz^Ui^Kn5X9o3KZI5+zmhMM(jdh@MnG`WFoa2liz-C@}qbS3>FnhoE$s%Y&iAq zxq&ZGk-eKf>aI3rbmt?Z17L>9viGwNZWh z)@4jT9u(BxkXzKC#3W7^?d(v)*Es38TohGHygw3*JZDM4bx5m)j*QL%{38(edUkY4 zZU{Abxs?lFeh2}Y7UUvXS*y{2XZMxHQ*yH1SwH=HN1Iu02@;Z?`oa_6oC{%wwMOo| z>M&-t(KWOS7@}O0seEgy?tK^tFyFlkvaU81>sfc*yR*t0704DzGBxGg4mI#z9u)eb7OPl15VV z?(0{bK)48%aJndiMj8N!%{h-&nnm^IocKg8JWBUwJ7S!S z&ft2*Kn?~2VY%>EZ_>sHgV_^Ei;4N$1oIBzFPv=o>q{ z(p$R!B$zO5vU$uP zM$dEedHHl-VjVDlP=r!tgP%PouLjfVAT@2FL@CR)uynB4VYT|>&J^f;2l?{uY}Dxr zhlAG1<>f;lM3uRC08N9w|4ixo71VAC=zX&uB4KMXj!czp0~WVso3MbwmWbT`yc>Sc zHbUg07B-#-QS_AuCohoZ1wnwr>I8#;SJ2^6P0z=0@c7=a6@G_gA0GqDWhoESUKq!M znp_wSeb6Fl-|=Q4m)9xEveWgG^OKiA8%uv)jEW?u40Mi7O}x0cHl)?l4qhO2|N6WR zge6Rx`&&O0#W2v~?=_4xn2m3cBII;a`0y>IWwuzUKx27HOca!0%Jq;U*FH)z%%h?>aRV?yjlGn z`B4cqDK@qV5GMj?QgYH?OHf?mU4-m9XgS|oCIqIgTKdkOe)?nhUnH{sC=~sBQ2&Ws zspVNGYu_MfLMD*`4Te3=Ur{{4`ax}#ne2rWrite9Y3HAtvkd^ru|ID^6HTnD>it=RS`?44Y3b4p7Ze5@{77aWPDy$zgl$Db~$v6D?SLW|k2ha)z_0n?P)*tfd=vnt^ zqWbo}+@6fphoN)aJ%*-g@$d*@M3ZGD+V=j18r zI4x5#SAj&N!G+D6Ym6)Q3rI*XeT$dzCk+^Dh~Buf60 zeoSv9nT6*Wze(?xil*hFH^6bIqesM5Ac`TmG$bH^7H9Y#qf`T_S`@ec>q5Ba_uYWUe}MOdS8%I znER*ZYN(^v&|MIt%4g;MMXwsYoi2+g-boLY^v7S369!l;8rDNObTfFdjSIHP*LIwR zf1qbE!*wdrIM>HJk!>x`Hf6En7;LLSzCI7=hM=DeY%<_3 zRRi4!?K5V1tK0X?&5|XbB*FXcoAkL>;W~fPj>n$xrx#`f(HXZJd#8Qr1wCmb3mbij zvA{36`ql|uRAy$lfTi)U{L5RN+My#N<`V+8t>+yD0t7UXbBCJqhuYwM?oeBIW`}XI z*%)6c8U*2(7mXfJ1(1v&RLbktj`-FNYS)f@)WKhtd^7em0LwFGVazNL>TBza3Ny`J z!m4ivBfgnk!Cvv$W|{Y2+7E%A&C>q8-rqh3SbOs6bO5MdNkv7Woj-51@bEAkWM>dv z=EbMs_8&l6$8Ey|wC zT!>c7u#c*kjVp;CVNpI>dyN~aAOq6aZiVJh5C%Czmb7ROZdAWc?D&S@g?x)}Th@Q0hqy~$Nw|m&i zroPrcX;xhSv0rNY&SS?6KzMK<0vnCljpWKdfj*e!g+o+?sq$|=U0rDGJgl47=OYeE z+nkyvEah3$weLn?bZ)zlOq|Zv-~(&X2u1JAnGaYQGXLJ&Sz$&1E{F4>EwE>%f`-Ca zPfo71GxARCz8@}vGsFlMuGm^!43{h_7Gt zz|2i~(*ji0)#o(jgm<;dbB^v~vcV6BI+7$qJ)Z2M(^G=tTf@q7jgsNtLVn7QznF}D zR2)Bl+!&0#dY(@ofiClL_AUaM;zdkZxp*)`A*ZKBY>~v8+N&>k$<-SX8XI$Lj(xJR z9k#KEr&;gFExRI|a~c;4`!3Bd-r-%~XrZ~(D~}~|$YdOf5yB5X4)&>bFY~sLo(-CZ zdZR%nYQN3m5wbJldDz%`ShHZUC>4^>Z_w${@*%>mQQ_8+a`k$jn26#V z0VL!zv)BNVK7j*$E+vR7%M@e%v-5exIB z-jH4SBAhQ{;_z;qFdhP#%)d9e<%jO^S-W)7GDh+Y6;MdlP#T_i0PiTv1{oPkvv-rH zmkC8&B%w+%oyr6~`SMZ_FDY|j#}IVhjjpVrS@+lMmvTzYN|$xcDn{C<+0FN-Z_VG5 zM5K}C3G3=*U(NcGGOt-zf7eD0sj?X6{7P*`3!u|D#L5E$sXYaES&Eak_i%Gj<&31f zSeU10?hYLWx>*`nJB9`J|7KC!kW(*^W@R(au0dgun*&;&_#gE!r z{fm{=6ZJVhAVO91_AUkX99*(RfZJ>u?6qtA&O{Ky^x}KlUVQ&v{Ng6DGdT^Y%J?L4 zZLdBsONNab{GLXLdfDs@Ca~$mCQftya0fm%6fb&UXnF?1S0vuvwY41}J#66TkB*Hl zm&B$i(eU*xW{g{|yZo7GYVOcx^avC4=jGZ)A{9?zEbztjdjf0;Spb*~+KS z1)=W2#&`Q8Kn!9|K%|(YqZ-cZZ7R*@;d0S*Tv_#@XS5kjeui&3=ALf6LDOv>ZyZQo zSY!=4JF9BCjez94tNON;nUA<@SFYcOL~)M+#2wc6pui>C7zoFHz)e@^eRkYCW2T*E zR8_E&4Uy~V?b{K#uI4d!N3DYb&-4cU%4^Qs4b${`>lm#h8CRzDrY1fc_6SK^VZZ8bl$J zMMzvaX{8PDxMDxwP;}VWddMQP!vwQ;X`4bEKwgeXz;(F-d5QWacWY+#Cg>+5%i21-g;@=28np#QJb53~%k)en94TRDLr z^saBJf(F=uIzWV>qgru_Y(75mu`eVNw(X4MGEk)x+ic~3sY~Taer3x?45o46@udzYlMtXvH&k~O>}4_YF}TvzxD*~D z>O47$?;_ujMv4l!QZk5$crGeh{qrNB)10qRTg`@Hn17oS*e-v}H(BU%gZGUO_4HNH=I6>=616yME?z+xM8+u zl3aFYyEvedh{nYgj>=Lo{SGjVD()L7Nw}y)j-?C5BWJ?ujginSWfGCpavwrxikK-(f3CI(9o|_rU~#JzWSbezbE#uX~E- zdI7)qsWYLd9iyvJ`b3DU-1jm}M%mNQ?QY}P7WBPo$(Os2fcW8!$(sl!n~*{qb!`>@ zk(p%EbM&6?)$KVS)V3@*kaV=8F|6+DaB)#*tnb%Y5Zofq9|p{AJ@5QU^CFAXFU<2{ z+19i6g30aZ$&Ki))%UKh$qM|IuqY8`(ZdVk!wX%YBt7&z^K}i32UViUpGsa4ye5l9 zZ(7Kk7r__dE%8%c_z@q@Q{FSJ-J!93vhK~W-9ccuxKB2CBfK{R7Kec?AP=BjOqz4% z?x(|uTrXn+w)V(9lm#%SuTWB%fDie^}YOqH*M;Cm#ru+su=RS&B!e!uRN@2`*BKBU3ZbA%m)& zzbWT=UFW|)uQMFVy!1PvTPE8p$Uc3fMTtm-Ojw1FhNL)+yA4>UvX^QE2kQjIm~HN; z?aiK)d)Lb6k0-~j3$<*M4`eh&E6+Q?gJc+m%a2~n2$9xR?Z@xiDYxeYIebRAF zm^I$8u?Z6fVw}(9mkf-p_tzb|6CZjNd791}e|Q zx0`#84gitR0$BF_BnT3>xeUPS2lG(;1eSyW*6!^*@a?p5nIZ)(ot?!y02%7{!3|WF z8f{UabsWi--p2Hv5}RLiAiX$&o;Wel@E(?oOUUb!Yi6II+*w^{Z~TFmabs)uHjj5(jgtVyYijO!#(*m*Z%Iq$z?#wiCX`AXM4g`K+(!IR-t zA|s58=F{OVZ}(=G2#Nz^9#)x0s%zZR>S-Q-9vN-GA=~3y+s=gwDd<$MNkz|PfWatN ze!5qy72c<$2cDRB??^z4Vrz@&8g0nO4;d{@9Po?ykIhla_KH9o@P*#}<@y1TUH6># z6M)HsAr|iXg6@ZXVfqPKj@%C>+`fk}1EUP+$=&rd0luBWJkSR$&w}19K>dgAEg4txsq(-6!kx?Hr&io=5uY!4Una#uaOE;k3P8Jf}#|H)EcT45Q z5}X?-7hl33`{NbsB^RKlQ*OVK^~QuQO%2}?SH!PA8$o*8t<3Nh$=ZD+Mz zFeCfpA*P}-nRM7=PBJv&cig3;*Hla$su;L65KlZ%tr;jUN0db>iIN8>5dH^83h$b0G=aqYQuIVjxKMP}rH26i^k_2R`S0u!15 z1T0C|$J1Slm0%1&!Lritt~Y@Br+oVL9X6N60I(hdUlyijFEBjS=}I2Pdmu^nvSv@} z3rK=i^RgLU=u75REUZkYKYyCQ!=D61ow{QBTGQP9NmU8}2m{^!M45wgO7A7_zXP%x zHer{wh>_}1YAd(5CB}?+z#2XqKWGu_B@0zRcmgQMON-$WEe`nAp(@`f#QBduGKvMf zS4q2^(qPf@G9&lId#HKHxH}rFaNdIX`-!Yd%odSn()dTfX+InrhYxw4p{4E^P)pAc z>ino4aVSqy{ZXkhf=kA6%#b2{cZ~*^q%zTtU)1$7Zx2fclzs+=u^ooPVw}vQl~KQx zYhDg^yJhEfRA_=yw*q2rIvpQ-bu_I=*F!M;WB-7Xol@Yn8Qq~d_18#oMCmPtaOm!P zU~-C$uelmEX4>B@Nlo`X#vf}^6cIL%pQfZLJo{EL$iLlBP8RJ$YwK3Z+_EmwuTac7Yw~X@2|x1rR9`zdC=G&3AF1!drNNS;n>*bUTW--=a1}~Zcoaie z&YK#wc zMb`)OGV*ge6Udm2{%xFYyLg0wF=-1qQ<|lWy~F0P_^j%?8;81wj&*_RJ0x@*A?&?C zbsu4Szv%n}AYj-u3SpXf08Ct2$tj=0s{|mjmtZvK&wKW%rKKfMM?mjqu-wlM1l&~8 z45dfB-$AJbIE4T*6&0ul3QsV*2D!4Yg(z8QW&MmBV@G07k>OQX1$v&F~|yG)Sg4;vI!~VXlxw02 z>k-YrQ;6=2umJ*tA{iNNAVAb%)_6a%`*UL_HvR6xXOtGC(5tV&m3?RrhLHfL-u-A6 zz@fai_tt~Cb%0g|D&9j#J3-?_BSl)k!RFCRx4w?`*s=RC z)c-22EK!E<<$u4D^JB38`}hCr2XzBy7~i@(x;C9xocU=g!^K`34KJh+wy|2nWT+w4 zW}j~sVIMd@S}o*UPw^3--r8Abmd;j0rKZ~G;JpEQORmA~lbIy^U@>dh;e~g#*@LjK zu&E>-PEJ#uILjpP@1Y_r4+KdgivhF7$FF|sLXeNl1B~(mhjY<@vg2o9dbW26{*9Zi z#hDL&RPd{IXU=2|@Ncm0Mj7vZKUvO5K}} zaxzS!R}%-H4e-P|zJC4sFs*lco6gocGb1A`h^#4?XF*fU&JIt&Z9vAV#LfPDK1-vR ziOr|9v^UxnNK!c?=?>cJ?gW5^9EtwQ(K0_)a)DW!|VS3HIXa!R2$MJz3ccnKR+RT zyCl?lv4^W)_1wvPzNWuQH_Y;5*3xo_V@3dOh?_Z6mtdvH@H<3?psNSNgQ;H`->GCh zN3fr^Uq%yuWM1!%5{w}3F+1H+0Mk3{waewOXJ#va2_Unn>03kuBN97Do2r^iE|m&6 z4AV^2-r#TFbWNi{1XxT(ETAs!LnbJAZigO zV_v!MwP#v;V+Fbg_o_HY=BE|cu^Z^-E8;cVTVIeOsbe;G8z7+mg{8s)vo=av=1H}f zoJ)RdTwhQyICxjut%!~_j+Gi%L&Zajpmyezo%<9GJ-(Mzx=ZD!9%n>9oFvu;zMDmCL72rz_>g!*_Wa?CVe>4b$o}PNo z%p7j+4y>nnrL{(_x4P%!1hn}E28p6!q7aZ`M8}RRigz3wBZq$bCN=Z-cCCBbZfu*B z470Q@T01{*#0oxW{{89|0}~S*>t(`qw{S@07&f;L(l!6_gEWTb;BAd23AJ$tS;=*D zvTxB>V+zzH^H1m?Q^6G0VrU{P<_j&uUtx7-J;Esi!T3^Tw8tV&Vb>e_R8z`9mPBDG z?y_SWz2rQ@J;PZLMh5t6sKX`Ml=J}uOEeiNL5*!Yq-VygOVd?8Y-Qz7dz&02BUMi< zUGUBF0!d%wNw|(4wm>)f(HXl{@mpzW)87tdO_T>GHjiDo-g{e%+)m{yvxT~rV+kEM zI3Bo1hT+a z(?9<4^JnDNmTRt@rO?I|UUD;sy!x>cE6=zy7ucGQh#+{&9aECC-RmKz zHzq0n%lDmDa6oIu&D+dDV<Gi=WSU9vHIEFuK-TWl{4;1~Cee<5{-GV+)L{Gmejz!;NSHV zKjHRPPT%jwvA!O4!4*1)pV8PD+}kT5Bdg=U4~bi=uEzW2rpJ}ee=S7aAu0Q-c6q%f zbT9k7o>gr@6nlVG{)2U2&dmvBgU&*F17L){Zfbt8=hUQ!KDT z84gyzAS|^rk>9ZEj;x7nkoWrer5<+@yU`NWidvF2EW&BPe>gudh(~lQ-j4NXKU6jQ zcV00UFSq5h1FzCtZx?P{?@_npCa|2VIUwgR$cY zq?mTag9|#mJDDZSK@^gQnsvMQjN2Y3Hg@}_cco?SF6kg$5xA$Q_ReaA~rT02hUaWQqs}S@0)xw-V5QKwZVqFs4r_D*kV!n zrd_)}I_7m!rx+#uGHNru0C=4BJDpj!^myhz2T;R$wpO%r%aQ3m4wU*?|7v2u#6)2nA0xnpP>uddx&<1dh zb8Blu4Oy>Abv)ci7181u*tppTR)bU3tHWQQqDL|;J^XB>TM{fk*|ZvgBAr8=t&AZz z`q`2wTX_H*7FGt&Gf2NYU%TW?eJcSj!@pbLhq+x|DyrhJu*W}(1SP;_;NyeFrR#AK zo&55-Vm#eV4NMHMJHCGQqz6NH_i=J%?)SiMjxNvs-HE~IhYwF5{9;>`5gxkXh`6x&klyeu zOvj2g4e@$3b3?{xd0&$pB_Mh?9jS%IE&qDVp5^tN66Q;YY=aj zH5REjPffQ~bg?gQWjQtm?bd@u-O7IYq2OF>Hky+cKVOe>%-KV9yG&NCXqSHqYeV^? z>xH}Ql(KNHkH@sNde9|HKi7eQwd*Q>-pAZ^NI4bXAMLwisj5}kFTDXP=$DHlOjf^J-)iU5 z3>KdFfG!h{_2W$vRqtte*((=kg~Tr&5j3xO8~Pr!NU!!rW^;k|P2Jrsbx26&+D5#I zvO+y+YmRIKudiTB2yQAEweih};Cn7-&?DiC9umvx)8yEAw}W8CMk&{72{#ambzk}a zJ-cW5RI;v*ez_lzzRMV1HFLqm&tn>d%S0vO=1^E^&#({VO;^zP;*E2>M5U^|yOrIu zP5`3+cVLecThRD>M>m27$jg#O$0M)B_uy~E#29%FM%BQ#`1jSVr9?*q;^n_DV~)RT z|G$6WR{4)Un7mkc@Ure)EK5mlG-Zez=()tboXo*wY@2^`kq2N>g;m<7GJ8n=_oQ?BXv80H`OZ#x_z4rxNY(9t7J(3sq4^uh~k=e!N$=Id& z(VNAa$|~IO;@JudZUzn8GR{H5P`1^R$^5yd&|3^(~o1z)`dISNxlQ5_5kk4KMJb7;v2 zb7`4uvRfuQp^Cz9our@XYz$hk;_xpvfIG>t^Y3lf-9XRpn<74F^O+ekeK7w$oyZF% zDv?jh$SAMMLo$;6q^30bW8^4*w7;c<7Ljjk9*1pSDNA>m$%S0fn3?=#m|!68b%bPQA(#S=64{$P)T$``Fg9Pw0g*8mh=S#2K1v{;dsFkbkIu^(%j z5=()IsDRJio?1uzd!0tBZ-0yo=WyQ@k*I1tCi2 zV|76lSnnfW0Wf_%+?Ovs6#vamZTME6Q8(KsSbAY#g*H6+CNQ@~)$nZNiPkSeOb89n zlD#I!Nbk6a+;l0oiu)3+zY_iumAShI<&~&lx&y`dID%1k>Wx~gI9$yKU#rkMGn3h2`W2<+Q+XP5?`dP-LY)d z_I_dH&3zUHwN-Db4Q^a!HV(Ue&^Rj)X`t?t&?B3qsa=H~BrcgtLVCD#Zo?5;-4sAW zO76OX=wV)b?W=#xCW9}2etzv@Y7r^N3**e#eiITFv}o8HC2#m{rJdaMmC(4L7I5N~ z+L|4#xW3Cc4>)>l}pr6gIb9DoVegFsAWV+h3Q8!ztXc!%IY8VIfK44T5b;+lWONsZwlA97#@Z2 z#Xa~Q#m2s@Jitj#d>RpJdvlYAT3aLVS;p5l-7H6!-fU=2w44F*iV6yQ0_JNQZUCy) z4Dwo3Z5;;p90dKse#u%~R9>yiTFr|`#;k}cY8jrB{h1hC;&hESz78}Pl3PW)ksvv) z|F@Q7SV{T8nl@_*?rQtd=OInj=)_83@?y-K!lIgouF$57tVB}+b!GLsy*D(duv$n$ zer;%~{(&T3bK)_1AH(xHuL;|^-C)J^&<^6A#W?A8JD#$l13p1>Yiqrl!cXWE;MY)cG3H){;F`_}g}?7?mncl6Hob9WAWX)5`C*$V+0%lWP^1N$%dpb~czK^c&L_@z4!KeSJA~j7bt0{O$GvBmDvg*3=Ys z)->!zKzQJ^*6oZzmNwAceU4qpn<`B$Utn^1{AdlHI{UMKRPtA9j2yo-b*e>U_|8t6 z8xtJqUB+8*vAT{oucRnbDr@4)3eE7gUuig+Y*ZAXH-|weGp1O1cKxCzL_4n8w@H&| zaFw(tpSrUM3E2YsNsg^v%&Um&1RaU$aD#L;g;5tC z6=z8*D~{-v_S}fv*UykiODVSD@~ST3WW%OJ$X$i&FB?4A5;fw!BN8+rGmCp>dke;{ zd(7(*kG$%vefXt5m>$x+YDdkWeabk^%i>y}WGDn10a{cI|6 z!>Kzp_d`}5w|yoUaRiQs$D_54Gf4WPI2^paV~nyCSkHKZ146}qi?eT1 zlDa|U>N}Zaa~3=jif2>ZyIkzL;4;eU6H;1Q6zf2Xwr#pm-!m}xfV@*H0wn_8T; zt_Tz1;g3wNn=HISp|#z6O?1T0fq!7QB06@;{G;0Sf$!bZn#J3rO5qw1 zzb!=k8)$=AZELGwy3UFD(W5Mtm52F8-sS|60tyA)J=NRsqguMw()xCGpTN}kk8-1i zM()oIb}x~UNEN@lF;7|5=+Cq5U{}T?{XV}T3q}~#L*v6kjO$(bn994ViC_{S07>E}9X9FYz|lNUM#3~$*X?cx~fHaZT6>ntV-aN9Ur z*z-LP;u%R3NNg&MgScE#I)0h(ArsBuB_YW;xMDToSM0lH_=tz5@<*USN#3GuRa)-+ z+};AV$$8O&qF+O`T@I^;o`o~MS8_nB5l|4^?cBpuQE~d7uY!q%me#zPj3J2{NyD`q z6~32K$_sHJ)07dnVt~2s{F7xB@L{a$aEf|@ig}~95RD*}z3@J*7(n?OFYk%w;X5LE z6>hM-=U{|4h>oVjTYG3%Q(otSq`i3hJ}_nTVnF1#a4Qhv{(KN6QE;Zkx^1g zh>JrCd~l^PC)WApt7&OB#o|hZ?!#JLI`e^@ANiKY0q7MLHBqS~Rl-suod|_r_RHMf zO{}=M;d{*x5&~rToE*;hnD;6MgVFO1(wFkR>SV^^RsnHw0PjjItfmiwdELKxpGUd_ zuVL#KAu!`RBs!WKk8w&~S{h|Gnn6lS_jPKe_k~e?J$nLAY1HmQM|(ZZFs~bP+`y<8 zL_BmxvpgHU?Gw3qHq%D-;UOy=o~2@^f}O^Dd5ZR^q^bUET--kl>dxO&Ngfrka4EXo zoCG=4DQ|lJr0fSPzF(8uaw7-2f7|%@n3~!$X3)V!mZ}C>ZvEx{#R3-yEXn@nVu!*2 zp{Z!Tj`a0w-avUm$vcc6xw)xHNv=qqkIas99olE4EgJy z6{@JAfp1&m^==jnoT~X?HxM?tUB$$JgE}4eBP0=e8vkH!Da>OvJ6*Uis%>&7M(*H353x>lvL zsq$)gAo%*VVG9e4NFkvDbab0?vJ+RqmhVJGk+&ysEByR0zJ4`ox`qo8Z0>2^H@4Ou z|NX}CpFqzdFYo*H^=YLUK@Vk#REk~~Ub)qzAgHV(RaH4@*4pQ}yv^;IW73(z(`q-7 zETM_Af4JmGMM!v{6@SECM}T}#>o4~E^J02h<^d%|;^TilL;O*k=;(>4Sy+-L`bk^2ZoAWKHTX!k1C~mfsc>T6N5S{W0a!tF+u`{FA zvoqbL)!^C;*Fs95uDd!@Icz^_OmU$Q*=dMueT!MBUS)sOk8T-EOz1jvDTYtTVrOJF z$c-lFc-=LHuPLRj9tKjNp9Mtaj4ZKV>g#m@L~D7e)mu4#cmrk@PeLIgVyzX?=!cjp z`xX}VRz^0m!u5#3^z5X}=hl0RM*f|su(;ToamL?$`?X2Z(7axI6h(#Q$E0`kE+3t{ zhqEdYMf|eNv?SPjvM09_%MkzcBtYnh;rv}rg7}STbShim8VO_!ed999?FqA}fi$1+ zMg?HvKXZi4_a(Um;4-*^%T?UNC-3USG2ZM+XmRv{!ieYQiP39e95nRK78oCn6!sT$)$2JF$zSsoZJfV?x^YG)AeREAInWP;0I-bIgy33?``U> zot%6(bw;)Hx5Ao-d(3%WK-SpECXBDdlOXk?-{O3Fmm~>l!@^&G<|_ zC>$I~r#rG!XM;OaJ_Q9VXLBy}EiWUhjgDspnL z8ULPEPP}89Or;De6lppV+!n>}z_#d|`kS@WZ`VG1;PNU#j>vlIm-P*nxw(Zh zV4h^*2g?GlbyHjg(Et_ZRsB*ZX0Ze0n~Q(Y&sm>ii#n+O=|4+i}P*?-#( zw)U(L3Q6MLJd-!=Oph6Ct=&b(P^+$>d4Ct3pxoBR8l`C~OK1H=TNke(U zblnlL+$Zn^!U(qOx2&`&YaYUhPa*GQju((RC~WaroOD8uy$pt@W=^NF46HiMW)VWTYYFU z-b3908x{R%8S`$vs42Hu#A@y)xI++>>_GF4bJtZ%>(ScUadbS7_85Hq6hvDWKkEw$ zOdk6yj*KWvSXmL?4P9vTMeM>wMKP7IMcy%Pk#Cd}jXJ_%uyIE-sEG78Xpdt`4aIqyvQE)|fUueZ-2hHb)Xel>G>lE~twGz`5^BdW~syK+z!P4owmG+3pm(3foG^GbX0#oyCN% z@_t2!oBeH*ZR5Zoe4539{S%cso6eWA>_LHZJ5w>D`*jFimurWI`6?YNpEyF9oNU{C zW}R(Qgg>=8c>ng0Fu^aAJdJMl5qL6updy-;_790{+!EA_J0c_{_(_hkoW}~`oIuhK zpMVd?#T{v*HtfnuVRf}JX<1z^JDOl9o~o={gp8h0!&= zSYv1(P*~!bnwDnm>FM}qv&YDkazAeNgdpk2;aU8*{ZLF9`UGBCLtxTd4DGqz$kZFG$uuz7p-kqwA^$6 zTLefqgN-zgoIoe(zkZQnL-%2ZWg z%E@d0BLFd5kf2%=Rp-aO5D=kD=`{SU(Z-=%}iNqN#=Iy zo!;1<|5BbVKAA$c^mnb>gNodh-7#K;)(tL0{f&kQV* z>>MB#j^<6Jo7-)l_1$r#a;U?q)y)$g=o7424iv{58Qu9kuZ{ zYHE+xW!#~DgdPpKWyW`S<$=ho@|sxlohyG_CnAehqN*FFpk5Eaf(o8IFl8G|WPIri zB4&}lkr)2Aw6ur%-Uksiau&~#QS$Ti%?{Tdfm*RFMC%L$m(QWzV1_9+bqn>qE#Yh`p%rA`>neT8s7_^X~!KMj~-1mH^+pTijeKy z2;Zu@SMGE>4A~#Sj~Npc0-qe&dwDiqpLc

tThdyHNV>`DB^P?VIS5oKS)~H>$*G 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

7Td|?N(2D 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 JZ{L6NzW{CHAX@+c literal 0 HcmV?d00001 diff --git a/src/comparison_Kishimoto.py b/src/comparison_Kishimoto.py new file mode 100755 index 0000000..b8c5c5d --- /dev/null +++ b/src/comparison_Kishimoto.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python +from lib.reduction import align_data, princ_angle +from lib.deconvolve import zeropad +from matplotlib.colors import LogNorm +from os.path import join as path_join +from os import walk as path_walk +from astropy.io import fits +from re import compile as regcompile, IGNORECASE +from scipy.ndimage import shift +import numpy as np +import matplotlib.pyplot as plt + +root_dir = path_join('/home/t.barnouin/Thesis/HST') +root_dir_K = path_join(root_dir,'Kishimoto','output') +root_dir_S = path_join(root_dir,'FOC_Reduction','output') +root_dir_data_S = path_join(root_dir,'FOC_Reduction','data','NGC1068_x274020') + +data_K = {} +data_S = {} +for d,i in zip(['I','Q','U','P','PA','sI','sQ','sU','sP','sPA'],[0,1,2,5,8,(3,0,0),(3,1,1),(3,2,2),6,9]): + data_K[d] = np.loadtxt(path_join(root_dir_K,d+'.txt')) + with fits.open(path_join(root_dir_data_S,'NGC1068_K_FOC_bin10px.fits')) as f: + if not type(i) is int: + data_S[d] = np.sqrt(f[i[0]].data[i[1],i[2]]) + else: + data_S[d] = f[i].data + if i==0: + header = f[i].header + +#zeropad data to get same size of array +shape = data_S['I'].shape +for d in data_K: + data_K[d] = zeropad(data_K[d],shape) + +#shift array to get same information in same pixel +data_arr, error_ar, heads, data_msk, shifts, shifts_err = align_data(np.array([data_S['I'],data_K['I']]), [header, header], upsample_factor=10., return_shifts=True) +for d in data_K: + data_K[d] = shift(data_K[d],shifts[1],order=1,cval=0.) + +#compute pol components from shifted array +for d in [data_S, data_K]: + for i in d: + d[i][np.isnan(d[i])] = 0. + d['P'] = np.where(d['I']>0.,np.sqrt(d['Q']**2+d['U']**2)/d['I'],0.) + d['sP'] = np.where(d['I']>0.,np.sqrt((d['Q']**2*d['sQ']**2+d['U']**2*d['sU']**2)/(d['Q']**2+d['U']**2)+((d['Q']/d['I'])**2+(d['U']/d['I'])**2)*d['sI']**2)/d['I'],0.) + d['PA'] = (90./np.pi)*np.arctan2(d['U'],d['Q']) + d['SNRp'] = np.zeros(d['P'].shape) + d['SNRp'][d['sP']>0.] = d['P'][d['sP']>0.]/d['sP'][d['sP']>0.] + d['SNRi'] = np.zeros(d['I'].shape) + d['SNRi'][d['sI']>0.] = d['I'][d['sI']>0.]/d['sI'][d['sI']>0.] + d['mask'] = np.logical_and(d['SNRi']>30,d['SNRp']>5) + + d['X'], d['Y'] = np.meshgrid(np.arange(d['I'].shape[1]), np.arange(d['I'].shape[0])) + d['xy_U'], d['xy_V'] = np.where(d['mask'],d['P']*np.cos(np.pi/2.+d['PA']*np.pi/180.), np.nan), np.where(d['mask'],d['P']*np.sin(np.pi/2.+d['PA']*np.pi/180.), np.nan) + +#display both polarization maps to check consistency +fig, ax = plt.subplots() +im0 = ax.imshow(data_S['I'],norm=LogNorm(data_S['I'][data_S['I']>0].min(),data_S['I'][data_S['I']>0].max()),origin='lower',cmap='gray',label=r"$I_{STOKES}$ through my pipeline") +quiv0 = ax.quiver(data_S['X'],data_S['Y'],data_S['xy_U'],data_S['xy_V'],units='xy',angles='uv',scale=0.5,scale_units='xy',pivot='mid',headwidth=0.,headlength=0.,headaxislength=0.,width=0.1,color='b',alpha=0.75, label="PA through my pipeline") +quiv1 = ax.quiver(data_K['X'],data_K['Y'],data_K['xy_U'],data_K['xy_V'],units='xy',angles='uv',scale=0.5,scale_units='xy',pivot='mid',headwidth=0.,headlength=0.,headaxislength=0.,width=0.1,color='r',alpha=0.75, label="PA through Kishimoto's pipeline") +ax.set_title(r"$SNR_P \geq 5 \; & \; SNR_I \geq 30$") +fig.legend() +plt.show() + +#compute integrated polarization parameters on a specific cut +for d in [data_S, data_K]: + d['I_dil'] = np.sum(d['I'][d['mask']]) + d['sI_dil'] = np.sqrt(np.sum(d['sI'][d['mask']]**2)) + d['Q_dil'] = np.sum(d['Q'][d['mask']]) + d['sQ_dil'] = np.sqrt(np.sum(d['sQ'][d['mask']])**2) + d['U_dil'] = np.sum(d['U'][d['mask']]) + d['sU_dil'] = np.sqrt(np.sum(d['sU'][d['mask']])**2) + + d['P_dil'] = np.sqrt(d['Q_dil']**2+d['U_dil']**2)/d['I_dil'] + d['sP_dil'] = np.sqrt((d['Q_dil']**2*d['sQ_dil']**2+d['U_dil']**2*d['sU_dil']**2)/(d['Q_dil']**2+d['U_dil']**2)+((d['Q_dil']/d['I_dil'])**2+(d['U_dil']/d['I_dil'])**2)*d['sI_dil']**2)/d['I_dil'] + d['PA_dil'] = princ_angle((90./np.pi)*np.arctan2(d['U_dil'],d['Q_dil'])) + d['sPA_dil'] = princ_angle((90./(np.pi*(d['Q_dil']**2+d['U_dil']**2)))*np.sqrt(d['Q_dil']**2*d['sU_dil']**2+d['U_dil']**2*d['sU_dil']**2)) +print('From my pipeline :\n', "P = {0:.2f} ± {1:.2f} %\n".format(data_S['P_dil']*100.,data_S['sP_dil']*100.), "PA = {0:.2f} ± {1:.2f} °".format(data_S['PA_dil'],data_S['sPA_dil'])) +print("From Kishimoto's pipeline :\n", "P = {0:.2f} ± {1:.2f} %\n".format(data_K['P_dil']*100.,data_K['sP_dil']*100.), "PA = {0:.2f} ± {1:.2f} °".format(data_K['PA_dil'],data_K['sPA_dil'])) + +#compare different types of error +print("My pipeline : average sI/I={0:.2f} ; sQ/Q={1:.2f} ; sU/U={2:.2f} ; sP/P={3:.2f}".format(np.mean(data_S['sI'][data_S['mask']]/data_S['I'][data_S['mask']]),np.mean(np.abs(data_S['sQ'][data_S['mask']]/data_S['Q'][data_S['mask']])),np.mean(np.abs(data_S['sU'][data_S['mask']]/data_S['U'][data_S['mask']])),np.mean(data_S['sP'][data_S['mask']]/data_S['P'][data_S['mask']]))) +print("Kishimoto's pipeline : average sI/I={0:.2f} ; sQ/Q={1:.2f} ; sU/U={2:.2f} ; sP/P={3:.2f}".format(np.mean(data_K['sI'][data_K['mask']]/data_K['I'][data_K['mask']]),np.mean(np.abs(data_K['sQ'][data_K['mask']]/data_K['Q'][data_K['mask']])),np.mean(np.abs(data_K['sU'][data_K['mask']]/data_K['U'][data_K['mask']])),np.mean(data_K['sP'][data_K['mask']]/data_K['P'][data_K['mask']]))) +for d,i in zip(['I','Q','U','P','PA','sI','sQ','sU','sP','sPA'],[0,1,2,5,8,(3,0,0),(3,1,1),(3,2,2),6,9]): + data_K[d] = np.loadtxt(path_join(root_dir_K,d+'.txt')) + with fits.open(path_join(root_dir_data_S,'NGC1068_K_FOC_bin10px.fits')) as f: + if not type(i) is int: + data_S[d] = np.sqrt(f[i[0]].data[i[1],i[2]]) + else: + data_S[d] = f[i].data + if i==0: + header = f[i].header + +#from Kishimoto's pipeline : IQU_dir, IQU_shift, IQU_stat, IQU_trans +#from my pipeline : raw_bg, raw_flat, raw_psf, raw_shift, raw_wav, IQU_dir +# but errors from my pipeline are propagated all along, how to compare then ? diff --git a/src/lib/reduction.py b/src/lib/reduction.py index 2bd5d10..e7ecc3f 100755 --- a/src/lib/reduction.py +++ b/src/lib/reduction.py @@ -318,6 +318,7 @@ def crop_array(data_array, headers, error_array=None, data_mask=None, step=5, curr_wcs = deepcopy(WCS(crop_headers[i])) curr_wcs.wcs.crpix = curr_wcs.wcs.crpix - np.array([v_array[2], v_array[0]]) crop_headers[i].update(curr_wcs.to_header()) + crop_headers[i]['naxis1'], crop_headers[i]['naxis2'] = crop_array[i].shape if not data_mask is None: crop_mask = data_mask[v_array[0]:v_array[1],v_array[2]:v_array[3]] return crop_array, crop_error_array, crop_mask, crop_headers @@ -508,6 +509,11 @@ def get_error(data_array, headers, error_array=None, data_mask=None, background[i] = sub_image.sum() if (data_array[i] < 0.).any(): print(data_array[i]) + if i==0: + np.savetxt("output/s_bg.txt",error_bkg[i]) + np.savetxt("output/s_wav.txt",err_wav) + np.savetxt("output/s_psf.txt",err_psf) + np.savetxt("output/s_flat.txt",err_flat) if display: plt.rcParams.update({'font.size': 10}) @@ -770,7 +776,7 @@ def align_data(data_array, headers, error_array=None, upsample_factor=1., if error_array is None: _, error_array, headers, background = get_error(data_array, headers, return_background=True) else: - _, _, headers, background = get_error(data_array, headers, return_background=True) + _, _, headers, background = get_error(data_array, headers, error_array=error_array, return_background=True) # Crop out any null edges #(ref_data must be cropped as well) @@ -836,6 +842,9 @@ def align_data(data_array, headers, error_array=None, upsample_factor=1., error_shift = np.abs(rescaled_image[i] - shifted_image)/2. #sum quadratically the errors rescaled_error[i] = np.sqrt(rescaled_error[i]**2 + error_shift**2) + + if i==1: + np.savetxt("output/s_shift.txt",error_shift) shifts.append(shift) errors.append(error) @@ -1075,17 +1084,6 @@ def polarizer_avg(data_array, error_array, data_mask, headers, FWHM=None, err120 = np.sqrt(np.sum(err120_array**2,axis=0)) polerr_array = np.array([err0, err60, err120]) - # Update headers - for header in headers: - if header['filtnam1']=='POL0': - list_head = headers0 - elif header['filtnam1']=='POL60': - list_head = headers60 - else: - list_head = headers120 - header['exptime'] = np.sum([head['exptime'] for head in list_head])/len(list_head) - headers_array = [headers0[0], headers60[0], headers120[0]] - if not(FWHM is None) and (smoothing.lower() in ['gaussian','gauss']): # Smooth by convoluting with a gaussian each polX image. pol_array, polerr_array = smooth_data(pol_array, polerr_array, @@ -1093,6 +1091,17 @@ def polarizer_avg(data_array, error_array, data_mask, headers, FWHM=None, pol0, pol60, pol120 = pol_array err0, err60, err120 = polerr_array + # Update headers + for header in headers: + if header['filtnam1']=='POL0': + list_head = headers0 + elif header['filtnam1']=='POL60': + list_head = headers60 + elif header['filtnam1']=='POL120': + list_head = headers120 + header['exptime'] = np.sum([head['exptime'] for head in list_head])#/len(list_head) + pol_headers = [headers0[0], headers60[0], headers120[0]] + # Get image shape shape = pol0.shape @@ -1109,7 +1118,7 @@ def polarizer_avg(data_array, error_array, data_mask, headers, FWHM=None, polarizer_cov[1,1] = err60**2 polarizer_cov[2,2] = err120**2 - return polarizer_array, polarizer_cov + return polarizer_array, polarizer_cov, pol_headers def compute_Stokes(data_array, error_array, data_mask, headers, @@ -1172,7 +1181,7 @@ def compute_Stokes(data_array, error_array, data_mask, headers, # Routine for the FOC instrument if instr == 'FOC': # Get image from each polarizer and covariance matrix - pol_array, pol_cov = polarizer_avg(data_array, error_array, data_mask, + pol_array, pol_cov, pol_headers = polarizer_avg(data_array, error_array, data_mask, headers, FWHM=FWHM, scale=scale, smoothing=smoothing) pol0, pol60, pol120 = pol_array @@ -1246,6 +1255,9 @@ def compute_Stokes(data_array, error_array, data_mask, headers, s_I2_axis = np.sum([dI_dtheta[i]**2 * sigma_theta[i]**2 for i in range(len(sigma_theta))],axis=0) s_Q2_axis = np.sum([dQ_dtheta[i]**2 * sigma_theta[i]**2 for i in range(len(sigma_theta))],axis=0) s_U2_axis = np.sum([dU_dtheta[i]**2 * sigma_theta[i]**2 for i in range(len(sigma_theta))],axis=0) + np.savetxt("output/sI_dir.txt", np.sqrt(s_I2_axis)) + np.savetxt("output/sQ_dir.txt", np.sqrt(s_Q2_axis)) + np.savetxt("output/sU_dir.txt", np.sqrt(s_U2_axis)) # Add quadratically the uncertainty to the Stokes covariance matrix Stokes_cov[0,0] += s_I2_axis