From 28a71a5a6a69e4693a6bcdca6a4f226404576e8f Mon Sep 17 00:00:00 2001 From: bcolsen Date: Tue, 20 Jun 2017 14:24:32 -0600 Subject: [PATCH] Added pixel size to preferences --- diffraction_ring_profiler.py | 51 +++++++++++++++++++++++------------ examples/Au_Sim.tif | Bin 869392 -> 0 bytes profile.py | 4 +-- ring_pattern.py | 6 ++--- 4 files changed, 39 insertions(+), 22 deletions(-) delete mode 100644 examples/Au_Sim.tif diff --git a/diffraction_ring_profiler.py b/diffraction_ring_profiler.py index d3fcc7d..06d6c39 100755 --- a/diffraction_ring_profiler.py +++ b/diffraction_ring_profiler.py @@ -666,7 +666,7 @@ def __init__(self, filename = None): #log_pattern = log(1+a*self.pattern)#/log(1+a*self.pattern).max()*255 - self.img = self.axes.imshow(self.pattern, cmap='gray', aspect='equal') + self.img = self.axes.imshow(self.pattern, cmap='gray', aspect='equal', interpolation='bicubic') #axi.set_xlim(0, size[1]) #axi.set_ylim(0, size[0]) #canvas = axi.figure.canvas @@ -977,36 +977,58 @@ def __init__(self, parent, id, title): self.parent = parent - wx.Dialog.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(350, 350)) + wx.Dialog.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(350, 450)) wx.StaticText(self, -1, 'Pattern Properties', (20,20)) wx.StaticText(self, -1, 'Accelerating Voltage (kV): ', (20, 80)) #wx.StaticText(self, -1, 'Wavelength (m): ', (20, 130)) wx.StaticText(self, -1, 'Camera Length (cm): ', (20, 180)) wx.StaticText(self, -1, 'Resolution (PPI): ', (20, 230)) + wx.StaticText(self, -1, 'Pixel Size (1/Å): ', (20, 325)) wavelen_btn = wx.Button(self, 3, 'Wavelength (m):', (20, 125)) - self.wavelen_text = wx.StaticText(self, -1, '', (200, 130)) - self.accv_sc = wx.SpinCtrl(self, -1, '', (200, 75), (60, -1)) + self.wavelen_text = wx.StaticText(self, -1, '', (230, 130)) + + self.accv_sc = wx.SpinCtrl(self, -1, '', (230, 75), (80, -1)) self.accv_sc.SetRange(1, 500) self.accv_sc.SetValue(self.parent.accv) - self.camlen_sc = wx.SpinCtrl(self, -1, '', (200, 175), (60, -1)) + self.camlen_sc = wx.SpinCtrl(self, -1, '', (230, 175), (80, -1)) self.camlen_sc.SetRange(1, 5000) self.camlen_sc.SetValue(self.parent.camlen) - self.imgcal_tc = wx.TextCtrl(self, -1, '', (200, 225), (60, -1)) + self.imgcal_tc = wx.TextCtrl(self, -1, '', (230, 225), (80, -1)) imagecal_text = '%.2f' % (self.parent.imgcal) self.imgcal_tc.SetValue(imagecal_text) + + self.pixel_size_tc = wx.TextCtrl(self, -1, '', (230, 325), (80, -1)) + print(self.parent.pixel_size) + pixel_size_text = '%.3g' % (self.parent.pixel_size*10**-10) + self.pixel_size_tc.SetValue(pixel_size_text) + + cal_btn = wx.Button(self, 4, 'Calculate Pixel Size', (100, 275)) - set_btn = wx.Button(self, 1, 'Set', (70, 275)) + set_btn = wx.Button(self, 1, 'Set Pixel Size', (70, 390)) set_btn.SetFocus() - clear_btn = wx.Button(self, 2, 'Close', (185, 275)) + clear_btn = wx.Button(self, 2, 'Close', (185, 390)) self.Bind(wx.EVT_BUTTON, self.OnSet, id=1) self.Bind(wx.EVT_BUTTON, self.OnClose, id=2) self.Bind(wx.EVT_BUTTON, self.OnWavelen, id=3) + self.Bind(wx.EVT_BUTTON, self.OnCalPxSize, id=4) self.Bind(wx.EVT_CLOSE, self.OnClose) + + def OnCalPxSize(self, event): + self.parent.camlen = self.camlen_sc.GetValue() + self.parent.accv = self.accv_sc.GetValue() + accvm = self.parent.accv * 1000 + self.parent.wavelen = con.h/(sqrt(2 * con.m_e * con.e * accvm)) * 1/(sqrt(1 + (con.e * accvm)/(2 * con.m_e * con.c**2))) + self.parent.imgcal = float(self.imgcal_tc.GetValue()) + + self.parent.PixelSize() + print(self.parent.pixel_size) + pixel_size_text = '%.3g' % (self.parent.pixel_size*10**-10) + self.pixel_size_tc.SetValue(pixel_size_text) def OnWavelen(self, event): self.parent.accv = self.accv_sc.GetValue() * 1000 @@ -1016,18 +1038,13 @@ def OnWavelen(self, event): self.wavelen_text.SetLabel(wavelen_label) def OnSet(self, event): - + pixel_size = float(self.pixel_size_tc.GetValue()) + pixel_size *= 10**10 + self.parent.pixel_size = pixel_size + print(self.parent.pixel_size) circles = self.parent.toolbar.circles lines = self.parent.toolbar.lines - self.parent.camlen = self.camlen_sc.GetValue() - self.parent.accv = self.accv_sc.GetValue() - accvm = self.parent.accv * 1000 - self.parent.wavelen = con.h/(sqrt(2 * con.m_e * con.e * accvm)) * 1/(sqrt(1 + (con.e * accvm)/(2 * con.m_e * con.c**2))) - self.parent.imgcal = float(self.imgcal_tc.GetValue()) - - self.parent.PixelSize() - del self.parent.axes.texts[-len(circles)-len(lines):] for circle in circles: diff --git a/examples/Au_Sim.tif b/examples/Au_Sim.tif deleted file mode 100644 index 142dab0ece3129887bc01da959137315d198fd9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869392 zcmeHw&+0B&mesB5wk^a0l~O@{0CmtM_b{AN16B5Zu!iA=3yXb<-~8sohY$E~-H1qPxVke&pBy`v1OiRd(d%ynr>&8{ZrEkCeR&kf{mY@Fgr$!6!-@iXw zc=ztz`K0d57him#yAgMN{`u$od*8l&yZ=>v{Ml!p4c+_IS6}VN|Kuk>+5b9vj4~A7 z(k%^1eF^6h4$J2dp<}vXjwJ8?0MbRoyWA1*U0KJJbB|PEFrN@4q}OFmMWm8jC@O$b zw4%TiYEf}e6for?DxfHaM8!c-z>PFffw`XjNGj{uy}I*qEu^!bcGrW|@n8FlzKra?8ogAfdi{hzhhR@;eo1Qy4oH(V{}FD3H8mKzor;5~fTHjc73Yu}XAYubmZIp^ zQ6mJ!rDT>+cqqBWg|xjsnMxeyn1v8ap%MKmgc!l z0Ze>Fg%0F{qJR-EMKQGZaZnU+!y+nlrPr+>9m3DD@2>sE~p z*k^YQ`S#4ntn+q4cKN(HD}2sd0Rejo+0%F~4w)R%rALYiT{74e#d+_;apMC)u}!gG zSz*z2>t%1#cnp_>UKuBfxcx!G_^;Zy{Xw9fnm67L0b@GZ^LZ|$nPk!>Nr;MkG<@IE zB}IiI6WkRAd?=_W;8nh&z@(XNif(}@(&O@$ z%&Nb1KzGtevqqBF`OLds83AL;854dM@|pC~SaQMeQYPKo5rJ+cS z%Ue+Im*4&xIw8XS&RpFDl$$s7PK)C<=?HIKQ6>|BJLK z4&VE@eVZaWbJEJ(F%S!>TFBfn1eziOmQ=Kqz(nNJ*rukaa6~@;g$j$JK;V@{#eQ9G z(56VMvOR8(Eg}!kZ5g0{4otElC81>M1d>ZGpMFrXvQ#uunV6G)9 zpeW9wqDY(KuqbR(8~_pinpWCEf4ale6sjieu1g$11Y8hMr>MFpT-??fNn@USi;Da& zld?@Ql<*VZrbsKX4Uqg9x2bgpU{2kQYOdBz$GeDt4gpJ|s;fiis{O7s{^^Pedn`j1 zZtz0IP`ro1mu(8KPKDRkNa1sSo8sf2iw8^iUJXNDGHeK5)~ERrdUN$ zU12Jcp4eDts5$A}T@^1;X?a z6)uVb{#f3ouqX;l9bH_}_8pT}$BODtc8;DeZR)?q{49;hT<3Kutt+2dk>>DHd+!6W zCx7(=FH|@Jp4_RhC<;U!Dk{7b1^jdo6&6JSA1tCGw6a2tJC=ry40Xio==Lh6+L9qC ziYb!@#WKaLF1>Z7G$p_sc4~`?PhTfZ{nx}CMMbirK$2KQMW~{HZ(gDzUs1sMCEm}> zDOfuf={Qiww{~xfTey6V7xZ}*Kj%WHOLAR7O^Gyzqq?FZIreo$g+);S?C2~@j6Xk@mvH-;lQ#?JS(u~ebqTMitWn2Y#^*3q zDN(WXmq{(60*c}+Dr$b|!=Bqi8y}eNAS#TC!ndq^t=X}?w4nPW1$Mo(_BtmIkKG#w z{yLFL7EzJ;x)PH(<2xpSub?QZi3%?allMNLD2$@w9JrULxKo?Lq9}l{V@)}lIxoG~ z83otrKB;**JkbsxtPk*sgQ5f!g*GMC6IhF)!fR!Xih^y5%Y``fC@{t%D!dBH%g$xU zUMInFqox!e&_<^yHGco}Eag}oXI>T}MJ*^QE`OmDxU1Wy$o%Su3B|arzV1N5X$t1l`8M&c?P-XEiEi9u>em5NQ5uQ@ z%+HDh9;2vmSytoT$JqxjQQ@U1;Gtbq;Qh>@S2P{l6euNiHK}hrFKf`5Q8rT$W{~GW zX18ZwkbRnc1%yY-WV8&YWKlGmm3pDVckd%}y)23XexCO}yc7kD>qN!ppMLfj+7$(? z85M^M28_&ilJ`;fQ3Uu zvoWKrrTDbGqQ%Ya+H zP?4!90KP?3uuXB9y^gO^T-raMj4rhEjPf%>1U34pO72GT$j4JDc~Va2i@-|i)t$RiD@O~!j*x#lY?NMZkis%w+=TH0U5H*eR zUVG{(S8w+5b_#~oCcVd+juzKY|{e(hw<) zGM>bT%rWF+#Eq*zTp}=e5t~ad z{ZP>jm2>9mM-w316qePj+@{dQb#FxxT}?X7an}(43^AM9rHC7sexO7E@|rf+O@pD* z8!GC|Oo*nzBBEl^KTmPLHpL;g?QIH6j{?p(wkg=1I4o}3uj@WU(ja=Zi55+X+lY$L zd~1k`%)idrK~cb;xorycDC}*DvU1`w zD=tsUN$m3W{F945Eb@Wkj4P(fP(4Cd6kO#{RxBba92G@cr-E$?NwHY=K8%V2g%esk zlJL)ChDc_JzRq(cpIPw%kqi;1J0q}M+6-0YP`#hQi8vEYj15u2y^r>S`o2wp9!04( zg}p}s^kylF=&ETa#h;52J+6qNMIk5*Y=y)O84?=)u zLlIad!6+)8rNPIYk6-=j*;TeFo*{$tzM^8TqChzAZ3^@#zwrTohD1f^{$L{q z8kgh^&mned%ou%X6}FGYf%ZcYSS8Jd%2v(>q1bN5LkY8?DBu7^#kLBE17Ae}<8wuY zyP`luaz%l`2T?JqC=RPL_g6WA4Dr&epjILIS@>{XcLbJ5xuN2fbAmgVmj*+dx(!i5 zMRB<*(Eu33^CHP=|ayhLF}Oj(D+0I>ZjjO3Co!w z2lF`Q{J8VMy^rx#^i>p?-$hh>{I^KI_+mU7|BVm$AQu&f9tG|lYEvlUjkpD*A>@rA zE{brqYqLI|cSGQS)e)$lgz`d`lSA67g^G$s6gi!Wm-^Djr@zVl{(!lQqJT{=MX^eo z;sE2UU*(J;XQ3&v)Ti+&uyE2@2oz69c{$4|A_rSmhz&O6GhI-hAN8bdmoN} z@G56HFpFAL)c^%zLBNr7=6pM-qIZMcyCoO^Z6M?t)zw(#}ltQ3#e#%Q*P8T`g zhl+}4A)rl>)2U#a;@J`mo!7M~4m}FYXcrZ7MSO#&o5^KI=Du49z zjg;2zfk4@em6y4YH*(f%ilRVhY*SpWuUb*S+IjE8Yb zovi$cFD`0Yz5xPdQ&(Q>LiWg6tSO=*M^OO4wb~R=6lzg%Rul-|MO3&b3OF;pO_5Vj zidlq&AZHkb50+cXa3KA6!MS-B$rZ}&xdgBA8&Z5FaQNXfJR8Ucz*Y|NoUi(5ac{WkR zd9ZGTS=uB5MGz>M;X)pe6H7GIA9p^!{4!#ehNxIbQ2-gXDMr)dpeS%V+Y}EBm+nrC zrUAzjf#ncbT2vH4J5EvDLsTrGDA=ahS5wVDb+xFRsM!$SFE@{gfFlA06JFk_aKyo4 zDo#{9^J<|s1r$Y&sQCCL(x3kH8Dj18R1|xB3MvZ9iTwicmuaPrqC%}GkP2*5?CYV9q7c?N=t9C6`xrxy!Kk73X`BeuN1#*{ z2q{8HI0@iS5fuq>d5MYyS22ZJRGbwBtkr2#WcDZ!cqv8E%^V?DbnSQzC`F`RLD3Eo zP#{pM7KB6rQK5*`{gx?;VxcyLJK&cFEsEkSD(WZ-1e+-;4vGS^Px<4S!qR4U;<6Ta zk_c2lpqi+VU?OB5i7CsNDWbySu<+iOZBw`?3V`hLHbthQfX@d}k*_F(MO{ZufH_N% zr?9#?j0i*{P^vV9j3MNoQ0Sm2B18qgMmqPKq%W%|kS#8vf{J3a?oiH>iWZW?=J5D9MxDJT>)7>`gCFgsUKz=4HCg?i%yVRGXGAUu8!Jqn!6Y*Ps3 zgoGJ>8&Kf?mSW4mIBA*)7!asaCg2STbx2sqfQR(fTZ)Q>6b05vEh>T(1zcjALRvq+ z`HiHIg`6OtR6Vi|PpU)UjYJ>^fjY$^BoGM~MMHN>MFG$j5*3b$0)cbm<54m>Jqlq7 zOFm*mS32z1VaSAFIRz20BT%Pggd8GdBs($<3%3*%YbgpxQBg-xAmuXO&pd2=Kv6`C z3KXxTeuY%fs8E+nb-2+b92y}4ISAA#90`*MNhun-2vITjZ3-v~yQs+dQ&(7AUqw+z zRAed&z<3rFp@l;^5ehGj6M-TKEGH_a;})SP5Y%*0VFxxxR9F;6(AyMzm7<+ILOCJ% zSka!yezguC+GAPN!hiGlSv2;0xLu@(z$X$)k+4(rx+#@+i3ePPTtr^ky4Vdijbf}7b`+hz+s9C;i@?* z3d~qXR7_M9z#-^W3du(RN#P4~Lp`hr2de$AeB=4~KGEA!&P>E1dg>wtCE*qcM@7RG zAu6aSgsY}j6tK^Yj}7F6Hie{AB_+T49CT2G{eq&)H+y($=Q}Vo<67Phg*JC^k+PC7 zjD)E|!Gxlqs5m2xS1IbhO>uC$PLBeP8QT<}efHTQy2h{3ib7JPD0WG`H=?j#D#CmA zK;~Mw$8-4}QOwPR{p=NrOGq*jzS@W8eoRGi3F&f*0#Vcv6-GsYSmdJOtSEdpJ|q=N zIdNG;3!U5^!3+5;clF-U$#JlZEFvnpAxQYDYs5H!qT&o-nxateeQ@JrTeY*O*e)3l zB;`ptVFY>B?b~w}2eW)gp7#Yqc0`z>LI@@m#U)T_qT+J)?nx?&4Wb}LA(Rsp6vYMw z54s5OsS1b)LN`w?2S8L@o=-c;y^l+%KYaLbdEV=!{ZC!NljRfze4e%O@%g8p{qoJ- z_}F`*J{BqpwSAWxr&F9u6gft=$7s%UOUyz{Mwe-N#YsNGNVsb>@S*W+Q=H*~qF7E; z%u*CU51L|+;Y39NH|(!cNJ>&t+IvjgkEfHHdqfci`OuW0N|YohJ;qG0I|=hh7)&0r zVq~VMK#ziLifxVfD#ZrH{y_e6Chqdx_&_ms>rqnF`*7Tkr_-8yM7{?3h}7Xp+$6Y7 zuf8t-NJvZ)sd`MNqJWdpiUL#E_db^EQ6TDBZHhyW0-hM#6mt~?{BQqsE4qEV@#=I! zGx{HTJD-Vmc!^;b!?`sm;h*luqHc`F0hyv=2}J=smlGAU6a}z4hzg^kfI+#aaO_b? z%1~0y#$s&T4l0|=W)0uwUV1zS=lXE7*$L^h1)W}o5*CuM*|Pxc=Q9-ryp0wWAO9`V zufI0JLPa45aIT_o5fzeFp`?)IppA~4&SRqv=ZxorFBE6OdkOFKV(fB}gwQTS^E#O+ zDxwtyFnK{mfv9J-Db9+**rt&8C=j)mqUe@Vw~D(KECbk`IH1Re-2sreUkUXY+qv~9 z;Ucyv&a0+AV^{%27kzxQ&aTvXT<6soR;7fIB+PaQ%JEnCHU<9euxI~#7~2%v!tom)8x;G4Qi=k_E2-bT|BlCViOVq% zyD2`@>=+s?a0&JRPOMD{Dcwv_0QqN%0+*sig}qI&VvoYU@$tnMU+hapcs#L30S^yt z3Zc)BVUnVwoEU;MVlW?M5vZzdayd5W=8B5Vjb{fEetUMW{d`25;+a?V6$L!6EGqEl zxa<5y?t`KLbQ52tc$RYK^C-7&#m$uy6Zz^4*OW7Scuj#_GAWk^D4{|p7HOBABorrE zYuy-kMFBUSwJD$|>WhlXiUQcyQ510IAS#TC0tVF^AGlZe)0Gpj)2&(IT#8{6nM&cU z`z?z;u>Ozj#~sFKgNrVcBPMIJM$BhqR3i&DuOez-@?utTEq(WFmhrOnpDDnxn=3}~>LZ#d; zvXouW+y_jo+%8{DR20BDLR36kzWSmfK~Vr4-P;uB9tBL<+Z2jj56ruYqL36_n8Ge9s3?Rb=DYDB-}Qid?TwGFIPVst5P{KQFCr&0Kc(hB zD@PZ-&iG`kGSgr#$g}FY%VS+8jKeLnO%WFbEH9xb;HR!laqdyTl>HkYiXH{#^;Hxw zC>IqCMS&vf)={?-;f(vwEZT7oq-`+mIr4Zuww>YCO9axOOG}2!Ff&h1sqQY1Nysn= zr8GqW|3ljpE{cL}3Q3xkRTORKyJgtEU3V3PGlg?>-m34)d4i-p5Y;#=abpgQIVmw6 z@L2`kWwY+bt2pR zJmxOrdfAiFfJZ0H^o5&J?_Fl=a$^u~R1_Pqd^vN2qH#b)(EtaRKrd4mrtOv2)zGIy z^rOuSgj?DP1wS-xrZ2~ok}s<$upGXkf*T+04A-?O%JwJ_?Ay0*+ab5Fs(Tb&5#BAj zwqv@hloLAKLZ4_lmtO6z&?UINsL0QjF28jdGRS9NMFA(Di3)Cf030tx0aNyk55=wr z=Jjn;$Q1>q-v4y#rCV`(Yc9u>6ABnZA7l!DUi_B0<)EnWO|34!bs5svpUqmPq6ifg ze3fEbQ{h1cMFCe8qM}Y6~$KjUE$p=w9S;)0mvkuPrRIO*a_nQ zpr=(M5MELs5VTA|Nu>zT_m(Ln(B--=Tl#|Vu!bH*PMZRXB2-iu6$Q{(NKwGs*L;KT-RmGAcu1l1)Qg%D7EoX;Z=&ET@MsU zyGFVt=3YUR6GBLXKJyA^=P)$_5er9Ap*=kwX1%XnSR3F)#6#3L)DR9ZX?)2{d0Fp$(F`)>!uc>?1g@!LNp3Dq26$OCu6%|ty1)?yDin6;N z2<^ocMZ1=}W!1i2aW$DY6dn%U;!Es!?zlgChQi_CI0W1m*Ejd#0vB4&XNE5O-JnhJ zOi^G_xbfk&@nP>#U^x`u`0(vfzz5;RN28*LyrQW<-AJqsMhm; z+tqX)Z#Nfu;0S6fnq*kIMqVt_L?h_Q+UvJ-Xt2 zKau@7nJDZIH!M(2G{E5{Ap#T?&wxtiiZ&CXM{(meMdcm^(xYsfBBDouc&ERdNk#FD zl;X})PQ+pRYL+P~E?2yiqJW1~6qn1?J&9K-jBis=QFKA}-Sxn9I#JP<<=rSo2P9L( zsC)A9j(gU=PZN0v99aqh$24$E&gl>(Ge(;aZ>%V=(3RU1WfcW*i)d3!?@=HwDvC_@ z^J-8yK1VXc=Ufp8I3|Nvenx~jWV4i_fafy7wsHSP?}5Pkh@H^%X@j zIRN3HA1}Ige1Zf;O0&rbIHrVGmL?-`o-UI&+C2*RMn!R6Ajuiyt_P-wRuq^*Cn~5Y zwgl*w&oT4=OUTR8*Ns+v7*2#$F(V_C`OBD z`o@Q%N71gGQ3TrKK?}*u(Dp}t)r+O^;86R(8}E&PS8jOa>RhywsiVt^Hx?CfiUKKQ z6csPkqX1kL6ve2h=+=%SlTc3V!Ss4$>}~S+P6&8q$ZbSL+TwOuk%~gM7IsAuEh==o z9zdhW#)t2F6o_j`QFIGOmp0Gtx`CqbB4@9M#WSdR{vHT;<%w6`PDC}CJ=)wzMWM?C zqoTm1R1|IG4~hbVGyigCyK35=k6ukCgi-f|<6W59>oFnpnZuSwz$IH;@^(6mnHrcGPDoJN z#<&nN9t|!}hs`Sr22E>Tf5z&T%{qBvuMGnqVa>45#D z3ma2T*cak8Ex2TkOAgP)Ka)wipSkiy1$z`ozvwoFSC0a&zI*r1STCz6if&KOh{NIb zOddE)?eeP&6}vnXT*9G|6%laBAD2v?h+Za>bV+iGqHq)ye3jxdlXZ#$ri#2u;rkv1 z;*xybqbt8Jq1K(uBmtd=?Ylt2b{=+l9JKx9)!QRr&mxy(o{MuPpR{>0Ur_*gM@0c^ z&qM`ZrBEb!O+|q~5?;=1SBe76#x0o)&~QV2$wf}sp9O0FdE;#mKo;2($)3-1@yz6t zE>Gr*3Mz`|T@R$Uu1!%yQNVxSHbto(1*sDX91W= zDO3~@tIU@(hfuBmDn++UhT?4xURq8dG&}dYJObJv^Xf|>V9zLfR?h`IlU3Smnct%T z@{Vna6?Z*=Ky;g;PLBe?Qc>*LCbRbU^ST_{i5KK==YN-2Xyi5sxFnT5wMLE)}@@-z~q4=0`|PJ=eA=w z3R7v^(q+q~6$OybR}`4kC@QEZ+9i{zD7ppGc6I1#TGbDEB^+$0Ts!RxUFEPBM8KY1 z_6(m0dnUKEIg^S)kp{&T1tO}m@iBeZ186i}&TLnQA~zbhWLAB{4c#Rp--7V%oUiko zcfA4v_5?F#_*{@PxuwmS`HBL_`)+((E+xM}dI?MWWSw1)v^GV%I@)jzUCk`{A;%91qQL6Ji3;{8-Q}=6u(^xB;0w(-sxCR1{b^zMMIly|?U90ECI6BD2g# zm%BaQNUcUbQOHYU`mP6DrJ|6p*EZ6~ zt43De+~5Hb7)8LCd&bNk_11Ab6@?3!%P9&(y~@j(Q{K!3J~?0aa7n+mk+d3byD@sz zNUBCkAN7{wiNFB?V+I=Y|KLp8uW4-4?olA#8DeAmO0j#FC zDcGYJjDRH%jU_M<_B76+qVQeiTlOdb(Jf!joYkX9t8U-iw#W&1 zVqtRMKxpli5isVVu?l7(pT;@&Rus#TLVVRIw-AdPw2qJoNIXx)vw9+)e-O+iJmEhrVm21WP4!lEE>BZqh0 z;{YNcN5GhnmRgWI=|1u`6$M~)Y*Q@Pqd@pn6pd2yeKQji<%^26x^BRzxMX2b$_WMF zyd@L?OHNv9AvCDA@igWs)uR9=ODhWaZ){UgQ8en}tSH{TecKq{y+lRPg$M(T6l!5_ ziF+JF1V#}s=A^MAM!j_zPeoyeF~3IvpQ$K>3#WK96PC}SLO9*!uw+G%R@9fls!v+@ z(@5QFpLrt@Xd__BOiM+yy$ZdW!$0jF1p-|6Rf=bd0zt+7ohvE|c~K}t1r>!HUYC&| zPYZuqc-zH)8X*Fg2v{=HSQMB3B%I7q6bPg(D%MpL2<@4uprRN}VE##pQN+&U(<=Hr zwfYR@gc>^DSR4VPs3;!Y*}XLWsir8FewCtlj{<4NuX}8@#$AsMif0E@6wi?1`PC7i zq6k{SQi=jGQc(mg^usI_#Re}G#RkRYfw8-5VeCtPc#;S>B4Ei+V`(@>Avg7!JqqCS z%8CNv^Xnds8d>)}inMZWpf`Gn4T@33IDRbzjG|(#VBu{J3$aJxn;6A6KG>t!mOHaY zkyFcCXf6j-6fQ8*NLd7^D1w%zl&Dy`M}Y;Rq7Y{3OMTblr4$8-+QQYs{NXSnU_`)@ zs206#bX$FU8VkLeqQHvq>mEaC$?tj$!F3*-R?Fw9b!RMuNjagzoOk6TV98ZWjpRp) z8Pizku8IN}@(ZMg)a9c`p$dMZl7)mKquL(`9@b z5tULDfNtrH5AJ#hlV7*%vEs{_%gG6>poJ|hEGYZzlo@1S}bAsT75)_FHneh>F6# zQk#WaDhfo$S1Gn79zDpZ;!&>}<1IXC;pc`+yhH?o5U^ydrBZ^zX`9XAqPC)dhwJ_= zZoWrxPB6Yov0;+-9>q4}5(gHZwD9v1;LypNAz;Z^OQlSKF-K7#w6>_AqL8nC@g4;N zp`zGUlZs-4Vt=6KNeeme9pEt$$V5P$x9UpCjBY;{6~!J6#qn}I3dG1io7q_C<=)Ip zE8zxcLzh63YMxXx^N@!eOay!pQ0J|sSbRf}Tgzc2_9)~l(j8g6O~D?;wt@*gik$l0 zBC;Q-y1T1-LsTZ}wmK$>z>8^?b$S>EXV2`3vFYHk?z;U@`VMq%z zyEsoHL_mRnC2uYDqHxuI3l)VCLn?{`fb3ChfUrlgL9rdE8PY<_+w43b0#guBXRo?m zri6(}UroDb zDvAvdDvAw?$AN_&)tr3rfxi-gd;~1nYpI(2NOKeg;=1dr6jT(4q@|+R0HLDTpm-cu zxY5GN2RHaD5lBYBlD(FyNe&a!QBfE%r=mCjNJX&$60IoGig%01c%bG+3n3eQ=Iunl z1p##qtEUSf|zu{4*r@Y|!8u$)ic{@?Y;soXQL>N9F?RI{<#Ro+Mhd=XIR zu)1n|{g+$I;Uy{x`HHkhQc<+=*{)JiY)}+AP;;Z2jf(_MH;8~bht*Xx3v((83-a9c zIH1Q}j|~v+dTdZU4%FPJX5)hc{FMmILO`9v>Z+L)DHVkUc`AwndP^$`#In#Ixyq^B z!}_X!wGgA4jn&@rMk3&gfF*}5wc{Iw#99t7ao0n#7LqZy-1R`<{0Ge?tG^$UQ@Q&Y zEyosCw6L+oXWmN$yb!SDu%&jq{FmFw;Uy{x`HHkh8WjbM^AB-15N3~}0gmO8niVZn zY;lTX)S0ZV9bf;2)~G0iKwS>Y-}QhSMo~dUak-R_lT;K9a4eV9tf=N;i?_U& z2)HAl&SZ7%xQ8GyNJSw*sWB#BR8UbgmScbE-e32~soXuDmSZ(5s(IMrE$<})?g*$e zSzSBsAxI47@KUK=55U5I+C!2Xx-m+MDvASo zR1_N^R1^;=)O@IB;B5(bKm_U_pw4G?1x<;aioyar6~zHPDvAvdDvAdbYCcpm@U{dz zAOdv|Q0KF{f~LeyMPY%RisFDC6~zV!6~zMzH6N-Ocv}J<5P>=fsPkD}K~rLpYxIONoqBx*OMX>=w zMe%?_&4+3R-j;v|Z3L(&+W7chRp+z1f_(iKTBD*60(CizisAqZ6~zV!6~zMzH6N-O zcv}Jp*1QBAyAjYs3;DwP*H4vP*FUfQ1hXhfwv{#0THN!fI6Sm6*MJw zDhdniR1^pFs3+MDvASoR1_N^R1^;= z)O@IB;B5(bKm_U_pw4G?1x<;aioyar6~zHPDvAvdDvAdbYCcpm@U{dzAOdv|Q0KF{ zf~LeyMPY%RisFDC6~zV!6~zMzH6N-Ocv}J<5P>=fsPkD}K~rL=wMe%?_&4+3R-j;v|M4%1= z>U>sL(3IGzC@ip3Q5?{tqSyeTqIf`|=0i0DZ%e=fB2Whbbv~;rXiDr<6c*U2C=TdR zQEY%vQ9Piq@S&Q7w^iT)5vYKGC6g@`lpi}4g#~jeiUWF76dNE^6dM$3O0@9sHaic9 zz;p!EnXImzSs_zVSdgcpIG{&Gu>nFwu|c6`MKup^Q}cibR6szT$?Dpf6*U!w1$iop z1A0^x8z58^8x(3*RP*pQH4lhD1q9TYtgf9|QBzS^kf)+Jphrcq0TQPuFhx$;Zm}2- z)U2rHVWY#moe20Mpw47To0y8EE#(ghrFet*Z`rT*q~6eqMC=dsd+#IDj=ZFWOeOKiJFSS z0(-ukfVW?N{k6sCZ@>N4a(nk)DvAvvDvAvX3oELrc$=LEL|`rgmK?U!PJYx>6c)_$ z6@^hwAXqAj#)^Ob`RDtqZ{NP%|2le1MX@1fVMPlYZw~N)2uwu4lEaqT$q$)|!h-p7 zilU~Rz!JQF|NgKL@7}#ToEiP~i!Z(yy@iTm6fyaDH8EP)SneK25`j1b)H$rKnz&fn zmZ>P(__VK5Q5^7DddmZ`P*EHf)bUp}H>%m#(RrF80u}_+IjpW4i?^10sVFSyQBfSw zTUt>pBqsoSPURlf*Yc~H8`W%V@s{@z0Y?PXIjpW4N9Tu3G z8z7-CQDByw%H6`TAE>!e&Bk`0X@Lm1AfV1+b=A1ItuT_qOH>q!rMbMt_-1C!_bB)h z#pPOePv#VF*A3wS3pc6>S?C*w5rH@aEZJ+Rnz)FbSx#dlDvD=IFnXSfLWtPCU(0-e zkXFA!%-h2(+-TwCwpYAL1fmhJWUr-aqT@Q-Ph%u1iZl4SGgK5p+^8soKxGb7)1!rx zGXvyYMBt2oI(yaia`qwTOpc-`B_{wZ-=m1jF1|;xVH^D(1t!X=-z_5hftn%JoNV`* z7Knfm0d@AO>&57>`t}?~qM}eQ(D_F8D9)H%o?(yT5|+6qEexrq<+&kq_7_LMlDC$6 znF9L@DhkI21(uB8^*H1$dlVZW>``n`YzG#Gv@rAL01t>jG6I&owbV;;n2+hGD2%XE zQ5*oIqSyeTqS&C=4#1FVlC&`M<^T_fKr#aAytNcda*W$_R1_N&ii3PP0VlcZAzZ0f z*!2JuIVCK_Tr!M`LV^;<+y()QqF4)rG%hOj9);tsN4}yk$_eBr{~kr7NZ0zCnU6ry zs`}Dwak*;YNee%_I8P%)U6eVsQm za|(GVQQLzpY-wTXwpYAL1bh*&h6wl-Y zR^h{k4?}AqAIu(w5Uc5mB27*JkhEGBf-f0n;Y=zD3BnvR7XeF_TB>7K)M+gAYKkIG zP9RmND1`MwMIi)g)-VfaTDW>vyqx#d5U^yar8;KeoTDg8$q7L1xa;w(M?pm~n$i(( zX1~EuQxuMX=f6i$Tv6y66j%|yM`2IPw2HR7y0^eK#U2eF-va@oqF51x z9R6v`3E-Ce2Qw2I6bLHr&CFXWiU>J@Rd}@?1wzg#YE0z#V^I`v!$RGTQP30-*bp%0 zq_HA4H!=^>n5V5MlH~*tPEZtaasvKSQ3%UKAtzvY={Gase_CA&S3x+;LZL?X7JA5G zL_m&!B_}PlAotLHWE%5OQTVPM6@?H_g`zmi3FF_)Onx&H$fVV^a215ZEG!E4wh*|` zLk=SXLIjKnX{iOFhY`cln1_nOarumL0-i*F*F*OnMZ~U$i=r^D9TkNTKqHG%Q3!G7 zuml8**=VeVga9w6cuhs&xa9#l}kmjK_NLXa;b&J zCGK$y5s)BY%tK=pNIZ-fQ$$fD%LyRqs3_2&SguDwMbWM%_9)u;gkA-gTIkfs(Uud4C0S8m%folq<8nEuC@x`XoV-*Njq$=u zR1`v>N)0oTs*%!5K|yEMLco}N#>}6HRS`vzEGGcCqnv=X{9O;@mIr*Ux$6<3C=_x6 z_}t??3Ivi?Gvf`#BkmXY3qnBzdF%y!~|$uxFY*+h?Jj$uLwD zzN?G|Me!bmPEnlY1aQ0YS4Z1*;hQs=_3rCAtQl$6&hzdO(cmo+FlL%D&*ws#$uMo^ zWRGGr6O3{K(?!3T>7^*_ast7Y-SvQP?a~-cjK=uPdT+R)yJTltBh~BN=3Os^fIY|T zc|H;FG=}MN=F*Dd*_H=ZHtszNqoRnG6NtTzqEN^Q`0x8>=CfT7Ow_FojPd$OD|s)6 z_jZhA3%0it{@x!R6M;Pf_5?F#_}-cP<4kU8b7sDr0NRd!jN+N1h?5iWpNc|WG73cj zIYC7sM>uDsoo}fqa#rd!XR&9OJ;Ns=|H_KOQBGh5sVFYfc1~eV3hb?X=(akXK(50efEAb9*lGY24Cf%lsY%6-D%}hfYqQBF=AS+TWwl z^(gk``S$JG{ja0PZ8-sJ-5MF4u`xca@Ebm;FWFfa%x@=uwg0^FmI$~cl|8p7Vw=e- zZMKA*SXxn_L6P61Fm8Du@u(=;)#uxzprUA_J#^Jhyi^oJfOBvc0eeQ-v%2eK=zvm+ zA~e!V-U zindEbSDz`0I5`3L?y4xxast7=!dFMPl%t~9ppYE6urZzsE{_I@!yI!P1iaG5C5Pvt zT1Qdj%LyRw*r0&56%|Evg95PVdK70xVV4tdW_pi8*r0%`-JTxCIR0c(fuq}dQ!a!| zMX`sJ#}Wiwa>gZlCEmu3$>fkOJyKEV7TVaOprYu)et3_Jhqsxj^6uM+EDhf0x zqI(oKQxrxyfmI&b^}zUU?dUS+@-A>fCM{h0;BwN7qP-p&EqDFnQ7!z)+kf|E=g zT~?%`(B*?&QRwEC-=$L&5e*9XZ0}JR6$Ru(Wkmsqs3`Wiji-j!gJW-&$EzdYm>9QF z6q#$@^}>ld=tPiGv@-B%oSZGys@H)mJ`MvMOj4=Atz9D ziXH_O#ayy-ncb1PeV-{V(a}f_0=`S{n3Fl-H)biNC?F@OC>o2^xMY+QuuMhKfcJ69 zS5c@N6c1;*;=CKq(12v381ij&up@!{K3PTs;rJ;C_%6C*HcmlfKWQ>cbUE+_asu$K z_|JL3?Px`Tmnd}aQQWmhK}E6WqReA(xFe1GK3_6%;9Lp>e3#od6&2z5-a>C+)F^9Jw-kYjDe@l0lhF7I`j zGYB!?9>p_75h^EujPZ*eWw$&KT11aR(V&1QzC8+woWP{ry69FGjQIW}Q-`nfm)6|r z-TeV{={8U1AmF~5?)jF3Lt~bFPU!MpmpL2Zs4w}-3AiyuQ5fX}+@_+Cq|g*a0mr(f z(Jd}Xbn-Fz>>>9}J<^@z-5*2h(0HQ-0rz!u&ooPPUiT(*LYMKnoaq(#!H%z@cqS(> zX=sn)#){(Hpa7Wf-n~1lqaUU`FG66v7?_ChAs4x4uU4>5fk(kgh-W0pNLe zs>j2~{dr`Mloo^tL@ZxKnhC>+8HjW)K=ViXv1_0GXFk6m~fQ#O#W~C@0{< zkfLZ8NVmS+%O{^h+(S4Uj9~kSr_$MTo^eMYV&NhZ%sp_0!F)DoGalHoO_+)pCAav> z3C#GcM-i$hASaB9;?=f1uu^L&3OL*?kamel%3*X&K8=ies2Cr_`Rr6E)?(r<5$hF{ zS`$%vOr6gIU9Ri0We{k-isG4^fb-Fc!idkSDGG(00K$h|4`Yu)-k^9aZns9dRc1_* z^X*`gd@?z^;eIBF`6E8_y2nm~LCX}BRMXdM3JG+%uFIAYxIs?jC<@34DhjXfjUp55 zyB;el3IyIQlWw88*U>E%1yBm&|DdOp`?9{Q!Jq{SN~a3Tl+OTNmh19l5N^J50!}{b zQH06~%xmBBDBGhrzm{p26F^L%D0~|f@L{w^fm^zj(ycWZasSDu6!#D=4aPkMf*xC! zQShV?fw)D9OC(`val@w6ewXFCJQ)OtucCM+C*XXjqAC@|mLexZ&~P zLr@ejOGPn?t)fAJDJt|R;6}Gzx)nDHmt=fCu}Hjf858Kpe%+}?`INW>{#j^$l{AYs#Ab7o&X_pglMxiJU4GI`Z z`=ZBJUwwt?_CMXK>DJxen%D7-6$K!QemaCc+Ps$dPIjUJk4~8BYcZwXyUf<*#vt5$ zudkwzHz+Xm zWsd^qyMnx1fH30zGlgp0qi7pUcw{6z_}Vev?`jUD3Ar(SX{OY8m(99-7>8S$q6n1} zz-I|Xp_3DcuFjSRoS~u+)+5+v3gHOd^BRT+N5Zos=OO5YNm)BNFy^GhbdYBi`0FSN zyg|X2C>nWw14ZF0CxDf_NAavd0VB}lU0L2O!^Xm?FTH}I061w+kemmidbum#mH^O}kRj!mH*$x`}`$$XAH9*+30 zZwR-vmW)+q8q8gQ@6tj>?Qxu_c0_eFYiiB0r^(f9;9&q&@FHs;6mmbAq?P`h& zFwZRVNl59#6nLN<&cywi{H%-%B*=0;KAEc@1e(z7tfHozcq|YV1#r;G3EX&A6m~fQ zv$uII^O0ltZ%su3$6iNKAlUp*sgFnJmIge?2PA*d=dSXsil(B#x&oIDJnK7CLTkhA?Cb51OIzUV~>nSiSrowKF%~S*tvXlGpfI zRSeeZ5?A;0lotqRJMN0&nVi7Xp$!VyxA!R6pg3p9<(c}50&aK9s#}8E09H{-TeB<;0Cob;9b(vMgUDoRIUMOg3ilV-p0M1kt!esMR6!Ld6;a=mb zqX*|DmDMfJgH5krXVHPlpIeAQ*VP`Icl_V89#6lXaB&+T9IP{;|)>)W7!L3xj2NKU}Aq`taE3Of-$ z;H8Pw6cLf!W~mRhr5@8~3~RbqY6Z`r#hsa0wi2e2FkTQi5pv?$OBD4R6aYCvQQV+G z0iYIA6!5lNVv;%ys==346u`6QC*1wx`*9q!^v}#rci@?0+xeOcx49R6FtKL4Ox5MO zP;ep?#WRQND~bd;0dQ`hC?F?%6@|P(0RTsP6u1Rd)-AMdsXj|=`}v6kWq00gq5k9P z{D^l^8bN05E7Gt~f3X_QyIh)BtzC|i5S1ZJ7lpup5ie9HrV>J&xLmIwS% z?0Wdh3HT7LC@@7=QD98BU@<1>XCh4nMKok~(dX1NNgzBw1W|>-i!PHRbQ9}T!cG#F zb424{%3V=BlM|S?euDx|CiEzDass}c6@~o`3Yb;M3EVYNQ79S|a2P)l^)9K|hc);A zf~h8wm3ufkgM47=a7(z0O9PPS7HOBABor5yD(-Ruu0B%~kQ4P4MS`3FL{t=)DJ}0& zs1*g~l?eE5*ebEf)6!cSZ3`PQdf}asp0P zRupJZ)ag+i8We!;?c2AO{FKWH%wka#xV>9+s9Z_$THw}wTONQST2Ww%iHZWVPb4nPUhRhu zwJ9q?*blJJtx5?a-AqwHPCQc-(G3bL{k`AGM1Yry;*j%-Uzbx92RZSRpZr7-wWRbU zC9IfQc*|V+5;~bVj1RapvbdnO;UWpAo#XO4!v@6}$rXDP=O{+cysV<=7NDex zN70s#2ZPNeF}bUmBl)lkMVs(m!aKbfyIce|>k`^!XkI5X6$Kj<+p0OflL?#lEe{w` zD2l^N6nKMT;!6~|9t8rI6kxZIx0Q`Jn9gGnLAluEgU@5rf5L= zcnIRZjWN8`Mt~T$@xj%(H7Ma936FKdv<%2p6wz`5IN0R`jBv|Co>6lZ#okYKgW_QX zmDnvtNk#8nazCC+Xzt;-8{{)l2Ptur;5NPby8I&{F-fHAF`04#PA;J+mXi|zw#b$T zJXvweV=JGoqQJ;*QE%3Q4yMyuP+Y!d`G}O@Nt7fgJ;qG0I|=hh7)&0rVq~VGfSia{ z6l_o^a^P{xa$6p7+i}Zd!%b3>lG5G`MjT8hw}_yEZ1SOb29}tdF=?NfUU3r6k#JW# zOyku|IRRIrYES_1I$Iua#<=SN3;2;#C8}Fe;17dA|D8^8L2(6{ z-JYR12%4h4S%RQjqv^FKBpeBM=@1a!bu&d_mlMEkIXMBJXDJHEi8_kHMNT{lM^cy- z6vcF+6Y@-{VK4YpeZi0&Qw~)&z0f3VBVjE^Sk9(yCMOW!YbuIaasq%)loOaeV#{MI z6G?eW%6u~zaZrKlBH~K3xjkyrX3U)E-qGbCS)s%vJR{+&XvC-}&IqS9C>;M11r^0( z9UXfVFes@|RJx?t&uQj(rUK(RhBM35_V9fi%yPpx?>(Y0g5Y?2h2j#DjD)WokvW^9 zoH%2GGii$Aa`x`Y^IzV^Ew8C4&J7A*MFC(XMLJzkz|RW2*G=7p2CVg5Ud!8s(x6CL zNf<`LRH4X2PEb*t5r&*tPEpj66Toxn?~R`G0cRwoDk=F(5}>h(q+$MG8v7EfS83hKq9I65--<0zRL66m=AZQBEK_`Jc+f;B$}Sa!rjVQLU1K zl@z|wlkV+BII!#I4F;Sa>)RQZ=r(KT0~h-=(ng?2DM?sGNKox~jaMV&1YCOd&y3>I z5?>mHpT!l$Sx&&`*Hjb-IRPBpw>)6;@gr0elJftp$*BJ=!h})btzh@80TgFe2=ul- z7AYd|iG)%l>=eCJ5sHFxLcVIZd?yp(XZ9!#iXu)tljt4=W)T*zgbEJp81ZWz zZj6YIHi>{c0(DA8$RR>TatCT}FhWki{&YpLk5PA=qbMLJd=-T**!^8D|CR>~&fW4z zP!xz!Qo>*ZAtCHnA>z0WLqXvc>k=h#+Fp{PyE|;cz z^1R=HTiBp@;FcpN9&AyB7Ggw!Enp&+dGW^bt|7LpTK zi)sxDxa88K$ZSx+=j4|t_C?72IRz0AB2cO{gp48N zA0Yy|VUQCMiUO}s@C^$2il`OESx#WmI*KAwP9X4uqDYn#kL4B?wU8p@DP$Q5^0eH} zdx^l!5GYj?$=U88W$!l6M+T-rK&(k5kkUgMD2BHilXpxzG3HO8x+8#j-tqv z6A1jEC}zotM_LMNyi}V4o`X(HG3oi>P*`P3j z>>?-NL#CoYgQ8TA;;{t6Vi!_}aarZJ7i3qt^BhS8MiD5O@Ip=yGR!C-it&^a4bae? zNNZ47UZOaJ;IiKVn=XnXQ%=C=f^y=qI>M3{63Ai2Lw^O$hT5lbB2WQ=f_W}v10lC0 zfE*_$_!W<#<+I2MZh7pXuB<48g)gL$ebmv%1<5u#WZHiz1PW%jkO#mjLSl(t(2u(v zUw#=e%RS@-kjZIKU?Pj6IIo~fkHV!v0pHl8*cM1$`$96=EGHa*atpFZlDv)!_dK2<$R0Th7bGX({B$`1AC`NA!lEe73Bz|XH%uzaiHDOy zT9EV17JJ$O$T@8;PDBLk2$aoOd6^4&!;Y22!W20H#}?Y}fVcI(;sGab-=IK@#vTPM zRQ>@o2+2XtHu>?E{lu3K1!t^`K;=Z07r2}>a@JysqR5dG0C24a1stx~pm6!#==3)z z>h~y+0CIkib50JE9A+u|(eL0Ve|=2^D(9!XwB>Y>v&ysNM2@0xkrP-5HYgO?c=(D3 zEKFAviYTVsB4-IX^Gpe(@@K#)fN;_Z2oz6Cc~Q%WA_w+RIWheW3dji;MUf^au;>LF z6!5A@g94t&w>>=$Bx>?gNX{1Es(h#wLvKppJU0Ul|PzpLa^FUy& z6dJ0{p{mcx2XJE?J$~HnsIlMS@&*O|07d5CpinD{xUYC1C-3o2CIV6SC~$9R)u;=9 zh+c+>OYM@^jcYv=yrQNZBLd5%%}`Yi)w>Z%;qB4H*p?G)P&AfFEhk{}tSHc+nA@Yc zO@m@vvN#>SO`$j#BAFrjQaIy&%W@A0cLZoqh`@@eGE|R4l`aI$J}i_K8*&1kuP7&0 zX;54$3VXJ|g04Y<8}Fwm5L9USsMiZrBWIf-5>vb6d*g}^3tt3it%1Oz=^?Mgp#pCJ z<$fuY4~xhNfabE_0Xu1O0(1E`C}6Nug983ce<#zj+3INUq#i6*o z8Waz+(baTtUjFM4{|qsk+=rZz>poC&@VW6UOE3LU(G8Vz=88uXU=cY1NEek8>IMZu zW`p8fN^uQ}ZLXSa3b;4QLZG-UsO1ipez+`$_H>6=U+$q=8!hC_)d^)k$ccucNb61j zPcJzEQ+$I0An4x7#0#0Xd?)id8~J$9;J;}za-vKGZm_gF>w+_UVlmGUvXN31@t_JoeE=7uSBS(PNO3{FYJ1 zlUq(3d4uOp8dj@JbdNP1Ev});OCucA^T+q-{a$LS$KmSyV4hK;7pwc1)Q1kPlJuFNJ7Ppy0jlZ z%2%U&xSy-$@%^4zHE|yG>Xz#=T0W!YISR6Id;++*Mi5OuOY8SKWz;epF8-*54E|#HfFy!=89q&t;YtoL6@RA z4RWHPC_cSC@gXR*vso`W0n3?k0@GO(#aT|kpx2g%ZodN#oWJ6+^gEgAI#S;V40C=) zKNBfLq^FqmD=M@khEtAnQwBWD4H=51basqBAzdqrmC>D|v0QsyayyOIo z>lDSuziIXP=li_1%L!PsYK(2m~qa>S>7IeIEb6&MJ&G# zn2OR+6kvYZB=A_HJArsJ0u z-yLK4n;(Af`)~dL|NEaY=I?&*ci;R?9RF_||GnM#zyICwM_d2kyW@Y2(pZ@tD{fpoKm!JLkkN@(I z{^IA~{N>kw{L7!e|HWs&|I45M?4zYOZ~p2>-+%LifA+g?{_0=--kTr%yC1yytDpU? fH$V6ffBVgU!uhNJ|L_0nlN0|I|NRKcr~m!`6SKSl diff --git a/profile.py b/profile.py index 45cb45c..9225068 100644 --- a/profile.py +++ b/profile.py @@ -265,7 +265,7 @@ class radial(wx.Frame): def __init__(self, parent, pattern_open, circles, pixel_size, size): wx.Frame.__init__(self,parent,-1, - "Intensity Profile - "+parent.filename ,size=(550,350)) + "Intensity Profile - "+parent.filename ,size=(700,500)) iconFile = os.path.join(parent.iconspath, "diff_profiler_ico.ico") icon1 = wx.Icon(iconFile, wx.BITMAP_TYPE_ICO) @@ -561,7 +561,7 @@ def plot(self, lw=1, col='b'): else: cmap='gray' #print(cmap, self.polar_neg) log_polar = rot90(log(1+self.gamma*self.polar_grid)) - self.axes.imshow(log_polar, cmap=cmap, origin='lower', + self.axes.imshow(log_polar, cmap=cmap, origin='lower', interpolation='bicubic', extent=(0, self.drdf.max(), 0, self.rdf.max()+self.rdf.max()*.2)) if self.prosim: self.axes.plot(self.prosim_inv_d,self.prosim_int, linewidth=1, c='r', zorder = 40) diff --git a/ring_pattern.py b/ring_pattern.py index 14b8c5c..9bbbae3 100644 --- a/ring_pattern.py +++ b/ring_pattern.py @@ -69,7 +69,7 @@ def set_cursor(self, cursor): class ring_pattern(wx.Frame): def __init__(self, parent): - wx.Frame.__init__(self,parent,-1,"Ring Figure - "+parent.filename ,size=(550,350)) + wx.Frame.__init__(self,parent,-1,"Ring Figure - "+parent.filename ,size=(550,400)) self.parent = parent @@ -210,7 +210,7 @@ def ring_plot(self): if self.background_sub == 1: self.do_background_sub() - self.axes.imshow(self.pattern_open_crop, cmap = 'gray', + self.axes.imshow(self.pattern_open_crop, cmap = 'gray', interpolation='bicubic', extent=(-self.parent.drdf.max(), self.parent.drdf.max(), -self.parent.drdf.max(), self.parent.drdf.max())) if self.prosim == 1: @@ -323,7 +323,7 @@ def do_plot_sim(self): def do_prosim(self): if self.ring_patt == []: self.ring_patt = make_profile_rings(self.parent.prosim_int, self.parent.prosim_inv_d, self.origin, self.parent.boxs) - self.axes.imshow(self.ring_patt[:,:self.ring_patt.shape[1]//2], cmap='gray', origin='lower', + self.axes.imshow(self.ring_patt[:,:self.ring_patt.shape[1]//2], cmap='gray', origin='lower', interpolation='bicubic', extent=(-self.parent.prosim_inv_d.max(), 0, -self.parent.prosim_inv_d.max(), self.parent.prosim_inv_d.max())) print(self.parent.prosim_inv_d.max())