From c9fb5b0c931d03fde24240d65e19b0cd8936ea66 Mon Sep 17 00:00:00 2001 From: Matt Dallas Date: Fri, 12 Jun 2026 16:43:40 -0400 Subject: [PATCH 1/4] Added statistical test output to ocrreject_exam --- doc/source/odvkl1040_splits.png | Bin 53086 -> 45304 bytes doc/source/odvkl1040_stacked.png | Bin 92504 -> 82644 bytes stistools/ocrreject_exam.py | 356 +++++++++++++++++-------------- tests/test_ocrreject_exam.py | 17 +- 4 files changed, 210 insertions(+), 163 deletions(-) diff --git a/doc/source/odvkl1040_splits.png b/doc/source/odvkl1040_splits.png index 8873d75a81a487cf88914c625ccbf81f50fe5130..8255190875b15ab60b151418a8a4fca113a6be18 100644 GIT binary patch literal 45304 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 JU(?F}e*k}A^-TZ( literal 53086 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

J)+qg>y1(SFf#KF;0#&-8Hn& zC+Qqsz4R9@Z}OW@yPZm(`SlD$hd}mm9j;C2Dhi@Pp8vQCZwwDjBB8Z>)#P)BkN@IO zj%b0*u#8^n2?^rnDJy5e9#Qbgb>8I)zn-FKGfT@-DO=+?br5H)4{Q_wEz!P$cE0d`S z!!6ngM!tyr!Pn0s_q+c|9{rg8-K;Y;n%u23DKs43+$?3EV7Gtl{4T&9a=xIzmQ##W zh&(~tr9=SOPM<{+UYgK)45=Sg)7O9b{=(MO&HC>`o3vwn&%BA5 z9po;UokZ)3tn~AaT8&f1dhd%pr9Exx?>B6YKtM)p9(48WJn-8p1Sa$Z6qHbK*rvL| zs_$tgqSBjAaBMVT7EdjGA-pX?4NwSJ=$txQBedC5S!n`;r7Oi*yqk3$*Z>e9ML~v7 zCm+N&_e(+ANLv|-2ZMSV1ju3rBi~$w!GOaUp2m5;s!KpDKdAw-CLyiGbuHD)MOU`oQ+i_F(&@(brIiX-LQ27&-gzW6HoWJ@Ma; zsX00b5GbQER39Fcc_f2O857uUpO0ReGZ$c2})^oe(@}!;J8T zTc&Rhv4{u;-`DKnRr;bp%_+dt5nMs_IT8Jf42Agmp#MxEh?v{6lKLLr7dTROFZFB#CikZGSxDnItxTqLJ+g9RbRqUDYE<9S+G)H3pfK7 z!(k|iH!MGB^f5mD>`>c-?u?Kmus9y_0-T_dMMum8;TVu^9%p?Ta9sBe&o8H&K0Y@< z-+O_*u=t-~4&G0Am5i^!+$B)?F^$ZSh@tI&F()VI*-p591FZtw`hNI*Q^g0&>VZ+Z z3Q_>*M|f^YP@f=`SWIHzqGp@r47w6}*waZ1oN#}x_YV0PTOGIr1GP9Qz#SB25$YRq z0=N41tUkP3Bqsn5=;^RJA?colg+>!67G$8trJr!AVH&78=92nia8UX3hZPkjX!}ed z)Kt3S!@YZk)b2yTfI8QA20gWS+jw(55hEo~P$(#mLeK{p%pD?!NAOAdJdqY$L?+V$ zLI|r9Wh1~7m;hqeBm`<-s><^s{KJX)6ee)k;80C@1$K?(tKddsYG+{vn$cP zS?ihMo#D8{09BExG<&~9ZRaam>v48;Q`0k6)=;wzm9|rqnV-h5*x$0e zaT1`gU43S|IyL8P!2WMHV=S8b@C$*Y&Fg-id5P+snAi_>ShU9%42WIm5{1!;e z=Ah(p55{tIybBbXrV!efHf|e`LSA>nVWrn6Ixfny5gBRBIq%!1SW#T(st_devD@AJ z!{Blz0c1gwC47&Xt)MM%@4M%#tF|Vd-y$@WemN&EPaG2|4rQuCQE!4l;-1`Y;CkZ? z8)8xL6ho19p`xP67004y?Ll7auoj;EOR92`k_YhB~h*kWOJ)lWSWbwca()&9Rn@} zi|9;jkof5~rJ06_si`S5sHqj1ni>$t@%{-c3Gl(j{e66$ki5ZPWsghZGUG;nS3xeR ueN`lR{jU<$|8*7QFJm>@So{AhxQx#ndCT9+)H0JN_%b!I1pjo$;r{}-0_EQT diff --git a/doc/source/odvkl1040_stacked.png b/doc/source/odvkl1040_stacked.png index 6932fddd8ae779c280f12163fe5d66d30306ba65..d02eb1ec9c3f037c4cebbf0d256b4e0163359635 100644 GIT binary patch literal 82644 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%0AvtYmgVYPk$(l_URL8 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ͻ{G; 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 xU*+(0>u zV02rlXE|A@q^>)&l z;B!2>SJ-YQ5T;yf5tX}l$aS1Ppoq80>1mdSxc{vX<@10gC^!kEZhX=1ZFk6dqeohS zAB~;|DCN?Dm;JfK(DR5#BbK7BUlG61aJBj>WuN<>V@jgh2Kr`{vW%&vgWtR%s}^=} z<;Olvu&T|nh;8|xxLiLf0cDWIX~4=Bl6eEVFqw8s_f^UTpva55!P*XW*as-??13l+ z>teK7rV?C$!#WI%n3iW@!B4g*TfQsP&growSC~F29f`l|u9r;}E19#o;#9Pk{_=W) z+rYIUqNBy@(J!*ioE(MFar|Y^u9>3UUm_6MTk8l;0#ktblKIRIC^uvF&;)vH9&kf- zKp@)TTHAF$cxnR9=x7H+dk83uR8g@9Li)r#J6J|wNlCbObM%-3Bn^Vbv<;d&um%>} zgTl50ifa4nmGSP|CL+M8J$ca8*~z1|m|6O#9V9-Tl^!1D zz`umtf()RdeguTRlEgmN7CMU-t)f2J{SII?VIlBi(aEt zb@}i34nF*t%Kc!Zck@1$_%+|~(pB=T1~V0^uifse75x|Nh%qCu&+G!^!fqhn;PENW zK`YN50KQCUfYNa|^{%ci7jWLT2PlwvNcX{mDCFa%rlIi}{vQ%!L31UX{>YT?QIbLM zqc3?^E%|6=P158g_Op{p7gHIZx4ZH51lS}sW)VF}9*C0r#NK;uT=lEs-GMu!(XEQ< zwpBmO&@K0T=EUyjnWfhu5(a|xQFOe69)Tyr?KaKjNK*9%%Z$n0bCRj<6*)h}^-Svt zp6tC&>zmL=CM4FNui}P^BuOG41=?dl=hpPEU#!6tjEa7{Dc+p_lYOW!LV?m|o_In& zh2bV&1w*g{WUOH@OGn}5fmfEon{uq?-PCc+_Cx#JcCC&KE=_)W1N|3*>(>lqBxqR% zBt>YHAWRbeK*>f(%t`Zo!$y3z=W*ARWI#xk?to^zU1R4`qUJ1Hgt3@TMGQ}e%gvzQ z{@R?2?+eUhe4O@PI>$IW_Y`D!NY{BO7@o3ZUzcT*O3DLY%euOZh@z6uNG z{J~%L0_}b7=>f#fduMCy{7p)9uifWqsVA@Zuo_4YHIjAIzV~-XbnkDVvMQ<3EUwtD zcO_F_J2LdrxsQ&ZEeS;%DA5+C% zO%`T%_1OI(NB3ADyg_VPOzW(}-q@5ui-q(ib)+6C&i`&?@3{e0qwEjw(6_)G1of_o zQ;^<15gxO+(&#|R=<^Ggve1SLI6wJTe(aay&zpDA%VOzrE-DiqO+1gsKRik9EA{*H zIQw@NS?k*ygR)611ODWWr&e{^*S_nA$x!Y3Klrw1?T4;=AO}ed&60t5Avpx#(f#Nv<3bi%$;-VS^ z2Nv!UeZCa^otd#Go^1_DvY{iYvS8$M3pP3W>PW$+4KLRWdB4@o<8C^=ofa?sUyWej zx}|)5=zw0>4BzlY$Po?IN*%w)TYXP#*sqd}+n1XQFAkOY@?GKk(PgP8`dW|UaQ&N> z#=eg9!z+I1zWIUOsCk2dBRfW;_WHnv*(!NqM|Cl}pD?4h^*acPc^>1ohTiDpCI7^Q zev_MJ{(+TG=xb4V)2waGkrFo79edo(qTxxt3Fk!`!P_d-v^LXX{1kz3}MQOP519yZ?$#|KaI#KaaUn4&*4`$EY>a;N_I)(dv@ z@~TZ~EPjn&wHXKDbK4L8Q6~(9Nx}qXT>b`G2x-6+ zv$RkcyyTE11CuE69~9<;MO-r<;WoViTTnmSWnmy!$|ysxa_&xpOxm`DkH5-ClWf}B zGj&a?RepkR1T6Geh4$zUoa2Z9V~+$#F5jr}!hIaA!(fijO|ixHQGdE;)>y46DJ<5z z@{Cd7OHQfQo%<2ylWV2IdKV4RAz0D+G@V;rJ^g!jX-uh;u9DSUJ2!#J9p{-{lf={~ zO7lnRDANq1U%ZE(g%cYIb%g5VQi%w@8(Xw#S_Lkw0|(~5(2T=#b@|DFMq~Mv`+)<5 zjlTx7h@yIz{@%g)e7Wx4%EIPYnauh$y(T$i@AZP_;R-x>N56wbue_t_wc&-A9X!j1 z<8PiT=ajpq@d)Gd^)PkWfAyR99?3eI%|86l_eRKO7cRjUeN>eJJZJhl&w08S{BdWN z62FEQ;Z*%oI!Fr)1_p3`leR8{=3ji{bJHqAA_q3K@U=6^_4EWcPnR6t5yE%%NrR;$ zk1=%=2{{k)#~Ep}N`2()#lI@Q!1Le>HeIT7SYUvpP*-AfgG-*Jg0CRP@awQT`dlvp zAB7|)HoUo1+f{4bVUwAR>ou$)8VX(?L@gRNZmUF{l5}&IG zC{>$pz}p6!$m)G8RC}SOsWig&h4ykbmr4C$t7Aj%qj35d?-kn}VpYz$>gT*}7K~I_ zc`c`=+3}s?nkJVw$$ni!e;*h(MEi$}?w>!dw^elk9nWS^uU$|FXZ8<#Ba1U1(FXC? zgJtJ!!NOwfs%eb)Z5^?Sk>Kl0kH0$6yw3R(^ZJc@C zYrZEp+%0oSr;1(`{}%5=@5!$FIHSbKZnv_0`>j2NkVsV7{p&qRw!$jxA-*|HQ^Hm| zz61AqeCBFBcduBsaxIU=o-Vm}Z*puMEe{wUg}*f|)i!eAI$hPXpt+nwwCHrcP;y|M zJ}0(*yj#zN;of4B)k;o6b`2wQ+{*TPor@-ED*DaexAboiI0ap4v=d)^dXx@Z|2k!m zqf&c7E^LWTX*46d(5&*NpGxO&T9kCjv~llvRROx9b<_ZcDMsSE>9Lw|NQW<-P~lF} zD}8H2X=_8Sulcua_~Qkkm}Vu;Mtv0#v=lk{);u|DELeA1zjc~NqP3l&n2&`D%b}fF zzitpT$012MHl9zY(6joHgRu@B6 zFmILJB_T%d-3uVugN_=FkJYv*c&3#Ezuesm2Igx_()XS=1k^lduYdDUez&IADk8^x z*V|{rN0t9oMj0lyamuxDlE30|rtWBP`WYi3u^wVtuRFsU11~v_{-Pv_Ibu6r%T-6K znMHa=?_EIr&S{%$iCPY>vG&-e07oe$4yMaCX_@f(m}pp6^Hdi@3Gw*FhJ)%8cues$ z`R7PCa1+U?1rb-Irz3l92Inkxe|F^>+Gh4Iz2Mcp^C1(8MMWc{WCf;Ovd}?; z4_y+FZWs;ZU5kmtb`=3+zIyP;zDw=oW}g1{Qy^28h1Nm^Ite={%|S03zxg>DKL0t( zsh1q$96o36ecL}Ftr%cYnlmycRH8+ytKC4Xc5mEFh0-V5Zfx$y&izD(4C$JUmCGVP z0|@0P{ml*Ye0k^)yTDbl0OH`wmw!;Yz_fO~;aZk)eK1pS62iS;GRST*500-I0A7H1 zLmzhdk>gM@rA3hh_}n1G81VV^%7dNC5}@SU!~A##CTW{r{L#ThNMpC_79_6V4gBn* z;Pf|GxII~13n{NKvPcx`3S}N_{%wC7)-uHRC14RX?}NHSSl16^!X2O zXrTE_%Pbl@73a3mR|3r+FC-U1*s?UtAUhzIFCDHw^U%HDTx&pId3gM|pKctDoT=_IrP97|PQGUic`gDG%$PLbfoONe;Ce4w|(lb7BNB^Cn z_D$?bGKOrm0Pip9-AHA(l>VG`y=4n&$xYTAG z^EnwoNwECjycpAOL@^$bCZF{{Vo)jOkHbfYGGur}Enp)FESu$HhPT7Q!h(~a5 z0Z)?)2wH(?^yyk=5&h^t5DQxBTGB`bgk=RM0e8dj;UTVO%*Zzysc`aC<%E7*TW$g= zdwst_tI=uCha&NDgCC;)A~fB7vF8R%T&t=zFLfI@uT0vd)F0&9a9q;Qd; zZ0ziQEc}r6JBZx}n#LC(q|1u9tSQ3U%AJX->vKG?0ld{8yZqK(mdVu9yz*6XQ}6Cs z&3>jqtmUl5wHXKUl=*rXc(Td#7g-y8-Gb#jkTK4o-{j=<_ z46iVX3-|Q+( z89a8!X$yb}_IC}|_ZhMMaWPdzMPzbQzx^vKSS1mHW&+tip{WX}-){~OKiG4hG5c@C&E#V!7L_FdUL@vnd8hvLs{Xeb9rui+wEPJXgK#d<+W z7+=EV5)4kRMrB|#DU0n2pHYBpR|BB99u&$5TjD&(#njc*!hqb83^Xn@3O?DRoondB zI1784yqOr<36L#<9|hMfAmqQ+aa&hAL&+x(i)U-){(NPLI>I-qERRc&(>0{SoN$}( zhFe+opC2t0UrOp0YK3m}g)0Pv<5VwbH;_Bz*mlbZn~UMkhPS-lc;CG5dBq@Q2V3O& zv2_i};l)br;M}cr*X$CA^qLLOna& z7J?O_OfE6#+9-VxH)uU?Cl*!r>fQ^=#ZJ3)`1~<0+#c2H+Yqsa3DYm_lMb%l{BWet z6M}jPpX=7A%QKcHvJ9;cPN=&ohqY`RiyN3UyPAosy?nywkG}0CmVxHY>oWWf5`&`` zapV2hMJ+<(=FxcJ@D0SjmFC2r8hBpvA-rMO$|c3|^Bw2s)SZco#?76Ut3;R7kMFW zpJb_egC*;Y`i7f+a>+I~&TE}pY+RccjKhlI2KU~}96gVIvmM$WWx_wvr#qg}#Z{c{ z3OII$wYYsFmN`DJPbcz#?!{W4-C5_psob=u%pSi`$Mifrus5H~vviTsMR@3m4l~cL zi*Bm!;(C5mh-1*}4{k>-R_6R&KJ^e%j_9HZMwK?)^Yk5?5!C{me{S8{-rZd(3UMZx zjtLzuwTb%@U(d%q^q$g4?#%%0tjzg&yAj&CC*|#A%7Zp-s^dLluT=rwbVyqX_+ic1U~8V-)B*p>VD(RJ^BMTSfoARXX7<$ zPp4OOI19D{U@rdnR;o?r*dJOaCN-h@SGL>(Li{leuOf}ET^LAMWIH=17-bxP=9BdT zPD63pq1F8B!XCjg$DafPV}=3!U>RqpQ*1)+HMNayR<1`RiG7+dMSGD(WW{~6HYBB3 zg2%-UWy&(^bzgcsbFjmGRzsRKhchbxd4m;Y&?~$I4)V z0H|0vXyXg8{AUo9$JsPoEtyOIoDcI0-NsS7UtwmRyaP1H6{LDa?Iu2{1{{5MK1-ff z!otMu)2ad1$w5m;#(ksM%&Bqqrn67YAQa`VvLI)wsFp|lPj=rR(syYKB z%q~EGp^`Y~wp2|ZLC$5yF7lo{Swc6xMo)FIA+OxEm^DOFK9WRULUujU`rON5557T; zQoo$KjR10ZW6W1}7Lu4lz6a1m&{GWSd=E$vGr@@14BQU-OC7T^;rJ7LBZDM88w~@d z@4V7*Y$>MxBu{Wq_K7PNE5G6u=hu^yu(>E%viR$#Dun^s&FK2+<9mf&|7Pz4Wk)&~ zF(nFM&L(OJ`f+gB3)J!0vo8nFnTpWbMMLS{its;oADBy%Jy9mgY9yUlCQ=!Ylj@uc zIs3^`sbo3Q{ajX1wsXvEF8h%v-)VFQVmu^8bGEv*EoZ@9KneEl!)j{vlYA7tj8=~R zE6z!4gQ_Ul3@9g)*r2W%K_*HmyXWxc(ah)Kuoo%8m___%wnOOR|7 zy%FgfuZ?Td6aLW`+J_5JN^T5a=~YJe17^Se#*fH^)1%2?;%5ee$CA<4lsq2$yH8fp z+sD~=Kez-;8LfasA~e)ngDGQrLV`F@_!>%nTIoXfWQfoO3iTWTW{L2osiIy+@0)if zdkwXTKFv?N6(|JL6MuV6^4$P}VnAwK0BqZHifJ}2Fnvx1zL<6o(W&i{(dqs2evMYH z{2+6#`Xu4B@PZ5rob?S+cJszYgR14GGi#o^{Ew?JXi~BIg*G4DLDoTH3uXoSu3AuG z!sJDyPq&xs*dt69)Kt>JZ+(49n>nvu4NCfQe;equh<^j!K%=Qp-A@>zFkM|gp4518 ztd1whNWR^_oK%7)>szFLow z(E#8rH&7Vpid~tRe@(P=us^tDtSeF5diPOtD*@l`g<3 z2E1t6^I!~<`8`Xp)iQ7U(Q$ED&}A+49z;I>%?Em%S|u<(MTRUj;eMILK@GteOH&$> zm%O!vZ%uSI=fD3HYFE0C3>~RiUZ$PCd)@n)mABjBKjlMce{0#yfyB6lkxH@sgJSK~ zXF>O|KPq18XlO)OxdWvsX_4l`A@YR5V813#v-|GWdX_jYa>#6hnvVo-pvAVtH=#XF+K>2QhwTd0W7s4q;S? zz1cP$jGiy}W5v4S(*!4O9@;~g)Bk=d=3A+v5{$|L7%ppoLcbkIr_`#%|9QRPl|w+# zt7mS09*v`n!4zh$zu+_UplLAbG(-OhdR2JGPe66UfAl}cW76PLlfp<1%UUJeBL$#K zcH3R9o$Jj(SKS`u$)BO6lOQMhcU0o|Hq1FE|NWg#kp945;osjeZBXC-=Or_Nz2Iz% z{+ttJxsu?}wNV|JzG{eg$%XeIt8eDztwvt8BmeDfZ*%%o14`jh-wq{-CI# z@d>o(cQtg~3eeyb7F{UAjiEX!S-=gbs;G2~m4LBWH*gxdaOT=z$fSg5Wxys2{ytV>H9a8p{_Rk3%LMGPP}hb^X(+E)9)IEd&ZYAyX<{J5eNn|?sC!|8dAPD>uduY&S zf$6QITJQ3I126I>1E7mPe)_@;@NQH=n%R0XkhV3Iipi>8{Jo7>&>8pjy|qc`q>A~OWX zJ>3<_3xc7w97hOT4>Fq1E+c zWT;oUtp@T!{;Jm38Q}+d?D99>^2D;)6uvAb1CoRUP`2Dp{ ze&J#eoQ0~-AVWC5CUl%o5*xvB%Y!}Q1F#_cx_47R9bDU#h$}PscO%~E_Jl#V5DDuc zrOXqsYe(l0oC`Xnxs8mBz^h4gU~ZahTcR(K){tmhVn30VjBxwb@JHHX$2@CNZu1Y> zg#;O*SRu5e$BSAH3p3P%kpgSc*H<;*W#0r$Zw0{a6K7!_oOThYh(U(#DDT20zF( zlu2}kZ<7L#)7@ZaFj5`sFpzlzbkIm3{tAn_0r%i;@GMNN1%T|8Xf6O}dZlz^uXzv{ ztW(Ip7i@u}uClSo_kY-2Em2lie*)L-V0U`i1SLlk^;(p#tJkhK-&ym_l@hBv3mcx4 z*cFPkS7lOSCr;q|C=fs|YY5A&C1Vskp1d*0z=)w93lo#)?RUPxH+;vaqN!;NuOf>V z1;#8xJ)35BLZ2YwU->cGPRBX&Mel<-<*+n2+~-Z*4=P-XgA5S>Q26=WDd?C}fP+6p zAolk~UxnMV_Ol{6jxCkDjg=HKQ($b|WV{8KLo!>zZ5XHAHN%XQP{~U z&mNxdg}=IHw%>vGd~i`F1=#N=r)&F{7CjDj{^ld25t)+*TKnU)2ffnVuuYip4Atkn z%~hp#sm#2FJe7if%CN+B{`U8RvpJY=+SLFq10VW+5&ErB%=qYas8o2iy2r;ar37s#U4#Nnn zAw5P<+>|OVy&w`TA4D2|n6)$_Y;VdRP<#2cU zm=OY|A2^Ig3@{vpqzOWzIx?XAaj@}F{dvM-S&O3nQEO``_L}7J-6Qbtl8_b@+)p_# z>v)VyhNDAD>EUc*%?2ZWk`f3DVl9|2=mbZDgi@|X;Z5`6qML)My(v_N!{0v)E~&(h z-9?&Bq*H+^pjI4tCFJH09Y_&MbXxj5u!#D3e_gQyMupZfZ~Yma_rei?aM`E6AL^a2Jj4C{vlWYl3u{atpEKREK#Xknl-xJkuqKSv zW@dZP49@xHFtFba0K>fe{OD(2&0@4b!Ie)ezWR=r9;-M{p-Vy~rA`PqWiQTea5rTR zw0rE@WyqN6fCjfvT`!y4!HujL{aZ0I3DK>=vbfAbY#5#ooqyO z(v;rm<&}qKmOX?HC8pIA5y?xfoPe0zLDo})r&Fsl*R4yX_Uv9wFI;^PtWhh2oC_H4W zkQL)?w)Kx2WG_hXodaHV`i7$thz2i2#327b7Qkph6I@J4n-Jg>l5sJl!%J`h;VojC zbRQsFJ~gO_8C2<$bdu0oQ0)*0-bxjoUP~c& zWDPmffLYg~vUTfKfEN55NEcs~JPlI-Y>3G!g*OBFJpx6*ALF2#H0zS}aYFeb^jOG~ z^B_bjL~VJnvxN13lB&*1!>IuTmaIRm~kO&g?^y&?0VK z9<{CM*tFnLh$b?C!H!CAtH8!)?0@9}!Op{l|Iw6urg1Dq^a=qiY#E6dJO;ONcjUw} zNCOC(u9;>*o5Qct^OT8*mVke@Qs@_LVrse@n$~nVeekw|${(c-qTuuga-+?wCAAQfY~w>SVDjUeIfdC@8DL1LhUu z{UuZA`;bt}Uh=mSGqg2u)mBCT-+N#Kj}Eoxj(QBt=b><6UK6*%gJSxFc?)ZViY zwLV{bxBh2R7pt#JeWM;aCimFf#_}O?8Cnw55%=><_wP?)Xu>hpk)H$i6q#5y72-C~ zuE59x!fCI)tYPn7AQQ=Kr`+GJvpqM7AU=Xj!$CNG!(I;g+=(x!!H{r#pbBrhW!LiV zXhH^*Z?8J5t4SarY-QzJx2~pe2R3)#9>0DVZe3Gu(PG6m>xEZjkzjZ8=3f$*buZM~ z4P`;bfsl3WhmckG6;BveR_|=7x*98i@berq(>TYSORkzL)=^tG%+3?m=aiZQ`R39jQqXGM5auNk?J_nLLGAn44>1;FM&}Z$#IsB0nd9 z)Gh|N#pw~>=|`Lnocg)K_?73s4|_?Y#*t;Gv*k&x+Jcyap3oxy1yBV*t3tAbo}{I+ zbpt@3{`1~FUq9&IhB(XfN2JlsJc8{M2|_LK6^fl`FL}mRx>2k;e!!kyM@R6o^R0_R zFo;7i=!FGoPex>u1>XhBz!l(pVjB8f*#Hj1dRNZyD-))rZdW%d0VqtKS0h`|yuv|0 zcH$eGn$iIG0^trSf?Y98$b~T9w|!m(?O-4|2usBf6gV>+6uAieX384EZKZ^SRs))` z5gxE_0aWpFtYEW;ilg_KN|iZ1mMJu$&p<%}rXj->Le7Qwr)N+v4`j~3ZYn*Yd&g&Rb2T}^G`k%*hc3WuUTWYD&x>8JesBqC1(s6 zTb7EY7iEr94+~PG);Ba*ktzwmWxJGAl&g13e1h@kGc?s0cyMeyanidqA|N|@qD)fr zyPZXM)d81Sfv~_{%51`JD%U^noK3l~No$8h`_c?+_#b8@`))CJJ`k8Ck<6fU0)UCN zZ4de(G-MVVNU;w$JI+6Y4$a!BuhR!QAy`c>D2D}GAgiVcCPj6V!0Ft_uU(MN^!$f1=h|_pi zSU{3bIlh*|bdx`%0(sgBDLi*(y{=wui5Z;cSfe(OfJByW%en=ZSu32^YV>E5XN62k z!@;?$bOOiba-_w^PiM_`0r{Hzy1+6Z0fA|I%S;Ujf6HqZTGd;R)@hU=+)V zn$PP_*g-hj9t^7*3yeg2;y~V&;`bFet9Q;=B1!k}EAXU^>?A_QARnjaQWkyRH~Klv hl3&nQ`9J^Y^df`Pp{cR&7CMmIU^u#MmDqoB>R%1BSn~h? diff --git a/stistools/ocrreject_exam.py b/stistools/ocrreject_exam.py index 4bf8ce61..e715ce66 100644 --- a/stistools/ocrreject_exam.py +++ b/stistools/ocrreject_exam.py @@ -5,8 +5,8 @@ import argparse import numpy as np +from scipy.stats import binom from astropy.io import fits -import matplotlib from matplotlib import cm as colormap from matplotlib import colors from matplotlib import pyplot as plt @@ -16,7 +16,6 @@ HAS_PLOTLY = True except ImportError: HAS_PLOTLY = False -NON_INTERACTIVE_BACKENDS = {"agg", "pdf", "svg", "ps"} __doc__ = """ Checks STIS CCD 1D spectroscopic data for cosmic ray overflagging. @@ -31,13 +30,16 @@ .. code-block:: python - [{'rootname': 'odvkl1040', - 'extr_fracs': array([0.31530762, 0.32006836]), - 'outside_fracs': array([0.00884673, 0.00810278]), - 'ratios': array([35.64113429, 39.50106762]), - 'avg_extr_frac': 0.31768798828125, - 'avg_outside_frac': 0.008474755474901575, - 'avg_ratio': 37.486389928547126}] + [{'rootname': 'odvkl1040', + 'n_splits': 2, + 'detector_box_fraction': 0.0068359375, + 'n_cr_pix': array([11787, 11052]), + 'n_total_cr_pix': 22839, + 'extr_fracs': array([0.36021205, 0.36063058]), + 'outside_fracs': array([0.00883899, 0.00813034]), + 'combined_ratio': 42.479135678716936, + 'combined_ratio_threshold': 1.4027214132251133, + 'overflagged_stat': True}] .. image:: odvkl1040_stacked.png :width: 600 @@ -68,12 +70,12 @@ -o PLOT_DIR output directory to store diagnostic plots if plot=True. Defaults to data_dir. -i option to create zoomable html plots instead of static pngs. Defaults to False and requires Plotly if True - v1.0; Written by Matt Dallas, Joleen Carlberg, Sean Lockwood, STScI, December 2024. + v1.1; Written by Matt Dallas, Joleen Carlberg, Sean Lockwood, STScI, December 2024/ June 2026. """ __taskname__ = "ocrreject_exam" __version__ = "1.1" -__vdate__ = "24-September-2025" +__vdate__ = "12-June-2026" __author__ = "Matt Dallas, Joleen Carlberg, Sean Lockwood, STScI, December 2024." @@ -82,8 +84,7 @@ def __init__(self, message='Extraction box extends beyond frame'): super().__init__(message) -def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive=False, - verbose=False): +def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive=False, verbose=False, alpha=0.00135, cr_size=2.4, show_plot=False): """Compares the rate of cosmic rays in the extraction box and everywhere else in a CCD spectroscopic image. Based on crrej_exam from `STIS ISR 2019-02 `_. @@ -105,28 +106,39 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive Option to generate diagnostic plots, default=False plot_dir: str or None - Directory to save diagnostic plots in if plot=True. - Defaults to data_dir parameter + Directory to save diagnostic plots in if plot=True, defaults to data_dir parameter interactive: bool - Option to generate zoomable html plots using plotly, default=False + Option to generate zoomable html plots using plotly if plot=True, default=False verbose: bool - Option to print some results + Option to print results to the terminal, default=False + + alpha: float + The desired significance level for rejecting the null hypothesis that the CRs are randomly distributed across the detector. Default=0.00135. + + cr_size: float + The mean number of pixels each CR is assumed to hit. Effects the threshold ratio used to determine if the CR distribution is significantly different from random. Default=2.4. + + show_plot: bool + If True, when interactive=False show the generated plot in a notebook session in addition to saving. Default=False. Returns ------- results: list of dict - ``rootname``: obs_id + - ``n_splits``: number of splits in the observation + - ``detector_box_fraction``: fraction of the detector taken up by the extraction box + - ``n_cr_pix``: number of pixels flagged as CR in each split + - ``n_total_cr_pix``: total number of pixels flagged as CR across all splits - ``extr_fracs``: cosmic ray rejection rates in the extraction boxes for each CR-SPLIT - ``outside_fracs``: cosmic ray rejection rates outside the extraction boxes for each CR-SPLIT - - ``ratios``: ``extr_fracs``/``outside_fracs`` - - ``avg_extr_frac``: The average of ``extr_fracs`` - - ``avg_outside_frac``: The average of ``outside_fracs`` - - ``avg_ratio``: ``avg_extr_frac``/``avg_outside_frac`` - - If called from the command line, prints the avg extraction, outside, and ratio values for quick verification. + - ``combined_ratio``: cosmic ray rejection rate inside the extraction box divided by the rate outside it, combined across all splits (avg_extr_frac/avg_outside_frac) + - ``combined_ratio_threshold``: the maximum combined_ratio set by alpha under the null hypothesis of randomly distributed CRs + - ``overflagged_stat``: boolean indicating if the observation is likely overflagged set by alpha based on the combined ratio + + If called from the command line, prints the combined extraction, outside, and ratio values for quick verification similar to the older method shown in STIS ISR 2019-02 Appendix A. """ if isinstance(obs_ids, (str,)): obs_ids = [obs_ids] @@ -174,15 +186,15 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive sci_num = len([hdu.name for hdu in flt_hdul if "SCI" in hdu.name]) # Counts the number of sci extensions if (crsplit_num * nrptexp_num - sci_num) != 0: - raise ValueError(f"cr-split or nrptexp value in flt header does not match the number of sci extentsions for {obs_id}") + raise ValueError(f"cr-split or nrptexp value in flt header does not match the number of sci extensions for {obs_id}") # If all checks above passed, calculate cr fraction in and out of the extraction box spec = fits.getdata(sx1_file, ext=1)[0] - extrlocy = spec['EXTRLOCY'] - 1 # y coords of the middle of the extraction box + extrlocy = spec['EXTRLOCY'] - 1 # y coords of the middle of the extraction box shifted to 0 indexed del_pix = spec['EXTRSIZE'] / 2. # value the extraction box extends above or below extrlocy - box_upper = np.ceil(extrlocy + del_pix).astype(int) # Ints of pixel values above end of trace bc python is upper bound exclusive - box_lower = np.floor(extrlocy - del_pix).astype(int) # Ints of pixel values below end of trace + box_lower = np.ceil(extrlocy - del_pix).astype(int) # Ints of pixel values at end of trace + box_upper = np.floor(extrlocy + del_pix).astype(int)+1 # Ints of pixel values above end of trace (the +1 is to make it inclusive for python indexing) # Fill each of these lists with values for each cr split extr_fracs = [] # fraction of pixels flagged as cr inside the extraction box for each split @@ -194,8 +206,8 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive flt_shape = flt_hdul['sci', 1].data.shape # shape of the data # Check that the extraction box doesn't extend beyond the image: this breaks the method - if np.any(box_lower < 0) or np.any(box_upper - 1 > flt_shape[0]): # Subtract 1 because the box extends to the value of the pixel before - raise BoxExtended(f"Extraction box coords extend above or below the cosmic ray subexposures for {propid}") + if np.any(box_lower < 0) or np.any(box_upper > flt_shape[0]): + raise BoxExtended(f"Extraction box coords extend above or below the cosmic ray subexposures for {obs_id}") extr_mask = np.zeros(flt_shape) outside_mask = np.ones(flt_shape) @@ -207,6 +219,9 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive n_extr = np.count_nonzero(extr_mask) # number of pixels inside the extraction box n_outside = np.count_nonzero(outside_mask) # number of pixels outside the extraction box + detector_box_fraction = float(n_extr/(n_extr+n_outside)) # fraction of the detector taken up by the extraction box, used for calculating probability of overflagging + + total_cr_pixs = [] for i, hdu in enumerate(flt_hdul): if hdu.name == 'SCI': exposure_times.append(hdu.header['EXPTIME']) @@ -220,6 +235,7 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive extr_cr_count = np.count_nonzero(extr_rej_pix) outside_cr_count = np.count_nonzero(outside_rej_pix) + total_cr_pixs.append(extr_cr_count + outside_cr_count) # number of pixels flagged as CR in each frame extr_fracs.append(extr_cr_count / n_extr) outside_fracs.append(outside_cr_count / n_outside) @@ -229,20 +245,26 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive extr_fracs = np.asarray(extr_fracs) outside_fracs = np.asarray(outside_fracs) - ratios = extr_fracs / outside_fracs # ratio of extraction to outside the box in each image avg_extr_frac = float(np.sum(extr_fracs) / len(extr_fracs)) # Average fraction of crs inside extraction box avg_outside_frac = float(np.sum(outside_fracs) / len(outside_fracs)) # Average fraction of crs outside extraction box - avg_ratio = float(avg_extr_frac / avg_outside_frac) # Average ratio of the stack + combined_ratio = float(avg_extr_frac / avg_outside_frac) # combined ratio of the stack + + n_splits = len(extr_fracs) # Number of splits, works for cr-splits and nrptexps because it just counts the number of flt sci extensions + + combined_ratio_crit = combined_ratio_threshold(all_ncr_pix=int(np.sum(total_cr_pixs)), detector_box_fraction=detector_box_fraction, alpha=alpha, cr_size=cr_size) results = { - 'rootname' : obs_id, - 'extr_fracs' : extr_fracs, - 'outside_fracs' : outside_fracs, - 'ratios' : ratios, - 'avg_extr_frac' : avg_extr_frac, - 'avg_outside_frac' : avg_outside_frac, - 'avg_ratio' : avg_ratio,} + 'rootname' : obs_id, + 'n_splits' : n_splits, + 'detector_box_fraction' : detector_box_fraction, + 'n_cr_pix' : np.asarray(total_cr_pixs, dtype=int), + 'n_total_cr_pix' : int(np.sum(total_cr_pixs)), + 'extr_fracs' : extr_fracs, + 'outside_fracs' : outside_fracs, + 'combined_ratio' : combined_ratio, + 'combined_ratio_threshold' : float(combined_ratio_crit), + 'overflagged_stat': bool(combined_ratio >= combined_ratio_crit)} if plot and (not interactive or not HAS_PLOTLY): # case with interactive == False if not HAS_PLOTLY and interactive: @@ -252,28 +274,59 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive cr_rejected_stack = np.sum(cr_rejected_locs, axis=0) # stack all located crs on top of eachother stacked_exposure_time = sum(exposure_times) stack_plot(cr_rejected_stack, box_lower, box_upper, len(cr_rejected_locs), stacked_exposure_time, - rootname, propid, plot_dir, interactive=interactive) + rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) split_plot(cr_rejected_locs, box_lower, box_upper, len(cr_rejected_locs), exposure_times, - stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive) + stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) elif plot and interactive and HAS_PLOTLY: # case with interactive == True and Plotly is installed cr_rejected_stack = np.sum(cr_rejected_locs, axis=0) # stack all located crs on top of each other stacked_exposure_time = sum(exposure_times) stack_plot(cr_rejected_stack, box_lower, box_upper, len(cr_rejected_locs), stacked_exposure_time, - rootname, propid, plot_dir, interactive=interactive) + rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) split_plot(cr_rejected_locs, box_lower, box_upper, len(cr_rejected_locs), exposure_times, - stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive) + stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) - if verbose: + if verbose: # This replicates the functionality from STIS ISR 2019-02 Appendix A print(f"\nFor {obs_id}") - print(f"Average across all extraction boxes: {results['avg_extr_frac']:.1%}") - print(f"Average across all external regions: {results['avg_outside_frac']:.1%}") - print(f"Average ratio between the two: {results['avg_ratio']:.2f}") + print(f"Average rejection across all extraction boxes: {avg_extr_frac:.1%}") + print(f"Average rejection across all external regions: {avg_outside_frac:.1%}") + print(f"Combined ratio between the two: {results['combined_ratio']:.2f}") result_list.append(results) return result_list +# Probability function +def combined_ratio_threshold(all_ncr_pix, detector_box_fraction, alpha, cr_size): + """Returns the largest combined ratio that can occur given a significance level alpha under the null hypothesis that the CRs are randomly distributed across the detector. + + Parameters + ---------- + all_ncr_pix: int + The total number of cosmic ray flagged pixels across all splits. + + detector_box_fraction: float + The portion of the readout area taken up by the extraction box (probability for the inverse survival function). + + alpha: float + The desired significance level for determining if a ratio is likely to be due to overflagging. + + cr_size: float + The number of pixels each cr hit is assumed to impact. + + Returns + ------- + combined_ratio_threshold: float + The maximum combined_ratio that can be observed within the significance level. + + """ + + ncr_hits_inside_threshold = binom.isf(alpha, int(round(all_ncr_pix/cr_size)), detector_box_fraction) + 1 # Max number of cr hits in the extraction box we can observe within alpha + ncr_pix_inside_threshold = ncr_hits_inside_threshold*cr_size # convert back from hits to flagged pixels + ncr_pix_outside_threshold = all_ncr_pix - ncr_pix_inside_threshold # number of cr flagged pixels remaining outside the extraction box + combined_ratio_threshold = (ncr_pix_inside_threshold / ncr_pix_outside_threshold) * ((1 - detector_box_fraction) / detector_box_fraction) # the corresponding combined_ratio + + return combined_ratio_threshold # Plotting-specific functions: def _gen_color(cmap, n): @@ -321,26 +374,7 @@ def _generate_intervals(n, divisions): return result -def _inline_render_plot(fig, is_interactive_backend, user_interactive_setting): - """Show a matplotlib figure if in an interactive environment. - """ - if not (is_interactive_backend and user_interactive_setting): - return - - try: - from IPython.display import display - shell = get_ipython().__class__.__name__ - if shell == "ZMQInteractiveShell": # Force a display if running in Jupyter instead of trying to render at the end of a cell - display(fig) - return - except Exception: - pass - - plt.show(block=False) - - -def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, propid, plot_dir, - interactive): +def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, propid, plot_dir, interactive, show_plot=False): """Creates a visualization of where CR pixels are in a stacked image Parameters @@ -371,6 +405,9 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop interactive: bool If True, uses Plotly to create an interactive zoomable html plot + + show_plot: bool + If True, show the generated plot in a notebook session in addition to saving. Default=False. """ stack_shape = stack_image.shape max_stack_value = int(np.max(stack_image)) # This is usually equal to stack_shape, @@ -391,51 +428,53 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop if not interactive: # create matplotlib image - is_interactive_backend = matplotlib.get_backend().lower() not in NON_INTERACTIVE_BACKENDS - user_interactive_setting = plt.isinteractive() - - if is_interactive_backend and user_interactive_setting: - plt.ioff() - try: - fig, (ax1, ax2, ax3) = plt.subplots(nrows=1, ncols=3, figsize=(9, 20*(9/41)), - gridspec_kw={'width_ratios': [1, 1, 0.05], 'height_ratios': [1]}) - - for axis in [ax1, ax2]: - axis.imshow(stack_image, interpolation='none', origin='lower', - extent=(0, stack_shape[1], 0, stack_shape[0]), cmap=cmap, norm=norm, aspect='auto') - axis.step(np.arange(len(box_upper)), box_upper, color='#222222', where='post', lw=0.7, alpha=0.7, ls='--') - axis.step(np.arange(len(box_lower)), box_lower, color='#222222', where='post', lw=0.7, alpha=0.7, ls='--') - - ax1.set_title('Full image') - - # If it is a large enough image, zoom the 2nd subplot around the extraction box region - if ((stack_shape[0] - max(box_upper)) > 20) and (min(box_lower) > 20): - ax2.set_ylim([(min(box_lower)-20),(max(box_upper)+20)]) - ax2.set_title('zoomed to 20 pixels above/below extraction box') - - # Otherwise just don't zoom in at all - else: - ax2.set_title('full image already 20 pixels above/below extraction box') + fig, (ax1, ax2, ax3) = plt.subplots(nrows=1, ncols=3, figsize=(9, 20*(9/41)), + gridspec_kw={'width_ratios': [1, 1, 0.05], 'height_ratios': [1]}) + + for axis in [ax1, ax2]: + axis.imshow(stack_image, interpolation='none', origin='lower', + extent=(0, stack_shape[1], 0, stack_shape[0]), cmap=cmap, norm=norm, aspect='auto') + axis.step(np.arange(len(box_upper)), box_upper, color='#222222', where='post', lw=0.7, alpha=0.7, ls='--') + axis.step(np.arange(len(box_lower)), box_lower, color='#222222', where='post', lw=0.7, alpha=0.7, ls='--') + + ax1.set_title('Full image') - cb = fig.colorbar(colormap.ScalarMappable(norm=norm, cmap=cmap), cax=ax3, - label='# times flagged as CR', ticks=np.arange(max_stack_value, max_stack_value + 2) - 0.5) - cb.set_ticklabels(np.arange(max_stack_value, max_stack_value+2)-1) + # If it is a large enough image, zoom the 2nd subplot around the extraction box region + if ((stack_shape[0] - max(box_upper)) > 20) and (min(box_lower) > 20): + ax2.set_ylim([(min(box_lower)-20),(max(box_upper)+20)]) + ax2.set_title('zoomed to 20 pixels above/below extraction box') - fig.suptitle(f"CR flagged pixels in stacked image: {obs_id}\n Proposal {propid!s}, " \ - f"exposure time {texpt:.2f}, {split_num!s} subexposures") - fig.tight_layout() + # Otherwise just don't zoom in at all + else: + ax2.set_title('full image already 20 pixels above/below extraction box') - plot_name = obs_id + '_stacked.png' - file_path = os.path.join(plot_dir, plot_name) - fig.savefig(file_path, dpi=150, bbox_inches='tight') - _inline_render_plot(fig, is_interactive_backend, user_interactive_setting) # show plot if in interactive env - finally: + cb = fig.colorbar(colormap.ScalarMappable(norm=norm, cmap=cmap), cax=ax3, + label='# times flagged as CR', ticks=np.arange(0, max_stack_value+1)+0.5) + cb.set_ticklabels(np.arange(0, max_stack_value+1)) + + fig.suptitle(f"CR flagged pixels in stacked image: {obs_id}\n Proposal {propid!s}, " \ + f"exposure time {texpt:.2f}, {split_num!s} subexposures") + fig.tight_layout() + + plot_name = obs_id + '_stacked.png' + file_path = os.path.join(plot_dir, plot_name) + fig.savefig(file_path, dpi=150, bbox_inches='tight') + + if show_plot: + plt.show() + else: plt.close(fig) - if is_interactive_backend and user_interactive_setting: - plt.ion() else: # Create Plotly image + margin = {'l': 60, 'r': 110, 't': 80, 'b': 60} + scale = min(1.0, 880 / stack_shape[1]) + data_width = int(stack_shape[1] * scale) + data_height = max(int(stack_shape[0] * scale), 250) + + cb_x = 1.02 # colorbar left edge, paper coords (Plotly's default) + cb_thickness = 30 # px; right edge = cb_x + cb_thickness/data_width + fig = go.Figure() # calculate required x and y range, colorbar info, and figure titles @@ -453,10 +492,9 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop file_path = os.path.join(plot_dir, plot_name) # add image of detector - fig.add_trace(go.Heatmap(z=stack_image, colorscale=dcolorsc, x=x, y=y, hoverinfo='text', - colorbar={'tickvals':tickvals, 'ticktext':ticktext, - 'title':{'text':'# times flagged as CR', 'side':'right', 'font':{'size':18}}}, - name='')) + fig.add_trace(go.Heatmap(z=stack_image, colorscale=dcolorsc, x=x, y=y, hoverinfo='text', + colorbar={'tickvals': tickvals, 'ticktext': ticktext, 'x': cb_x, 'xanchor': 'left', 'thickness': cb_thickness, 'len': 1, + 'title': {'text': '# times flagged as CR', 'side': 'right', 'font': {'size': 18}}}, name='')) # add extraction box fig.add_trace(go.Scatter(x=np.arange(len(box_upper)), y=box_upper, mode="lines", @@ -476,28 +514,36 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop {'label':zoom_options[1]['label'], 'method':'relayout', 'args':[{'yaxis.range': zoom_options[1]['yaxis_range']}]}] + # Force it to sit at the top right + menu_x = cb_x + cb_thickness / data_width fig.update_layout(updatemenus=[{'type' : 'dropdown', 'direction' : 'down', 'buttons' : button_options, - 'pad' : {'r':0, 't':0}, + 'pad' : {'b': 6}, 'showactive' : True, - 'x' : 1.07, # Position of the buttons; might require some more tweaking + 'x' : menu_x, 'xanchor' : 'right', - 'y' : 1.07, - 'yanchor' : 'top'}]) - - # Set the initial y-axis range (Full View) + 'y' : 1.0, + 'yanchor' : 'bottom'}]) + + # Set the initial axis ranges to match the full dropdown view fig.update_yaxes(range=[0, stack_shape[0]]) fig.update_xaxes(range=[0, stack_shape[1]]) - fig.update_layout(width=stack_shape[1] + 50, - height=int(stack_shape[1] * stack_shape[1] / stack_shape[0]) ) # adds space for colorbar to not squeeze the x-axis - fig.update_layout(title={'text':title_text, 'x':0.5}, font={'family':'Arial, sans-serif', 'size':16}) + fig_height = data_height + margin['t'] + margin['b'] + fig.update_layout(width=data_width + margin['l'] + margin['r'], + height=fig_height, + margin=margin) + + # Pin the title a little below the top + title_y = 1 - 22/fig_height + fig.update_layout(title={'text':title_text, 'x':0.5, 'y':title_y, 'yanchor':'top'}, + font={'family':'Arial, sans-serif', 'size':16}) fig.write_html(file_path) def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_times, texpt, - obs_id, propid, plot_dir, interactive): + obs_id, propid, plot_dir, interactive, show_plot=False): """Creates a visualization of where CR pixels are in each subexposure Parameters @@ -531,6 +577,9 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time interactive: bool If True, uses Plotly to create an interactive zoomable html plot + + show_plot: bool + If True, show the generated plot in a notebook session in addition to saving. Default=False. """ custom_cmap = colors.ListedColormap([ 'k', 'tab:orange', 'tab:blue', 'tab:green', 'tab:red', 'tab:cyan', 'tab:olive', @@ -549,49 +598,44 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time row_value = int(nrows) if not interactive: - is_interactive_backend = matplotlib.get_backend().lower() not in NON_INTERACTIVE_BACKENDS - user_interactive_setting = plt.isinteractive() - - if is_interactive_backend and user_interactive_setting: - plt.ioff() - - try: - fig, ax = plt.subplots(nrows=row_value, ncols=2, figsize=(9, nrows * 2)) - ax = ax.flatten() - - # Plot each subexposure with CR pixels a different color - for num, axis in enumerate(ax): - if num < len(splits): - axis.imshow(splits[num], interpolation='none', origin='lower', - extent=(0, splits[num].shape[1], 0, splits[num].shape[0]), - cmap=cmap, norm=norm, aspect='auto') - axis.step(np.arange(len(box_upper)), box_upper, color='#222222', where='post', - lw=0.7, alpha=0.7, ls='--') - axis.step(np.arange(len(box_lower)), box_lower, color='#222222', where='post', - lw=0.7, alpha=0.7, ls='--') - - if ((splits[num].shape[0] - max(box_upper)) > 20) and (min(box_lower) > 20): - axis.set_ylim([min(box_lower) - 20, max(box_upper) + 20]) - axis.set_title(f"zoomed subexposure {(num+1)!s}, exposure time {individual_exposure_times[num]!s}") - - else: - axis.set_title(f"subexposure {(num + 1)!s}, exposure time {individual_exposure_times[num]!s}") + # create matplotlib image + fig, ax = plt.subplots(nrows=row_value, ncols=2, figsize=(9, nrows * 2)) + ax = ax.flatten() + + # Plot each subexposure with CR pixels a different color + for num, axis in enumerate(ax): + if num < len(splits): + axis.imshow(splits[num], interpolation='none', origin='lower', + extent=(0, splits[num].shape[1], 0, splits[num].shape[0]), + cmap=cmap, norm=norm, aspect='auto') + axis.step(np.arange(len(box_upper)), box_upper, color='#222222', where='post', + lw=0.7, alpha=0.7, ls='--') + axis.step(np.arange(len(box_lower)), box_lower, color='#222222', where='post', + lw=0.7, alpha=0.7, ls='--') + + if ((splits[num].shape[0] - max(box_upper)) > 20) and (min(box_lower) > 20): + axis.set_ylim([min(box_lower) - 20, max(box_upper) + 20]) + axis.set_title(f"zoomed subexposure {(num+1)!s}, exposure time {individual_exposure_times[num]!s}") else: - axis.set_axis_off() + axis.set_title(f"subexposure {(num + 1)!s}, exposure time {individual_exposure_times[num]!s}") - fig.suptitle(f"CR flagged pixels in individual splits for: {obs_id}\n Proposal {propid!s}, " \ - f"total exposure time {texpt:.2f}, {split_num!s} subexposures") - fig.tight_layout() + else: + axis.set_axis_off() + + fig.suptitle(f"CR flagged pixels in individual splits for: {obs_id}\n Proposal {propid!s}, " \ + f"total exposure time {texpt:.2f}, {split_num!s} subexposures") + fig.tight_layout() - plot_name = obs_id + '_splits.png' - file_path = os.path.join(plot_dir, plot_name) - fig.savefig(file_path, dpi=150, bbox_inches='tight') - _inline_render_plot(fig, is_interactive_backend, user_interactive_setting) # show plot if in interactive env - finally: + plot_name = obs_id + '_splits.png' + file_path = os.path.join(plot_dir, plot_name) + fig.savefig(file_path, dpi=150, bbox_inches='tight') + + if show_plot: + plt.show() + else: plt.close(fig) - if is_interactive_backend and user_interactive_setting: - plt.ion() + else: subplot_titles = [f'zoomed subexposure {i+1}, exposure time {individual_exposure_times[i]}' diff --git a/tests/test_ocrreject_exam.py b/tests/test_ocrreject_exam.py index 0028f4fe..60187f05 100644 --- a/tests/test_ocrreject_exam.py +++ b/tests/test_ocrreject_exam.py @@ -26,13 +26,16 @@ def test_ocrrject_exam(self): for filename in self.input_list: local_file = self.get_data("input", filename) - expected_output = {'rootname': 'odvkl1040', - 'extr_fracs': np.array([0.31530762, 0.32006836]), - 'outside_fracs': np.array([0.00884673, 0.00810278]), - 'ratios': np.array([35.64113429, 39.50106762]), - 'avg_extr_frac': 0.31768798828125, - 'avg_outside_frac': 0.008474755474901575, - 'avg_ratio': 37.486389928547126} + expected_output = {{'rootname': 'odvkl1040', + 'n_splits': 2, + 'detector_box_fraction': 0.0068359375, + 'n_cr_pix': array([11787, 11052]), + 'n_total_cr_pix': 22839, + 'extr_fracs': array([0.36021205, 0.36063058]), + 'outside_fracs': array([0.00883899, 0.00813034]), + 'combined_ratio': 42.479135678716936, + 'combined_ratio_threshold': 1.4027214132251133, + 'overflagged_stat': True}} resulting_output = ocrreject_exam('odvkl1040', data_dir=os.path.dirname(local_file)) From 3208f922c3e47cebd89f49b13d054512fc23cf31 Mon Sep 17 00:00:00 2001 From: Matt Dallas Date: Wed, 24 Jun 2026 13:10:04 -0400 Subject: [PATCH 2/4] Fixed docstrings --- stistools/ocrreject_exam.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stistools/ocrreject_exam.py b/stistools/ocrreject_exam.py index e715ce66..69d904c7 100644 --- a/stistools/ocrreject_exam.py +++ b/stistools/ocrreject_exam.py @@ -115,10 +115,10 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive Option to print results to the terminal, default=False alpha: float - The desired significance level for rejecting the null hypothesis that the CRs are randomly distributed across the detector. Default=0.00135. + The desired significance level for rejecting the null hypothesis that the CRs are randomly distributed across the detector. Default=0.00135 from right tail of a 3 sigma probability. cr_size: float - The mean number of pixels each CR is assumed to hit. Effects the threshold ratio used to determine if the CR distribution is significantly different from random. Default=2.4. + The mean number of pixels each CR is assumed to hit. Affects the threshold ratio used to determine if the CR distribution is significantly different from random. Default=2.4. show_plot: bool If True, when interactive=False show the generated plot in a notebook session in addition to saving. Default=False. @@ -138,7 +138,7 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive - ``combined_ratio_threshold``: the maximum combined_ratio set by alpha under the null hypothesis of randomly distributed CRs - ``overflagged_stat``: boolean indicating if the observation is likely overflagged set by alpha based on the combined ratio - If called from the command line, prints the combined extraction, outside, and ratio values for quick verification similar to the older method shown in STIS ISR 2019-02 Appendix A. + If called from the command line, prints the combined extraction, outside, and ratio values for quick verification similar to the older method shown in STIS ISR 2019-02 Appendix A (https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/stis/documentation/instrument-science-reports/_documents/201902.pdf). """ if isinstance(obs_ids, (str,)): obs_ids = [obs_ids] From a82728a0383f8fdc93d67ca4bb963472385211e1 Mon Sep 17 00:00:00 2001 From: Matt Dallas Date: Wed, 24 Jun 2026 13:37:47 -0400 Subject: [PATCH 3/4] Added PEP8 changes --- stistools/ocrreject_exam.py | 265 ++++++++++++++++++------------------ 1 file changed, 134 insertions(+), 131 deletions(-) diff --git a/stistools/ocrreject_exam.py b/stistools/ocrreject_exam.py index 69d904c7..7f8535e6 100644 --- a/stistools/ocrreject_exam.py +++ b/stistools/ocrreject_exam.py @@ -74,9 +74,9 @@ """ __taskname__ = "ocrreject_exam" -__version__ = "1.1" -__vdate__ = "12-June-2026" -__author__ = "Matt Dallas, Joleen Carlberg, Sean Lockwood, STScI, December 2024." +__version__ = "1.1" +__vdate__ = "12-June-2026" +__author__ = "Matt Dallas, Joleen Carlberg, Sean Lockwood, STScI, December 2024." class BoxExtended(Exception): @@ -85,8 +85,8 @@ def __init__(self, message='Extraction box extends beyond frame'): def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive=False, verbose=False, alpha=0.00135, cr_size=2.4, show_plot=False): - """Compares the rate of cosmic rays in the extraction box and everywhere else - in a CCD spectroscopic image. Based on crrej_exam from `STIS ISR 2019-02 + """Compares the rate of cosmic rays in the extraction box and everywhere else + in a CCD spectroscopic image. Based on crrej_exam from `STIS ISR 2019-02 `_. Higher ratios of cosmic ray rates in the extraction box to the rest of the image @@ -95,11 +95,11 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive Parameters ---------- obs_ids: iter of str or str - One of more STIS observation ID rootnames in ipppssoot format (e.g. odvkl1040). + One of more STIS observation ID rootnames in ipppssoot format (e.g. odvkl1040). data_dir: str - Directory containing both the flat fielded (_flt.fits) and extracted - spectrum (_sx1.fits or _x1d.fits) files of the observation if using obs_ids argument. + Directory containing both the flat fielded (_flt.fits) and extracted + spectrum (_sx1.fits or _x1d.fits) files of the observation if using obs_ids argument. Defaults to current working directory. plot: bool @@ -113,9 +113,9 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive verbose: bool Option to print results to the terminal, default=False - + alpha: float - The desired significance level for rejecting the null hypothesis that the CRs are randomly distributed across the detector. Default=0.00135 from right tail of a 3 sigma probability. + The desired significance level for rejecting the null hypothesis that the CRs are randomly distributed across the detector. Default=0.00135 from right tail of a 3 sigma probability. cr_size: float The mean number of pixels each CR is assumed to hit. Affects the threshold ratio used to determine if the CR distribution is significantly different from random. Default=2.4. @@ -135,7 +135,7 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive - ``extr_fracs``: cosmic ray rejection rates in the extraction boxes for each CR-SPLIT - ``outside_fracs``: cosmic ray rejection rates outside the extraction boxes for each CR-SPLIT - ``combined_ratio``: cosmic ray rejection rate inside the extraction box divided by the rate outside it, combined across all splits (avg_extr_frac/avg_outside_frac) - - ``combined_ratio_threshold``: the maximum combined_ratio set by alpha under the null hypothesis of randomly distributed CRs + - ``combined_ratio_threshold``: the maximum combined_ratio set by alpha under the null hypothesis of randomly distributed CRs - ``overflagged_stat``: boolean indicating if the observation is likely overflagged set by alpha based on the combined ratio If called from the command line, prints the combined extraction, outside, and ratio values for quick verification similar to the older method shown in STIS ISR 2019-02 Appendix A (https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/stis/documentation/instrument-science-reports/_documents/201902.pdf). @@ -166,13 +166,13 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive # When first opening the flt file check that it is even of a CCD exposure try: instrument = flt_hdul[0].header['INSTRUME'] - detector = flt_hdul[0].header['DETECTOR'] - obsmode = flt_hdul[0].header['OBSMODE'] - nextend = flt_hdul[0].header['NEXTEND'] + detector = flt_hdul[0].header['DETECTOR'] + obsmode = flt_hdul[0].header['OBSMODE'] + nextend = flt_hdul[0].header['NEXTEND'] if (instrument.strip() != 'STIS') or \ - (detector.strip() != 'CCD') or \ - (obsmode.strip() != 'ACCUM') or \ + (detector.strip() != 'CCD') or \ + (obsmode.strip() != 'ACCUM') or \ (nextend < 6): raise ValueError except (KeyError, ValueError,) as e: @@ -183,7 +183,7 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive rootname = flt_hdul[0].header['ROOTNAME'] nrptexp_num = flt_hdul[0].header['NRPTEXP'] crsplit_num = flt_hdul[0].header['CRSPLIT'] - sci_num = len([hdu.name for hdu in flt_hdul if "SCI" in hdu.name]) # Counts the number of sci extensions + sci_num = len([hdu.name for hdu in flt_hdul if "SCI" in hdu.name]) # Counts the number of sci extensions if (crsplit_num * nrptexp_num - sci_num) != 0: raise ValueError(f"cr-split or nrptexp value in flt header does not match the number of sci extensions for {obs_id}") @@ -191,51 +191,51 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive # If all checks above passed, calculate cr fraction in and out of the extraction box spec = fits.getdata(sx1_file, ext=1)[0] - extrlocy = spec['EXTRLOCY'] - 1 # y coords of the middle of the extraction box shifted to 0 indexed - del_pix = spec['EXTRSIZE'] / 2. # value the extraction box extends above or below extrlocy - box_lower = np.ceil(extrlocy - del_pix).astype(int) # Ints of pixel values at end of trace - box_upper = np.floor(extrlocy + del_pix).astype(int)+1 # Ints of pixel values above end of trace (the +1 is to make it inclusive for python indexing) + extrlocy = spec['EXTRLOCY'] - 1 # y coords of the middle of the extraction box shifted to 0 indexed + del_pix = spec['EXTRSIZE'] / 2. # value the extraction box extends above or below extrlocy + box_lower = np.ceil(extrlocy - del_pix).astype(int) # Ints of pixel values at end of trace + box_upper = np.floor(extrlocy + del_pix).astype(int) + 1 # Ints of pixel values above end of trace (the +1 is to make it inclusive for python indexing) # Fill each of these lists with values for each cr split - extr_fracs = [] # fraction of pixels flagged as cr inside the extraction box for each split - outside_fracs = [] # fraction of pixels flagged as cr outside the extraction box for each split - cr_rejected_locs = [] # 2d array of 1s where a cr exists and 0 elsewhere + extr_fracs = [] # fraction of pixels flagged as cr inside the extraction box for each split + outside_fracs = [] # fraction of pixels flagged as cr outside the extraction box for each split + cr_rejected_locs = [] # 2d array of 1s where a cr exists and 0 elsewhere exposure_times = [] with fits.open(flt_file) as flt_hdul: - flt_shape = flt_hdul['sci', 1].data.shape # shape of the data + flt_shape = flt_hdul['sci', 1].data.shape # shape of the data # Check that the extraction box doesn't extend beyond the image: this breaks the method - if np.any(box_lower < 0) or np.any(box_upper > flt_shape[0]): + if np.any(box_lower < 0) or np.any(box_upper > flt_shape[0]): raise BoxExtended(f"Extraction box coords extend above or below the cosmic ray subexposures for {obs_id}") extr_mask = np.zeros(flt_shape) outside_mask = np.ones(flt_shape) for column in range(0, flt_shape[1]): - extr_mask[box_lower[column]:box_upper[column], column] = 1 # 1s inside the extraction box, 0s outside - outside_mask[box_lower[column]:box_upper[column], column] = 0 # 0s inside the extraction box, 1s outside + extr_mask[box_lower[column]:box_upper[column], column] = 1 # 1s inside the extraction box, 0s outside + outside_mask[box_lower[column]:box_upper[column], column] = 0 # 0s inside the extraction box, 1s outside - n_extr = np.count_nonzero(extr_mask) # number of pixels inside the extraction box - n_outside = np.count_nonzero(outside_mask) # number of pixels outside the extraction box + n_extr = np.count_nonzero(extr_mask) # number of pixels inside the extraction box + n_outside = np.count_nonzero(outside_mask) # number of pixels outside the extraction box - detector_box_fraction = float(n_extr/(n_extr+n_outside)) # fraction of the detector taken up by the extraction box, used for calculating probability of overflagging + detector_box_fraction = float(n_extr / (n_extr + n_outside)) # fraction of the detector taken up by the extraction box, used for calculating probability of overflagging total_cr_pixs = [] for i, hdu in enumerate(flt_hdul): if hdu.name == 'SCI': exposure_times.append(hdu.header['EXPTIME']) - dq_array = flt_hdul[i + 2].data # dq array corresponding to each sci extentsion + dq_array = flt_hdul[i + 2].data # dq array corresponding to each sci extentsion - extr_rej_pix = np.zeros(flt_shape) # 2d array where there is a 1 if a pixel inside the extraction box is marked as a cr + extr_rej_pix = np.zeros(flt_shape) # 2d array where there is a 1 if a pixel inside the extraction box is marked as a cr np.place(extr_rej_pix, (extr_mask == 1) & (dq_array & 2**13 != 0), 1) - outside_rej_pix = np.zeros(flt_shape) # 2d array where there is a 1 if a pixel outside the extraction box is marked as a cr + outside_rej_pix = np.zeros(flt_shape) # 2d array where there is a 1 if a pixel outside the extraction box is marked as a cr np.place(outside_rej_pix, (outside_mask == 1) & (dq_array & 2**13 != 0), 1) extr_cr_count = np.count_nonzero(extr_rej_pix) outside_cr_count = np.count_nonzero(outside_rej_pix) - total_cr_pixs.append(extr_cr_count + outside_cr_count) # number of pixels flagged as CR in each frame + total_cr_pixs.append(extr_cr_count + outside_cr_count) # number of pixels flagged as CR in each frame extr_fracs.append(extr_cr_count / n_extr) outside_fracs.append(outside_cr_count / n_outside) @@ -246,47 +246,47 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive extr_fracs = np.asarray(extr_fracs) outside_fracs = np.asarray(outside_fracs) - avg_extr_frac = float(np.sum(extr_fracs) / len(extr_fracs)) # Average fraction of crs inside extraction box - avg_outside_frac = float(np.sum(outside_fracs) / len(outside_fracs)) # Average fraction of crs outside extraction box - combined_ratio = float(avg_extr_frac / avg_outside_frac) # combined ratio of the stack + avg_extr_frac = float(np.sum(extr_fracs) / len(extr_fracs)) # Average fraction of crs inside extraction box + avg_outside_frac = float(np.sum(outside_fracs) / len(outside_fracs)) # Average fraction of crs outside extraction box + combined_ratio = float(avg_extr_frac / avg_outside_frac) # combined ratio of the stack - n_splits = len(extr_fracs) # Number of splits, works for cr-splits and nrptexps because it just counts the number of flt sci extensions + n_splits = len(extr_fracs) # Number of splits, works for cr-splits and nrptexps because it just counts the number of flt sci extensions combined_ratio_crit = combined_ratio_threshold(all_ncr_pix=int(np.sum(total_cr_pixs)), detector_box_fraction=detector_box_fraction, alpha=alpha, cr_size=cr_size) results = { - 'rootname' : obs_id, - 'n_splits' : n_splits, - 'detector_box_fraction' : detector_box_fraction, - 'n_cr_pix' : np.asarray(total_cr_pixs, dtype=int), - 'n_total_cr_pix' : int(np.sum(total_cr_pixs)), - 'extr_fracs' : extr_fracs, - 'outside_fracs' : outside_fracs, - 'combined_ratio' : combined_ratio, - 'combined_ratio_threshold' : float(combined_ratio_crit), + 'rootname': obs_id, + 'n_splits': n_splits, + 'detector_box_fraction': detector_box_fraction, + 'n_cr_pix': np.asarray(total_cr_pixs, dtype=int), + 'n_total_cr_pix': int(np.sum(total_cr_pixs)), + 'extr_fracs': extr_fracs, + 'outside_fracs': outside_fracs, + 'combined_ratio': combined_ratio, + 'combined_ratio_threshold': float(combined_ratio_crit), 'overflagged_stat': bool(combined_ratio >= combined_ratio_crit)} - if plot and (not interactive or not HAS_PLOTLY): # case with interactive == False + if plot and (not interactive or not HAS_PLOTLY): # case with interactive == False if not HAS_PLOTLY and interactive: warnings.warn('Plotly required for interactive plotting, using matplotlib and static pngs.') interactive = False - cr_rejected_stack = np.sum(cr_rejected_locs, axis=0) # stack all located crs on top of eachother + cr_rejected_stack = np.sum(cr_rejected_locs, axis=0) # stack all located crs on top of eachother stacked_exposure_time = sum(exposure_times) stack_plot(cr_rejected_stack, box_lower, box_upper, len(cr_rejected_locs), stacked_exposure_time, - rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) + rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) split_plot(cr_rejected_locs, box_lower, box_upper, len(cr_rejected_locs), exposure_times, - stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) + stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) - elif plot and interactive and HAS_PLOTLY: # case with interactive == True and Plotly is installed - cr_rejected_stack = np.sum(cr_rejected_locs, axis=0) # stack all located crs on top of each other + elif plot and interactive and HAS_PLOTLY: # case with interactive == True and Plotly is installed + cr_rejected_stack = np.sum(cr_rejected_locs, axis=0) # stack all located crs on top of each other stacked_exposure_time = sum(exposure_times) stack_plot(cr_rejected_stack, box_lower, box_upper, len(cr_rejected_locs), stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) split_plot(cr_rejected_locs, box_lower, box_upper, len(cr_rejected_locs), exposure_times, - stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) + stacked_exposure_time, rootname, propid, plot_dir, interactive=interactive, show_plot=show_plot) - if verbose: # This replicates the functionality from STIS ISR 2019-02 Appendix A + if verbose: # This replicates the functionality from STIS ISR 2019-02 Appendix A print(f"\nFor {obs_id}") print(f"Average rejection across all extraction boxes: {avg_extr_frac:.1%}") print(f"Average rejection across all external regions: {avg_outside_frac:.1%}") @@ -297,6 +297,8 @@ def ocrreject_exam(obs_ids, data_dir='.', plot=False, plot_dir=None, interactive return result_list # Probability function + + def combined_ratio_threshold(all_ncr_pix, detector_box_fraction, alpha, cr_size): """Returns the largest combined ratio that can occur given a significance level alpha under the null hypothesis that the CRs are randomly distributed across the detector. @@ -304,7 +306,7 @@ def combined_ratio_threshold(all_ncr_pix, detector_box_fraction, alpha, cr_size) ---------- all_ncr_pix: int The total number of cosmic ray flagged pixels across all splits. - + detector_box_fraction: float The portion of the readout area taken up by the extraction box (probability for the inverse survival function). @@ -312,35 +314,37 @@ def combined_ratio_threshold(all_ncr_pix, detector_box_fraction, alpha, cr_size) The desired significance level for determining if a ratio is likely to be due to overflagging. cr_size: float - The number of pixels each cr hit is assumed to impact. - + The number of pixels each cr hit is assumed to impact. + Returns ------- combined_ratio_threshold: float The maximum combined_ratio that can be observed within the significance level. """ - - ncr_hits_inside_threshold = binom.isf(alpha, int(round(all_ncr_pix/cr_size)), detector_box_fraction) + 1 # Max number of cr hits in the extraction box we can observe within alpha - ncr_pix_inside_threshold = ncr_hits_inside_threshold*cr_size # convert back from hits to flagged pixels - ncr_pix_outside_threshold = all_ncr_pix - ncr_pix_inside_threshold # number of cr flagged pixels remaining outside the extraction box - combined_ratio_threshold = (ncr_pix_inside_threshold / ncr_pix_outside_threshold) * ((1 - detector_box_fraction) / detector_box_fraction) # the corresponding combined_ratio + + ncr_hits_inside_threshold = binom.isf(alpha, int(round(all_ncr_pix / cr_size)), detector_box_fraction) + 1 # Max number of cr hits in the extraction box we can observe within alpha + ncr_pix_inside_threshold = ncr_hits_inside_threshold * cr_size # convert back from hits to flagged pixels + ncr_pix_outside_threshold = all_ncr_pix - ncr_pix_inside_threshold # number of cr flagged pixels remaining outside the extraction box + combined_ratio_threshold = (ncr_pix_inside_threshold / ncr_pix_outside_threshold) * ((1 - detector_box_fraction) / detector_box_fraction) # the corresponding combined_ratio return combined_ratio_threshold # Plotting-specific functions: + + def _gen_color(cmap, n): - """Generates n distinct colors from a given colormap. + """Generates n distinct colors from a given colormap. Based on mycolorpy's gen_color() from https://github.com/binodbhttr/mycolorpy """ colorlist = [] for c in cmap.colors[0:n]: - clr = colors.rgb2hex(c) # convert to hex - colorlist.append(str(clr)) # create a list of these colors + clr = colors.rgb2hex(c) # convert to hex + colorlist.append(str(clr)) # create a list of these colors - colorlist.pop(0) # Make it light grey rather than black at the beginning (I think it's easier on the eyes) + colorlist.pop(0) # Make it light grey rather than black at the beginning (I think it's easier on the eyes) colorlist.insert(0, '#F5F5F5') return colorlist @@ -356,9 +360,9 @@ def _discrete_colorscale(bvals, colors): bvals = sorted(bvals) nvals = [(v - bvals[0]) / (bvals[-1] - bvals[0]) for v in bvals] # normalized values - dcolorscale = [] # discrete colorscale + dcolorscale = [] # discrete colorscale for k, color in enumerate(colors): - dcolorscale.extend([[nvals[k], color], [nvals[k+1], color]]) + dcolorscale.extend([[nvals[k], color], [nvals[k + 1], color]]) return dcolorscale @@ -403,14 +407,14 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop plot_dir: str Directory to save plot in - interactive: bool + interactive: bool If True, uses Plotly to create an interactive zoomable html plot - + show_plot: bool If True, show the generated plot in a notebook session in addition to saving. Default=False. """ stack_shape = stack_image.shape - max_stack_value = int(np.max(stack_image)) # This is usually equal to stack_shape, + max_stack_value = int(np.max(stack_image)) # This is usually equal to stack_shape, # in the case where a cr pixel is not in all splits at the same location this value should be used color_list = [ @@ -428,12 +432,12 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop if not interactive: # create matplotlib image - fig, (ax1, ax2, ax3) = plt.subplots(nrows=1, ncols=3, figsize=(9, 20*(9/41)), - gridspec_kw={'width_ratios': [1, 1, 0.05], 'height_ratios': [1]}) + fig, (ax1, ax2, ax3) = plt.subplots(nrows=1, ncols=3, figsize=(9, 20 * (9 / 41)), + gridspec_kw={'width_ratios': [1, 1, 0.05], 'height_ratios': [1]}) for axis in [ax1, ax2]: axis.imshow(stack_image, interpolation='none', origin='lower', - extent=(0, stack_shape[1], 0, stack_shape[0]), cmap=cmap, norm=norm, aspect='auto') + extent=(0, stack_shape[1], 0, stack_shape[0]), cmap=cmap, norm=norm, aspect='auto') axis.step(np.arange(len(box_upper)), box_upper, color='#222222', where='post', lw=0.7, alpha=0.7, ls='--') axis.step(np.arange(len(box_lower)), box_lower, color='#222222', where='post', lw=0.7, alpha=0.7, ls='--') @@ -441,7 +445,7 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop # If it is a large enough image, zoom the 2nd subplot around the extraction box region if ((stack_shape[0] - max(box_upper)) > 20) and (min(box_lower) > 20): - ax2.set_ylim([(min(box_lower)-20),(max(box_upper)+20)]) + ax2.set_ylim([(min(box_lower) - 20), (max(box_upper) + 20)]) ax2.set_title('zoomed to 20 pixels above/below extraction box') # Otherwise just don't zoom in at all @@ -449,17 +453,17 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop ax2.set_title('full image already 20 pixels above/below extraction box') cb = fig.colorbar(colormap.ScalarMappable(norm=norm, cmap=cmap), cax=ax3, - label='# times flagged as CR', ticks=np.arange(0, max_stack_value+1)+0.5) - cb.set_ticklabels(np.arange(0, max_stack_value+1)) + label='# times flagged as CR', ticks=np.arange(0, max_stack_value + 1) + 0.5) + cb.set_ticklabels(np.arange(0, max_stack_value + 1)) - fig.suptitle(f"CR flagged pixels in stacked image: {obs_id}\n Proposal {propid!s}, " \ - f"exposure time {texpt:.2f}, {split_num!s} subexposures") + fig.suptitle(f"CR flagged pixels in stacked image: {obs_id}\n Proposal {propid!s}, " + f"exposure time {texpt:.2f}, {split_num!s} subexposures") fig.tight_layout() plot_name = obs_id + '_stacked.png' file_path = os.path.join(plot_dir, plot_name) fig.savefig(file_path, dpi=150, bbox_inches='tight') - + if show_plot: plt.show() else: @@ -492,40 +496,40 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop file_path = os.path.join(plot_dir, plot_name) # add image of detector - fig.add_trace(go.Heatmap(z=stack_image, colorscale=dcolorsc, x=x, y=y, hoverinfo='text', - colorbar={'tickvals': tickvals, 'ticktext': ticktext, 'x': cb_x, 'xanchor': 'left', 'thickness': cb_thickness, 'len': 1, - 'title': {'text': '# times flagged as CR', 'side': 'right', 'font': {'size': 18}}}, name='')) + fig.add_trace(go.Heatmap(z=stack_image, colorscale=dcolorsc, x=x, y=y, hoverinfo='text', + colorbar={'tickvals': tickvals, 'ticktext': ticktext, 'x': cb_x, 'xanchor': 'left', 'thickness': cb_thickness, 'len': 1, + 'title': {'text': '# times flagged as CR', 'side': 'right', 'font': {'size': 18}}}, name='')) # add extraction box fig.add_trace(go.Scatter(x=np.arange(len(box_upper)), y=box_upper, mode="lines", - line=go.scatter.Line(color='#222222', dash='dash'), showlegend=False, - opacity=0.7, line_shape='hv', name='extraction box')) + line=go.scatter.Line(color='#222222', dash='dash'), showlegend=False, + opacity=0.7, line_shape='hv', name='extraction box')) fig.add_trace(go.Scatter(x=np.arange(len(box_lower)), y=box_lower, mode="lines", - line=go.scatter.Line(color='#222222', dash='dash'), showlegend=False, - opacity=0.7, line_shape='hv', name='extraction box')) + line=go.scatter.Line(color='#222222', dash='dash'), showlegend=False, + opacity=0.7, line_shape='hv', name='extraction box')) # y-axis zoom ranges - zoom_options = [{'label':'Full Detector', 'yaxis_range':[0, stack_shape[0]]}, - {'label':'Extraction Box', 'yaxis_range':[(min(box_lower)-20), (max(box_upper)+20)]}] + zoom_options = [{'label': 'Full Detector', 'yaxis_range': [0, stack_shape[0]]}, + {'label': 'Extraction Box', 'yaxis_range': [(min(box_lower) - 20), (max(box_upper) + 20)]}] # Add the toggle buttons - button_options = [{'label':zoom_options[0]['label'], 'method':'relayout', - 'args':[{'yaxis.range': zoom_options[0]['yaxis_range']}]}, - {'label':zoom_options[1]['label'], 'method':'relayout', - 'args':[{'yaxis.range': zoom_options[1]['yaxis_range']}]}] + button_options = [{'label': zoom_options[0]['label'], 'method': 'relayout', + 'args': [{'yaxis.range': zoom_options[0]['yaxis_range']}]}, + {'label': zoom_options[1]['label'], 'method': 'relayout', + 'args': [{'yaxis.range': zoom_options[1]['yaxis_range']}]}] # Force it to sit at the top right menu_x = cb_x + cb_thickness / data_width - fig.update_layout(updatemenus=[{'type' : 'dropdown', - 'direction' : 'down', - 'buttons' : button_options, - 'pad' : {'b': 6}, - 'showactive' : True, - 'x' : menu_x, - 'xanchor' : 'right', - 'y' : 1.0, - 'yanchor' : 'bottom'}]) - + fig.update_layout(updatemenus=[{'type': 'dropdown', + 'direction': 'down', + 'buttons': button_options, + 'pad': {'b': 6}, + 'showactive': True, + 'x': menu_x, + 'xanchor': 'right', + 'y': 1.0, + 'yanchor': 'bottom'}]) + # Set the initial axis ranges to match the full dropdown view fig.update_yaxes(range=[0, stack_shape[0]]) fig.update_xaxes(range=[0, stack_shape[1]]) @@ -534,11 +538,11 @@ def stack_plot(stack_image, box_lower, box_upper, split_num, texpt, obs_id, prop fig.update_layout(width=data_width + margin['l'] + margin['r'], height=fig_height, margin=margin) - + # Pin the title a little below the top - title_y = 1 - 22/fig_height - fig.update_layout(title={'text':title_text, 'x':0.5, 'y':title_y, 'yanchor':'top'}, - font={'family':'Arial, sans-serif', 'size':16}) + title_y = 1 - 22 / fig_height + fig.update_layout(title={'text': title_text, 'x': 0.5, 'y': title_y, 'yanchor': 'top'}, + font={'family': 'Arial, sans-serif', 'size': 16}) fig.write_html(file_path) @@ -575,7 +579,7 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time plot_dir: str Directory to save plot in - interactive: bool + interactive: bool If True, uses Plotly to create an interactive zoomable html plot show_plot: bool @@ -606,12 +610,12 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time for num, axis in enumerate(ax): if num < len(splits): axis.imshow(splits[num], interpolation='none', origin='lower', - extent=(0, splits[num].shape[1], 0, splits[num].shape[0]), - cmap=cmap, norm=norm, aspect='auto') + extent=(0, splits[num].shape[1], 0, splits[num].shape[0]), + cmap=cmap, norm=norm, aspect='auto') axis.step(np.arange(len(box_upper)), box_upper, color='#222222', where='post', - lw=0.7, alpha=0.7, ls='--') + lw=0.7, alpha=0.7, ls='--') axis.step(np.arange(len(box_lower)), box_lower, color='#222222', where='post', - lw=0.7, alpha=0.7, ls='--') + lw=0.7, alpha=0.7, ls='--') if ((splits[num].shape[0] - max(box_upper)) > 20) and (min(box_lower) > 20): axis.set_ylim([min(box_lower) - 20, max(box_upper) + 20]) @@ -623,19 +627,18 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time else: axis.set_axis_off() - fig.suptitle(f"CR flagged pixels in individual splits for: {obs_id}\n Proposal {propid!s}, " \ - f"total exposure time {texpt:.2f}, {split_num!s} subexposures") + fig.suptitle(f"CR flagged pixels in individual splits for: {obs_id}\n Proposal {propid!s}, " + f"total exposure time {texpt:.2f}, {split_num!s} subexposures") fig.tight_layout() plot_name = obs_id + '_splits.png' file_path = os.path.join(plot_dir, plot_name) fig.savefig(file_path, dpi=150, bbox_inches='tight') - + if show_plot: plt.show() else: plt.close(fig) - else: subplot_titles = [f'zoomed subexposure {i+1}, exposure time {individual_exposure_times[i]}' @@ -656,8 +659,8 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time row_iterator = 1 for num, split in enumerate(splits): # calculate required x and y range to not center the pixels at 0,0 - x = np.arange(start=0, stop=split.shape[1]+1, step=1) - y = np.arange(start=0, stop=split.shape[0]+1, step=1) + x = np.arange(start=0, stop=split.shape[1] + 1, step=1) + y = np.arange(start=0, stop=split.shape[0] + 1, step=1) # determine correct row, column to put the plot in if (num + 1) % 2 != 0: @@ -665,7 +668,7 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time row_iterator += 1 current_column = 1 else: - #current_row = current_row + # current_row = current_row current_column = 2 # plot the pixel of each split and the extraction box values @@ -692,7 +695,7 @@ def split_plot(splits, box_lower, box_upper, split_num, individual_exposure_time height=(((max(box_upper) + 20) - (min(box_lower) - 20)) * 3 * len(splits))) fig.update_layout(title={'text': title_text, 'x': 0.5, 'y': 1. - (0.15 / len(splits))}, font={'family': 'Arial, sans-serif', 'size': 16}, - title_pad={'b': 20*len(splits)}) + title_pad={'b': 20 * len(splits)}) fig.write_html(file_path) @@ -700,25 +703,25 @@ def call_ocrreject_exam(): """Command line usage of ocrreject_exam """ parser = argparse.ArgumentParser( - description="Calculate fractions of cosmic ray rejected pixels inside and outside " \ + description="Calculate fractions of cosmic ray rejected pixels inside and outside " "of an extraction box to test for CR algorithm failures.", epilog=f'v{__version__}; Written by {__author__}') parser.add_argument(dest='obs_ids', metavar='obs_id', type=str, nargs='+', - help='observation id(s) in ipppssoot format') + help='observation id(s) in ipppssoot format') parser.add_argument('-d', dest='data_dir', type=str, default='.', - help="directory containing observation flt and sx1/x1d files. Defaults to current " \ - "working directory.") + help="directory containing observation flt and sx1/x1d files. Defaults to current " + "working directory.") parser.add_argument('-p', dest='plot', action='store_true', - help="option to create diagnostic plots") + help="option to create diagnostic plots") parser.add_argument('-o', dest='plot_dir', type=str, default=None, - help="output directory to store diagnostic plots if plot=True. Defaults to data_dir.") + help="output directory to store diagnostic plots if plot=True. Defaults to data_dir.") parser.add_argument('-i', dest='interactive', action='store_true', - help="option to create zoomable html plots instead of static pngs. Defaults to False " - "and requires Plotly if True") + help="option to create zoomable html plots instead of static pngs. Defaults to False " + "and requires Plotly if True") kwargs = vars(parser.parse_args()) - kwargs['verbose']=True + kwargs['verbose'] = True ocrreject_exam(**kwargs) From 5f19da38790c87eaf76de146aedd84a53673b0f0 Mon Sep 17 00:00:00 2001 From: Matt Dallas Date: Sat, 27 Jun 2026 18:53:01 -0400 Subject: [PATCH 4/4] Bumped version number --- stistools/ocrreject_exam.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stistools/ocrreject_exam.py b/stistools/ocrreject_exam.py index 7f8535e6..3426cb1a 100644 --- a/stistools/ocrreject_exam.py +++ b/stistools/ocrreject_exam.py @@ -74,8 +74,8 @@ """ __taskname__ = "ocrreject_exam" -__version__ = "1.1" -__vdate__ = "12-June-2026" +__version__ = "1.2" +__vdate__ = "27-June-2026" __author__ = "Matt Dallas, Joleen Carlberg, Sean Lockwood, STScI, December 2024."