From a98688a6d26cd6b6d6468ac8e88e3a18dadeae90 Mon Sep 17 00:00:00 2001 From: Runyang Xu Date: Thu, 22 Jan 2026 19:34:24 -0500 Subject: [PATCH] no.18 --- docs/.doctrees/api/pyhazards.datasets.doctree | Bin 73784 -> 143439 bytes docs/.doctrees/environment.pickle | Bin 266876 -> 290941 bytes docs/_modules/index.html | 1 + docs/api/pyhazards.datasets.html | 251 +++++++++++++++++- docs/api/pyhazards.html | 47 +++- docs/genindex.html | 103 ++++++- docs/objects.inv | Bin 2054 -> 2217 bytes docs/py-modindex.html | 18 ++ docs/searchindex.js | 2 +- 9 files changed, 399 insertions(+), 23 deletions(-) diff --git a/docs/.doctrees/api/pyhazards.datasets.doctree b/docs/.doctrees/api/pyhazards.datasets.doctree index c2298d86208fda80f72bae852ee5c64a94a39c57..8b373eb4936821f78ee5bf00f4b534a58a492ed3 100644 GIT binary patch delta 16352 zcmcgzd3;k<_UGLey3lm7rI2RnOV_kb)1(C*D~qLwY%)_3aKnLmo#mm{Fcw;kG#8{ zd++(4bM86!-S^6_=zT|H@9B^dqWbiaUQUu0rtpVZf|ScEhNcFOrbwy5w^O8feC58Y z;_KRTXExQfG`g?hmZUVSjF0MQ&*7(j%%Dt4ho|4fK!>ZvQ{UDWY3uNqC$`imHBz5G1q(XncUV1r+xd;|7Qd^e(JhC& z%0NJF_PLvVO|@>nzrlN_>~YO?`Re34SHR_W2mJQ<$`+r`?F}@x%FT_gTDPaEvCi%D zUn4inY;JVVgc{ikvv4&w%yk7Cn!Gl-!P{2no+H;b&1`N7sAU27%;qMat5Kfa;H_(d zzdLQRJ5X!y@Wf2(@TC7gPj1pBXLtFNyT3y)&!7bKe0ODOp5oW{>Ekhvmk0+)8a+`h zHEvHPve+`M!>Y`J2Ep-HNY?&tPc|$qcUnh#C)7Vrl}y3iS4gQS4*c|gr3KBYQgSdV zRT{#U>3LOV(Ev{p5MP4h0CA7WV}tQzzI@-+ASqd$B?WrMfTUPRQZQraA}L`a?e$z< zSClNU?IJMPvqyn>YocqW+usbBlbDFk#r|e@Z9{!SttKIIW0MO7LbkeHzJO;|i))74 z1~50))i?McRo~duRA-YtAVm$eE-#ccy1aG%#)djbq6ie&<9}7&)ZEhO3b>(Pzyp%w zt@XJfH%bVh>~E>5ZFKqlZodqDWuN=b27kcqlLH?2Om2xD$eaHa-=<2^zj4+PlP><> z%sP#2BEia0HiiXDgDq09p3w&rQ>1~x$3R{rcksDXX&TBS4~ zhHrRrD*K0?OIsc6te!tHzYKG`2NXvC08`+`e!l+Cgse|0QjOEpopQR4uzsav@CDbI z`Sjb31F^FZeI+?VXj@B-=T$yE#u=q#V!Lu(L>pc;ELFOa?~WeEy$j=cL#$3Z#HYum z^R=<5QOb}EUbU!3kdl`*%dc6F&< z6Q9Lb$5*oXqPmr;S#bv6GQ!biR;OQSWI$}i&j$8`p1Vp0MJeCu`IaNOldouQRW;GB znb{6yD%fgIKjmh4C>EHFato$5VG6U0I+WYAD%=U?c}yYpfW0`W=chLt_)%XHzjnu! zY;y+Rz1+y(pPt8F&EWfV2DUSUOXhKGdj_9Xd^LL;a`Of!5cTDPEMK?Nz_%sOz`k2D zvv_k-jP4K&tXjM0U?nx_{L!SpvLisevW(h7X+>QHFyEbG;iZ;={F!lSJn;&BQpAph ztyUF5`DDfnh+o2aBuwV5T>;B93HxwkY88*o&Se7(e8t?WS&D%ln2^V^4J28Rt4N!| z$_)IsX)+sPpw&1Hw3-o+n>RSI^J)O)1p|g74Uk7&csM25z%8p&*}q_sM{=_-iiCgw z!Qcs3WW)+ErWtr^dY=9c1IUU70i;z9{hR?1j9~C^l~kmAp+YHR@YjT?!6L;^kNpJ$ zcCTJWX|=jQOZGe9oY3?1g%_XV4_}ATg0G zG=L*e!yQUIe@kD>)*49AAA<#MD`Y`@Wbx^<5_Jo4j>K$bm4TmrWd<)bIIuU#WSapw z;kXP=C~xCRNGv}z@J|hux>ZP7?1l?~@@7MDSd=uK9fp}?+W0AB4Eqe`7%1irQ&L~$ zP2d5aVB+k*4E#?fGdm+d{D%OM84<(*AL1CQNJ44_AOJgD#n3@~dU-tm!JNu|0J*rU zgq^@a%GfdNZRYpPj*fc;=z}W2kXtef*e9V1zIk>GJ7@?xlfhELJY6N(Jb8{G{Td?- zKoAYZ6hSo9*a;$OFi*5(l3af_Dvj4zatMVtiuhK`FWF=xiZZJ*^4G7M#-Geu$~;CA z+&Uu(?p;Ri;)DAF>6RM)u&In+yC;svg5*W>x)*kR&S!XX?$C_TC(lj6ey z&o7LBgq;%XJ1*FF)<}8}xy?@uX9*_${S$hYXd<4)n}}zFAlKE39eC0@=r{}n#yq`U zx~Q1-|e=d^t1{_;z55@a-^l(t{WWnJGV7Dbj}1bJF-C zhpb_I&@qZVZz65jXyWg;PUG90FSA`H(uUW7-(be~ng~wFA)H49oJR!+UkZ*L?*Rma z^EF&VH#mV3!pY18XSA6FqmP*cBN1|41q0y>QHq2UNFki7O(R*JnM{*akjoL|N{QTn z9(1#dX~H=Hw(vk~H^RJCMcrv4MO|+~MKxa-<`!oOtstXT<)(wpWwDp)GXzR@yv|HLr7&s1S54~4sr29jS1EIzN(HNXQ z*s`R2t}oAH1s&XVegN3xfl-R;4L(u6j4cB$fhYKgnSh2I7%R5e%-{IB2HN)Lj-kmA z_FU2n+++qJA}>(47^a{yZ=;#-9a_#_!OHS36;;FTWqZxE@x5=Rjqe>ZzjF9E_7_q3 zH5JCb1Jua9)BLydqWY&$AN1cM$3*{ahnf60SOx8s3(bgM@BZ5kG=9ggg$yDjK}xe%GpbqWE;2P)P-$)QA~eVCfUY_ z>7#7~I=I8N;e>_5vLcfdXD+PfNUrhXiUaGvFh*uap!wKL{Z~LhWAcjd>gQ#WZomU| z<9nzOy72?1NH>0f7T}=)Q&8NUw5=gKD1zs^##uCW=*Ev_aWb+ap|7mXw%tv>>@M(u z<0mX(Mwys1NG9eK%A^;NLjzbY(|$Ho7O2VsRmgQk6%F7Z7@@lX1WITC?*Q_!pG_B( zZWol49w?y!3{i?SfIv#y&+e58vxP`bV0Mon`H@Wex4#~7vZJCtHTMs1jev>D#Qv$N%0NYNz^08pb_0UK#Welc> zDPt@eQ_$9fkn)dO?H@-DlC}Q{Q<&APJ*G8jUJ7XyI1g~TleND9+)|_UxGb{v{j`k`76gT9)b&(8`CaMrSQMNNvt>{%45W5cr$Mb%ZXqG~?8(U79z84fh@ z?3wSaGg3RS_v!9y*^OCb;3gtn;kToKyO}%cV)!}tb-HkcGChj|%N_LvY+{yR-`Ff< z-z5S|;v1cJ%!UyJ2ivmvt#=O5O%E?+JW$pG%Vk-iz;X#NDsYHx$l@DXGTA1xFmpDEd`32jye&H<@=$^zUoJ{eybK0TZNw&@l&Np$?B=;#V}gc9u76z&Km zYDe^nqOvvkl>ym=@?U0IaayD#=Pw`SRX|9fye6C9?<>;{K+3|D^#RJH5zn!wvq@$@ zYIWhFV@3V%V3Gk3+X*vMPZnOuCIR>~n*`vqY*Ltyvq@pTh8!r&8XT~*0PN2u0r&u^ zl(F})afAQ>O%#BaLlqosgh4&m+00h>9E+ve7?F*)QwjLIPgVoDBqSEFDw z-aNRB)k86C{GJ?Id0h^z+y}X?rUEv81~hOdazba-zE;i6C>>UHFJxc}L6Y5#*Ik!qhI5POey>@WwR*V{3LS#AHr zv<9pR(kie&A+X`o>eqmk>i+jmF71Es0;}O{?5$i9>VuF2p(g62&M;Bj|L$JW$e^#b z|9ul4;8j=&oL2v0=>zOLAii`hgA&;O;>v10F0a?!NRdvA3Oi5VlgphCrE}df9W?|C zJbKx9mXt>t**}lRzB>&XEM-}Fq><)4(nv=hNdn}4v#Ekzo5v4tGO>|)Fm>TM56`3N zPsk(hFk(`aj?Rs@9uufvI22`pX|3XW`YsF0UXE{#AFge-fezr*Sml(TLX%)xn2YY(8Ndoln@N=M%P& zLu~W%30rG^2-}=|!nQQOXKbVMd%_l|VaPTPh5*Yw0jZ5+V+5rskn0L0T5jwEK*9r= z9-g@pl}|w4B_`_2M<5r9HTc9DR#KJ0r_H4+kkG6#GsnWmt(7&sT(x#2 zJDg8?c_^Raw>j%pvr}T-$HltO3YI{Qj*hM3=-5i!j<*tSgCN(H+jMk{OX+sj2$bmP z*h;vS3QBfCX=o3WFw{P-QHl(;fs__%-((d>$4E{Xj2i{X>DKN-MMuX%6o3T6b_fPg zb^2I7h1v)6d)Ghj(-wBGm9KbO*579h!*&db3H|#RK!IHs9tazUMgq1DOc87y)=sd& zOOm6{m?I$j!zc^)Z5+tQZxH4bUYOj!;Rg1+m0;Uwr57f?jqPj~OazXPUIV`35wVq2 z4sxh+N35iBN5kCtQgG*Z58Od>`Wh~$8+1So%_%E@^@*z{UCe280m(%lcn1eBMiU{| zRW8t+0vS5lwG!($!cZ#fcUnmc?FBUV!UEL7p#`+8!U9^>II1!f!VGA7U9}LJA)Jvk zQ47~wdxvw`=3M3};4f{?(Kp}#suu3V2?{u$2C(oz*h+A=LL&j^Tuc$1a|<*$(TRe+ zS#zQu2sM5%)c8TsSU6FMrPuph&7Pao%RP8vfHw%}rDbkJ)kV(_emXs*@0~~lFE1G= zW$&>kUtzHn7WPzSonw<*ZL+IQfvYOs+SXyXU-5M>RS)a-|+0>LiJ+2^!83AVXmYW(rl9oDK@qgf){&H{Sd-p1b`sq`#Jgev zSA!QWgW*-i+NKt7ptYpV)hhb~t$5YZ?e#ao$DTLExXmL@8X0@9Hy@LuPt^~in~UZa#7;AWe8H&Sk@m;D}Bvs<<{yZnJ_Sd8B$ zds}8!)9M=BYOY?yto{PJ6X$|!bv5qB_;BZl9tELgYQwhuyT%RkVlARbZudlwnSW53 zpQf=T3gE6*Yq|4ie$r#eE)lRG=lBy}WzajyZO};UU)wQ7``7kD+`szMy*Cq4 z9-lt}8G<1_cmBzwzO~E<74{tGk9+ZDwjYEXc8$*pX-kJ3?iwEy(u+*I!*O9N-rv0B zi_DXS+CHHBAhc-ZL?K`MQaSq>E6cl7;F0!_mtSTnMP$QtMHKVL74aLk&1MCnFqaBr z@WNCO2S(+yx2aXs~CrbkpUAOao z2K_XnuoXsDi9c9G@xK4HS!@Rou572vHW#+`?F)hhm3T>QFh+_zWluWC%RCF-PEU@! zSB=fyn8%J3Av)}fBJxt98J``zi=Bo6z*9Y0L@wQhA`%VAp{JT;BTqHO7V_hDHd=$h zMt*$68qiZcDFEzpKLw~^kWpr%AY%wp8^@f2(g?_P=%8g7FDz}x;cRT*xxkuasVcXdmlS$CS~mVN>VT=HEkAT{UhT=rWV zU;B2B{!tu2bxTi#5j#{wZYex4%Gd;rgjzp~DN^faZRC~$EEpWxwcwBtgp1RFFx;U6 z%;2zQ$)0Q3TQsGNtV%;B!b$=^Z0yzv0|7oM(@JGSzzYA_l z#of7$!Qn@^lx`6QP(s}F#e|yy`T}kPi%9}a0sNd;BZ(m1&1S$oCprD z5hTYJcNZ!Q4sjYF3h+SKkPWIR9JEnzxYO1Lf#G*h*>hlc zQXqLu5dX0UBrz}qGRSs#Alp|WHKBp)i%A0q+G*~ocGSRJJ1r~KPRlBzDnqJWonBWB zgl64oq6RK2?j6echjLk!ov%NXqrVXcP&IHpPEbJkFaQNm!ULhKfkpz#T1*j?wf0U> z#+Sky;2G6{)@C=|0|Pw8ZNHUYrSWN>Cu+JF{ConNXGcI2<^UzZ4f_6I61EI}F@-%W z*sxTvVKuQKdMPxf_ZrVbF`SNVwv!?~YbQl|6>>cpK%jx|HNqn)OYHp2mt)u`g6{{2 z?|&8p9uNbb)~a~AxCrWTFcLyb#9jY~vh^_4~$ zZ#Ywm0l2uXQuR|B|LlwoFZiR8O!-${Z*I$&62OhZ*Mw0phKijJUiucrcK*l+zPE_u zwx6c4so0@h7jCRfDZx0D52!EhQVLNOpZ;?RyQPF2j!`ABFt`#wq6B5R^rCFluEgJh zYbJ-|UP_hlg0oiL6r82tYz43aI13M8Sa5N&WJ+IwE$KDwN=y-ZS9a!DqMf1;aI72g z>l5B~PL2Zh;k$5aL`^qmF~l4^KaONhnuu&7`{U_FzNpbgv(~r*wVnbs*uCr{hUdZ< zZNSx&wV_+|k<*yc(=?D*U<$*h5W2`|s+O=zY1o6`Dew*ttn47XZ|F;l5z%@0e4uk_ zIGXQVn%=JF!ebl&ig4!eVF`J_@8Lt-V~-s5qEY(mLclht0`?>cSWT}2_Bx6P3D|i| zVOI5M+mj-gWG%pmmOjAPfdB~cdkV$Rz)uAd+pew@;w0C%cxy4-gzuDG0SHK4wKM$k z91*T*hgEVzJ$!)IbQgRMRTqlU{tp!H?}*pFS&MdH=$WRh56@BpTZR%7T+mOF`48za zNl#&=x?@2S11+IE252gj$A~FX9-{+olNMan{OdiPu+zxKi~HVT`T>zwKW;p>=62U()eFO>3_44K^u zSrDr!4ic*y9en<`*D;?1He_)|J6bGef=?VE`Y%R{S zdpNZD)IodaK?m)fMnd}D~8Lc+mYz~ABCz99|1f$l#B`n4yzeZD4NaKS(+b^F1A(mPQx1|&DAG`Q9v z8Kyk|6qJSd_d5RVz`s;%kPLq5x#Wp!H$}Ni3%B zi>d447LNrR!w>_F(q#5f>2|MCS}3uHOZo1-`k>A%WkVr9;d1hG=LZLaX33dCQ@9C7 z$8UKR(KHG&!DO=}M?VAu^E>nq_Nc_~jvfIH$DX zCt3IrnKA*t|H1E%l!N$(AFn9u@tYC+)InJY*Vz@kL$A!m3)OgwTj>M0Rh7Q@cM$*Z zCah9#fj_u?+15uHi`VDy8liF?|M04rV#5nNc%?`=gMWBUMd^p{{_zrnasvPGEx2+J zURf&m5>#1_Zzl2mnerPrD^&0_U)h5PRCwH_d;*6K3LcFpJ0Xr$Ffvw_K^UYA#%N9P ogLAH+_YbZp{GltWJc)nkZYVZ1(P;jaLR8!m=k`CFrODEN19_dHL;wH) delta 438 zcmX^AfMdr2mWC;eJj^Nz3|sjbTLdQ`VB}_0o$P2MJl#%|QF!_>LB<-M#0>e`DH<7y zu~T|fr!Q1w5}wWrlw(Yst|-cw0Maq}<2RA%^I55M z0yd%z)d&q_BYOCA^HWN5QgxH_^GZ_lN{Xi>ZjV-E;$ddGD7igTh3OG<{Su(|tc4&m zoHHDAPCg0**owRV(3S|TU9#(wZ diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle index c1121f24d87bd938fec0e23fd14dcb311a3e83fa..0ca18ec77080d18c75920e90829bdd9c08a7da0d 100644 GIT binary patch literal 290941 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 literal 266876 zcmdRX2b>(mmA)h-t=Gv9aNtBmQIK1LuGfHa6#g?K5YeeGcdQzgN}WRn=8JQ&qjQBlOd6 zr$hBuuipFW)vM6eFP?Gdv?)`k;J^B!N-2{q97?!_1KD!1FzObnjrziEwQN4UgS&J` zWBp4SH#Pd|$2g@@W3WCaT})NWuA9!58}%g~My;C7Cz2(nn#pH}8ueMpz18w=IBVPi z4^ACu)Td{Pqi&<#Rjw7roWe+>K704rWzG#wIbDI900}>{6CQM>QElvL)Mr-8Da<7^ zyDu{*GdD9Y)18?QSBtfB%Jq_@iiP1Uz;%0q_~$dX(;I>GGb(PiM&x%7Roy}*TP#!> z*Mf9`8V*$xPOVx585;G)zHZ=R!6_B-Ce&X16jM>s<%jGU}>PpMutN^R80?nP+TDY)ou|U(lB`*2rwB z&n8F7;n6Axu>x#TE4xX*kjdd}-Yq!DfMqw9i^b|qi5vZUH{A#Zxv5d_9dWBwI7~YE zeDPp%xOT%0W65gSDOB=Kl~`-Memr-cgrba;-AW~y$~%>cTWO5f=Zrd)s#{JH8_viU z((WOo1|dwcQX3x59s(-Yrzgr4_VO?7Z~9{ zEg7%RBM(w0ppNF3#zwHN181sZMCL^qAVMC=5Eu+>?G+3-!)_N#)Dob>`Bitc1eS3t zq}n5A=Olw`NL&9TIaJQ3f#`$v?)|P?N*;8|1)wp?(o?CGO2mf2MZj4^B=)Y5T7#Ne z2AU%l1@4ZHqH>|EU{A~#%$amc*?e&Xav^6x4tlnT=m#AO7&|$fcOc`#pajqwR8n9H zRpYc0RM>^IE^!V53OaApDU_h1R+6=H9^hvcvei;HwSNqC=^ZDtBZXqwMOl`Jm%tz+ zKti}NvrrpFS2bQ=OplTkHw8z@v|9p4xpQj0+q*toERQ->;&Zzo4XPZK_76vLBwmB3r3~+VM`Ue!{48C_4(7gAXY< zSOJpxYytkbg%J>Du)Y8!$Rt6aA*fDJBhgsol6yU<9r#8>9IVgv(_zsLv(t)OYSgDD zAm3`fk_0D`9UjB`c$NZUmca{xscIF3AHk*vuqt4Z>h(3?F{v8dY0~l3aLn}=Lm`*& zx4ar#Aqt!AyA|r(r{x@QQa5Ch+Xw0IzN^vs4%MKM1IGq-fp!fH3_gK402fq4NuC6H zXPip50w<^wsulJZiU&cEx#V6YMQ}2A)@PCPS~lH)6Pib=2)Q@bduJnX&xN!3Bq7ua z;%!MQLh~sVk@?_($+h{J>S#Wh0>2qtnv<$ks>RU+TtxRc3o1vkoUM*EcJ&@pc{$W& zS`6Pc2G4bq9Klz46h6ii9*GJf5I}d^--;%Ed-~0lOBsyG7hJX4^jS0M3Ez2x+sR zEKrN~yJN`bo(kA$$SEf?@Jkwi#(2%oEnCIPdqNNt^^yj*7yMQYoi#!8Mf3gkY$5=- zxgu1adE{gmvWD`)c{e%FaaLYPu2c{!6%>LN3_M=h39c=rxX_d)Yo#=}cxcf`v%XTk zfi|dBQ(#7#p;t!2BZ>o!9;mulaPp7=S{xX*m;h1VizdvbNR6k$lw9yFVCVg)v?U}Z zyObowt55s<{ot<2y-F#ct$I8d_pV_Gll0<5AA|6SUPExeUPhlM(E(oaBLs*Kst^o# zQep{#yoHMElv5cDb!fg=3;ZVry=y$mp!Ynnmus*ql>LK%o&M(3rbNqH_?F zS{7N1Aqr@Z>ZDk!mTDL@_)*~u5*32aAsEm|LI40QI=FpQBsB(Ya?q!H(NKL_qSr_C zr13o{kcisJyUsZ7W#LPof~F6u))rr(7|5o*%Iv9{mSG5DM{GpvYckbpsdDbXK;9WD zJK4ktRFm3JB3m2?Dgg8uj`s=zwFcWT(n1xAe%z9|+Y^JdKoIkQLkBUuns9m&YdD;P zzs3YPa4*A;iCiV^=CcRNiGo`lD3nGAytEf>8E`9S41mV_M@RGhDU<{f zgCp?4IBm@LuX*kX8x0PtdF!FI2_8vjfvXTL)BD%p{cGWV@Hm(lTT!p^1&Oyn zsN-MqqhrsmV9|yCCG0AYAOX1IU#nq*F#iNW=kM4BeTs{=UVQPM9eejaqfuYVo}xV)hz6Ze;MNse z2QR&9>!t9>6<1u8&nAlH5lB84W5+|jo1F=5aE&-$df9Vo3+WkjJi)xgNkAZV9KDG3 zk{*ph{0(j)UmGnzkyp}-)nX~{9&qy*WubDg<1|=bLT}2RhhFE}nrQ`a`-{2D=)55G zAt5xq44okoNMoH`MlW&BE@<=q(bTc`-LKVAfEvxF0S8si4c1FP6*2gV;0l@+9pK zA2WEmpw|hNK^F_LenF@JwS$GA$FYlklkK-7#J=2p($|8@3LT(q85Bjl^L+L^b{jBw zUCAz$-Ro-@N@rY$giuiU9{w)v!$3I8U9DzEUGP_povZk(2aDzX7=-Pd!C!R>DQJz+ zWvyVa-bJpE)2=%a0+ZgTBp9KRfPH=ac$TINoC7y93Jr!Y(xn%bKT85QJ{|3X)(W)O zl)b^ly0nJFaZAN=fKf?073ky?_d`b>+CiW)?W~cYWxReYUKn-uLu)~)h@E^mD#926 z)KI7e*}`x!DUy7le_0@ze^KIZkAH__@GQSm2zArHT_{3#qv~YyK-?PSzQVteDiQ3$QioI?S1;nFR^tE%#yh&Nj0w-6IS6ImMpDU16d z?uH&FyG96s<8^SkFXtR^XoTDnb|nmrWJ_HCaL7sRhoP8C27pd1jlsZDAxWaY!u8;} zu^W>neRXeWW4ylBOVp|WCwb|-<`L@-)GY|=+%m+BIB14GcQMqDyqj_JC1}P9X^6d` zfdhxmE~niC*xM$(A-~Vx}Xtaw??xCXbH=stZ%)H-6YRJG)6;{1p~E8d0;487|3LCM72@pvcS$f z_SU_$JwaOk1`MGwU{EHG17Q7tQ7qIWQ~=W3!cc~&Q4C;7P)V+%oAbj%2yCy176+70 z2CT@C5=2IS5Z;64DLLwru?DEd z5Vh6kIeF-Q54q5=V_2}Kt4eGu{x*;Fp$tq?^Phu!>AS< z6N2F&Um3?^z1uKKiQ}KpBKx<|JEPLUJPS%=0F|nZl$}zhSc2Lyv*Z-g;3(ZXu@G8; zjZxQUv*Oj)`lSo*gUbo}+DRHbLOF1xh^Yb-!{AXC!hRB1tdLQ>fu#BjQtKg(@{@SO ze=z<6fl(O@cdUQMvkMOLQahkoSNeBxIMFR1fRS`MFpHdD=?~#2M~cM}s1?DZ@Z^f% zCbUh^ZRGE*3hwzMz*!jHqrG}ahn`SM;nAsiqDsk4WuaD*@d1joHb6qJ>ZD%vtS?x6D{ zq&4tbVzfwb9ZUklvCze@1m1jUa8uw2jGqTL=$Morf8b~#L&WGH=@g)}q~n7GSl~~{ zcy$lkhTsy+JrHMzV{+s5-r)Lhk<2yF+6wI#^9oCYG^7U6umv@{7>VX}*r_+8opQo$ z|2n!>bePb}mPn7Ce+Wi9p=GP0?pCR;CvkL-^j;yw@q7wNP6&-o5E77KXn&3YE8}7C zTls^|SOs}ahLSMSa7F`5tYkHMxR%e4C4<%+3cG^c3?BFGzL?!ZBKnsXvCBaX1hZB^ zb_f#2yk-HY5Ah;S!NJIcCm^E0@EDA<;~i8rgQ9K%UE5%NIlGLHFfTP;Ulnl+;sO%i zjn|K3DPRz?2H_Q(j{$5thRP3)X5M;J1BXBt2h%2Lrwr{QnLB|&eIVcgaKN*;_O35; z8ce<&1M{lzWTrop$bAK-T;Xs4Ce)^5`-|5%Wj5v>q1QKOw)ja-&z#{Op2@DBHRxYl zn_1@{o}4+wKRi2gj(>RWc)iQ(iDNG3jr%vw&s^Xg)@R`q91@}tT+2KobD^JdedbjE za9d`(e|T|bhktl!AkJln{cD#8NBN?xIZuF=8#V019Ej$HL-9cn``&uxUtG(aX zWbX6}@!IwN(d&Yv*Js|~UwmWcP2OSd3s7rv55OM+^^VLt{WR~|d5nK}SD>}MW~=x)XUfDGCCY5vDg zlljZx-1n$=|7&pcw{id4-vfI7Z{{C96aO!VOLM#=xv6+Oja{hE^F|#DFm8b@PALtu z*)XmGBkxdS7tp(YGflc4nG5ROrLhcMW|P3A!m=BGRY-0+nxz`wo_&wBi` zMR>N@KRX7`P(FgN49}MPXDje*rFT}JA1HwKEN>!u$sLP{j`JTm9?wqj&sO2tYX7Vk z&rbBuPQtS_{@GeM*g2KRunrGbk;9Yma0WR%1rBMM``{?I9{!N)8{l9)IXVrFg26^| zr5~KXf}Sc2 zoIun8p%R&ZtTY0*03Ahd_%TczE?;O961lfbgC%3DuPnGY zvXzvZhgJdxd@Ha>i?V7H$dlU)e@MZ%;MwW^*%@#^Rd*&{Kg+*-`$2cwsUtc#^W8_g-h`GQtrZTIQHF0?wNRF z4|jJj9`EBWT!qKa;x1eb$HDW@h7(%A=LAR3gE>y!MSL7m?2NqrV!*oH4`n8%_dG@gDx_{TH-hv7Jo^CNhIC@_f54S5K|n}QYZL!|rR56Sx9 zc&v}Yi63+2K1NPF89vS@`viaTNjM1<@G1Vzr{N?h)o1u*pXKj-jz9T4pX@<6$$bg` zP$_D)p?WtB<)C8^%i&;7aw<%skl@a{LT8$AmBUP!R>noV+*;fEd~XeK&<=L(_LkuW z3y_tonKO%Vr89KCFS;4VO<_eAu4JT(RQw_M%tiHCP~XY;d*hWbzqK%M1F-mm#)6C3 zC0MTmy+06-Plv0VZ~+xG4%vYqZGsLn!*zeD?0o;}0gz-AZY&5cjKVmqvl%A%LcW`aAic{i?gY!bsabVqMu?U0w^Klf3 zOuEwr53ttLU+)Ufz!E-OaL_GCh(pRkp?zTJ+I5l6i)?t-g><>%c4x4$F`h`zD;q z#Cahy{y%$nv64Ns8%|+KeSH=xmn>qw8R(Nc^BAD=74WCNNK_C@a$b;RHtF87JDY+# zu*{j2h$XlzZCqxx*(YS`_~q1&W3vfEq5+t4YdE`+5xTTC&B zdMB30%(JR;S?!6U-`G#(L#kKhsEat@COZAbBl@U(4@SyuY+_cJR)Uf0+*VLHd;;EVfz##qeJV@*l%Re~q2f z>PtgU(bWu%oztcKu{yy6VX-RJG+fS{2olVsSdE<*)nN9Dt}w@mW{5=SB3hUgStMMC zMV`=nj@M^_K5#)Z&a?Kxx(0~Ya2X9uz2Q3&^=YtJqTWrGT*E36hrUKM9cTI>PQZzG zSg(UK8Zd+ldL6GXO+l*tum&EM3c*}t8sE`?iN(Xv2Z1*@uunnOK;T+dx{wntR}!@7 z30U9_3a10@fd=U@=%C>sE&e092j<>;oYZJ|`f}&lZHW zubES!wT4$bu(y{ygp)<6C|qt;sSSx&d;CRM6*oVOOG@`c(m5FiUg06@1#vanGO{!R zxCU#0varmBP9LVB_>1`$4`|1eEKnkoJ(*)#zm3!FkDr50VdZ&d9lW1|Z#}@Y8=1O= zg$A=As6gLAO(_H^N4n1J|J5u1aM{dokaMK#{4=K9hBrb1h8Kq%>H3$uy2$;A5b#LX z;J?pS0eBJ0k*@5Y=aKu$0PslHr~ckeZqvB$NY|~i=9BYK0Cc45{io3zEWDzz=8>+m z2g7%0BzC0ho)W#Ih#Ze}ZEVn+QmlHUD|tV?#e^Wy<&iGud-R4f%skR{`CsU5CL;|2 zk8};3uz(aR9El$3`od;<$BU(pbX_z`FU;e^s>YG7hi;015= z>A}D{dsZwYa!G;sk**i7rMHCe^+?yc^XO$hgg(+We;d6@V`)(CbICbrHI8%@H`Km6 z?edwVbvn|u@OpAq!B*8>cJOZ~PaHfTx(@)E&1T>A1P zLfw}8nu!)~%Y9v&z)^fk6<~#HrBqUvL`AwNB%!#HnG}RNC9GdB%|Uok4twZKuD(_& zN1f3jhZI4kpQ1|KmivaMI7vP$~yT z8n+3f3a^B51u~QY2eQY8i{X|4A0Pt}aKPFf()-8ML4Buf8(iX0snTJTM;x1gb47!I zskmM(KBa8V;JVZ_!ZjudZQJ0IqIrd@V*4dLNn38X#0p9pShylJM6Ya+Mg(2Frfc3r znTCIx`z2V@1EDXmzO^rF?SpQE(9Bx~m~P~L1q{ml2L52{RquvZk8qthUCM;RbfmDi z)t4plU15A53gc5)hK+B(W?Wnpwt~K*gg4}yvtUrfL9Tc?{TgzDeG+IJN(Ox%hAV(F zvsi|OvIQ8JtW@eVNvul(#~j`VBg3jM9FR*Cpz1-BJA4&hHjLC+yHoS1i^Nxg&-@LAl~SjQj%B1lmwf+7Lsr( zq25g?NF$~o*o3qYWI0m_sS!#!-WF4iZ?=|W?q$V;z13pxb{rq4Rf+QR12OadR_nZ{ z@7S~T3?b7`#LV>Dtuvi*$>n=??Gm9gmtMJJZ~q=4+i%Cr_PedKods_@ zUJM1^A!Ph`%#6R+I^(WgJNE3^+P_)I_djFi`)KQYr|;UgO*HP`V`lpO)|vJUUb%H^ z?DsHkK0)s;jP!f^;3X6oChN!jUW)L_7C5)D^#Tny#uVzut%aI*IX8DDWPU-+ z%pYr=`OF=39+o%6KgG=UC#|#X+C_WwLUFH-neR_q=R0#3>Bb4!rekLNcyno(0?>T$e>^7hEEitoxqIK4@x5GQJz58%N zozMBTF>@x9PtBwFV_BT$_m!2Q+B-#2ta}?Y#(yR>S`g!tX}9L`&AQm1*yI)SZ=y80 z_rp1KF7BZ}AEG}Wra$+QAFp#kGlqR&@odG!Pq260t}26a-_+}COk*l zVQflsq&>vuEl1iYY-7j>N)8=+j(BJEvN_@^(edSo_d-{cBmM-vLylB&tg$&#?Xdpj zNF_iz=Ljc}UUY&ItxK(enytZ*iZ>xb`n9xgI(G?CFGb#&jChy|Gdq}|ib_WMs8TnY#{S=jLYj36aV&zq z+6&WCGa>U@IoqI}{yFqLWYUAqY@s}>bMnzFzm0me=nmHvilK;KC5X8%!;i9){tdVR zeS10%!nEXd;k^z$_PALhgU&h|k02u-T`)93cGJ5SW*$RJf?f{qbHS(<+0)P8rXx3f z=9DQ;eHOf}?(JqZ9R@BOx|h^oefmhgi0=;0gw2~^q63b)J%HfCEc%ilyo?NcSIwbS zxmd{KCJ%F9l!eIyY=(J9x3P0(W^sMX0Pc)A;O&b!5G+(3z!|^+Iy5uDEmR`Q45+^U z%hrNI#o=w|8tB{S6{}km=^;z0ax1|A{y}S z*)13#BYT?&6*Kp15RYoEpD4g$fa<9L;#8``DD}ZCTZA&K^*48KZO9vKs|caOmF?18 zecl?F)erLY+EJ#)E8?s1^5$yH{fTK&_FlQaqB-ZigQII3eS?u}7GDm| zEHuOK%^4`}&{-{5!8I7Q@Dpz-=ks6QaC0-MFu4kfSHnLC@y{6kxe@-jxmoac=k(lc z_!-R2fxqLqx#aIW^0yoQ!h3e}$;krv3uC*v9=zBEj_(Xz$H(G9TtGvs$}phVG+xBX zPzY*cbB~wng}f=mB}9seuTu-4g9V$!_QI?OZk8d|t5-p$ZShF;o;AQF$hSYxIM|Df zfV0Z=N?XM-eeWRdt;@0&0~-? zWz4Ql#gQgc#2c1>WlM7Si974I<@V{v6aZU;n{b$A=Y!nP=sAI!LSH#cr%U9o7s z?}x0EaVBZkSB8|3fK_3zC?VY^4oy7{AZE46EAj*IAhqdZq{t@CwysT2ingg=9Jz-6 z&|Dl%+dgWH?CFYm%r**4Ah#Lonp)N`k?dkFG?z%z!si?A5ZuEqEn$=3PCX&t&Y?BF-fkHF#?)V0Nr@2lw zoz1DO49pcuGWEZji=}Dmw-_T!9_Nh&A~KwqEKcBfHLSe~H9+46;bK<$Zy2jcx6=2u zU*zWZJs9IGUy%H%69x$;%1E-l+S=nF++?`8f!+kLa$a<=tNK!xh?saxh$IYzuy?SH~+7U6{Bl@ewaaB6si9Ihq*AC_WzkNa>wnzm{S_OSwde?;%CZM&W>IAmjOh3 z0?JkD${!R&vi)LnQ8aD8&=|Snw(sF=PyD_(F?~sV%WpSUif+9>UTt}=7?RyDG8aVC z?iUy%N7&sW_-FkG8dO?9bg=(08|k+f;|(F;d{KPby};Ney0lvoq8$}qqT86c0Gf0= zK#-4y-owJcd_t1+_VJKjVfCa=G+ zh*>>oW%+R7J0MTYzQQ++wW3>l`I&D;IV8(}&0G>q%Rg+4+;Pj3Xo2{S~M7ckhi=aul-xK7cAu?FPX@KklT)=JZ zdH=CyZtT{g7a-cxt>EXLlqHdjdV;wunnpd=7+LZo%L&BfMG4D!opB!^5(uyxgo+t1 z>@rr3Ze`}@pQ8#Rap0fK#nI%zrN+n|=RgmyHuCXz!TLAFxBd;rO3}4GKdK-XL$dop zb3ruiUNuJUxZRiX3ZuJ!r?cYTB=3!H`@4)4qicJ9-dSA~$^P#!7e>?mZ!<=Yu)jqB z$YMwuR#-rEFov9c1+ICJBFLY`r`}JDZK6v(eh!L>FVXEs<^pKa?fV4zXow$|2IWsg z#Sh){V#g120HQqsB=1GkMUl+fWiE`SS*IH#OI~Cuftb7qasgAC96Ou~!o-Xm&oWkt zZYAbl?+zD2via%eVrbfYlQD9~ZO+ws*q|q=nu{8VZ~3&bVstI9uJe3RB>Ow&!f4w6 zI%DLH+kY{uE-)dqKM9+Ki~H_2;#>cAW3}j7pI@=2Du`tJTg^q$wEZo{$Pu=;2>Dpl zNP`Irhz>@Lb9Y^_dz<$e5TU#JaD3`LWNZ~(>hU9wd;uiNJ!me1CgmO=$dQrb7L5=ENlLMifPnr>mYa7e&*izcWUb+{lx*5X_BGW<9;!$Q=46 z{5DwDAb63D-LV7Let>9CmxX_Uij!Y*BBz>5ph>t>2y&zonZ%d*moNozFT3;87tf7v z%B#&4sp&-c=?i5^B%|&#mqpX4&ooAsyvQJdn7lTGx4!ya{a1iQF?*mdGuDf4IKVH4 z=?##C?Rex_{jcwiAWvdEJLAQliE?949Q>yC`V2Qlz- zlX7=j-jW+&Oun#<5{7_?^JewCe5gt$M4u zHZ`M8-nB%PM{Z(nF_%Zvx`&OCCD(GZEd+Bdlw(gX*Rq&5pQ>B?5a=al#QUJJYIVH} zKfSLih~!`%Fc(FWf}bPEkq%}OJGLh%G!fCY{bPLNK4q>^O((-|lHI&Wl9_*JE|jL3 zpEO36Jk2i&#N@R&NvXqCDP?j_!he?r5o4cJiuk5q=~-3qNFR8C@3g@2P|f z;aQh;b3b4%h9>piN01|<(8&urR)&-i(aZgDe4GBjT$!2yC_j!GQ5@N=e9v4QP1}Ck z7+G>F->`*XZiO=J>E%|s_LUv@@VNMC)8##}W8EbH(VkeB-xJLjUUDNn=GkjfZ9YMc zbR(14nO)|UK9L-C_Pb)FQ0k_S11 zKulgcvLw)1wU|u12ePT~hrS9RQOp6V{lY}wLCxZ5iW;p_dCty(6sxjjFCHT_ikTb!_p^Kz7*f&Uo=*T zuF3fq2e~51*8aS?2%6UZj4^V@t=;3Rs#JE<*;M$WI{zKt;{Ro=6kUr8y*?UaCcI+E zR{u|PF*L3I8)M{-TYaT(^@?-AO{Ow#YJaJiErhLq(xTXn`)Yt_PmnJ34?XLLiX*e& zcyn5~3IDF_66b)E%{xPRH<_lJXIDZ!jBDc4@Y%-J z(RD(6j478yX5dxkl4vq;k1?{uz!qO;oN(JOVj3GQreRmjkmV1@xBSh=5lD-{YA#e9k+Y;P%WEJCyC8NCciJf$?r8*h_1=`7?Uf4Z0&o@MbNbN-Nwir zxAuJ8o7{KqA#*<--`tNGYed)F{66b^8Dx9^&|C&hdp~N7+;Mv^D!U`uO4Th#*nGj_ z*kR>7fM`!x$$Ry1Ib^%fHkU)w?lX;%J8t)dfxc9Z{rvb=KgU=nx;34D?^7&=Z1XeC zrO>qb7GvZHn_F}MSRbN36YG`*1nWawVhh2fIMo({NpT8+aB|7%Q>NV1=*v0qdu=0^ zqCYPE8KFN}^5dx!rKk<%zIx1*DUq`f}f*8wbCeU4K|Wr}6;HHpj?uk>uD{AIR$d};=0?m8$`?j-~wQi~Hh zmqoNVXK!r?+)pj7_Ohc8vOR+f2~AhGy3vC64UH|DUZ=8MnVcmHOofrB0}a zxF1}S%5phEdgT=RZ;aLLk@o?}i`L#>87oQC+0^;h@~OA;nUnCwCS{ZThq*MG4e!sI zTXI6ZRC7z}%(yRG5<7lg3=k6$KTEAhJ;A;ArZ%jwm_WAjLUYkHt=w&l>{STnN9PcT z$eL}@^f#wN>k0VnAW_T-_=}A7qFc*P(;!2zvOuQ71?GZjQsG=<A(bxzW?UYzRuyFM!#yuvlAWRC{$&DpNy9OU*4y9q* zp`0D6Ro%2|0OFjbrm?avpVvkXKyV_-joXt803mMaPdK7?dW=evrV}X6j36_`^|;aB*%M=kt4`q z(Ymt$fjT7%2u9J}q#%<=(VmK%cT?4*Z?w>wl;40jF`4-*W7Fs|v%fhrLnV_#j{h*1 zOp}g3Ge(x^NQq#Gs%Z73Wu`RL<1aMif-2a z=+b6IRK=I8`ypHXv#x24Ktxve=vmcC@0z~ZSmRP%e}l2UbdAPu_vekAOCh#wzt@_} zqglD{v^8s|dZAy6Z{07NYg4lqx~mW#BYp|BM4#9AhR}|Iv)!N7T&*#6lC&f zsS|7_mdB>#27oY&&vhxuZw2W!K)NAjpSe()bX;eQEYYzA5hgwgQ7+TFCcf#PZLAAj z)AQ@%J<~@n&%4T83Qb$@A;=biB7xMbfnH z3yhJanmk4zCeNj}UY2(+NE9>1xW`y8y0x0$zcWmNCd={eHWx^f0`D>dyv<_QZ1h zb_F5JE0^ERG?zrv=*Ji%ciiYLmfxKd-|%M|D@C`;D_*$pJy_(jyDjF@Xc~W`F>=R^ zuet1QI6etd#>&wpfnp7&PlA@q?VfKgl_nXkHAapggT=4_8(E;83=4?PjV!d7$9_wE zD!$R!G`dt&_@kC{*RL~|Mw5cCHb#~xNJkSa_`@hjCrm6L7zOFvwFLx|g1)kA0l}nr zVVrfR@aFZ`Cil(jm26^u)P)74sfzN|>t7q!Cv|1O(zSZ^`WLo@WYcdyClD5+CKEsK zwRC&lfv^tG3Vyl(9i1_N!neh$1#ayS#;W63J{JM&!hUN+4r1hv;teGTch_`LWR zV+HB*f`8+^IWI`jQwQ z|C_mNn!NakF>(YiEP4s7qd@~03kcTHm_iB?*_us!Bs*sp=^$)#D&n?Ge*!^bwp@QO zHi|A4`9WWwid;E7+p?JT_vVsl67RRvUQt`-L@x=P@R)T8Qvess-Q2+4k?7_(y~oBj z=?MVQo*v05ieN-pBFVVNn#-hV+~vl|l2=(mAR_B?TUnqENq2!nF)Q{z8S6#2V)L6S z$Q3&g8HZkKE|De&E;dH)I0qJS^+pwZ-VmPw2aUC&%K(0Huz~>*5ogt09!>jSZ;ae= z`!D9~uM9Kqicf%d7^_8>0Q_1G1p%UB%eR>eq{)Cc8zV!y0Ln6D?R_N zg5UPYoQRAp65QdXQQ7){6LgJY~5T|V%;{6+I2A|}1gTr5pCTw{#f zaW)()vq2e}-X5P0w;F3lmk#`^ZP9dyicoJcmrIimhmDaV_+SxUvIvz1C>9VMj8GTv zbw@_wedWkm{D z$WNJTRC5MjHA~yPXp*^qXD*zkxt}yfmORfd3B=@$kSckhj#W=QK6d|Q6+ld0|3$@% z$Y}LAbI~+evBDU+BWk=8|c0qHK&D!3m3ylSQpGV6lJ*N39kRObWWR z)dGS^@l)FcwkQQGQU3bmE>Y$_4h5gOfiI;hS1A8K+msK2v!w-NX-y6_-V6FY; zT00qO(+QuvT*@iHuZ$sQ^U?Umz0X{cn$AX8ncc*=e%WM4bFaBOciTcR zM?7BAll{Co!GP?~K)|>uj1vIN?%B4(Ca8xiq=>OM)C3zD}OQ zSs7A-Uok^Y=eSj|jl2RN%z}PhBR7q3BFZN_o~7pUX&QTxF|y=%7T7{C$3rPM0glH4 zf=NO9Z59yi?^B<^y{b-|u8ixXmHp{!!5n5jPnXN9HNrCBuy56pBk_8 zJ?a&r4*VJ!if_AD$2RXAfM`#AE36NXHm_ea+1YfNi>7Jj>Bh*CvzclO!JG{x+tbV0 zEaWHkC3kZPC?%%5*>0>?U3VjF*~9ZuDw5=IE;1KNlZh7)6>u+*=aiT%RKPA6wBoTjNqjFBa$leUFmPKOe10-TNo1e1dH-7Fy5 z-=AJB^{0nw**r{;s%EI~1%sG5JY8?q8`-1w#F43ck1ab`pZabB5$TSi`_vQekGe@Q zlVlVjViCjCAbpF#`~(dM4Eo*-;I$azw>1RF?o$q zPud-JYWZr?Q(cGv(|S#7okW2DGggW&0r(wt{WT@jfxt(bgi^^Q_`A7Onk4v(F>(Y6 zEPOU|`_#QyK(ycO_eyTR?2h2q%g0oH|7>Fh>eA=LNWbsPBh%&#kjAVJ=NXqd{>=p9 zXmI?CoC8ia?+oQ#>ijFA%72Zq>ZQv6Y-4@tT2C=?=bJ4NE|+Y_tIXxntp0n9k)`T? zC4rc{Hek_+Tcr$0!Z$I8vm+rM90qyJLNAF2HydkZB6tukm&}8gn#-lhgBKYicbo?c zX$5l2%2@Ee_$;{BSSPwHP=o@3HxNrDbKo9xsWdrow=r@A2Q1og77EY?#{#1Lp+M75 z@jhuxI9;|VKE+GpN0}VIv^61X@Sh+M77hNyPhd1%i9G+r*lvCVO` zp{2L7?Pi%vqgkT$!3fi3;BxGHvu2;%0NHG)+8Uj4b)? z(`+G_@1{hH<-4a5DIzI3@lK}I5{>IYpqSxg!C14pen!~RjSecwixOm4v)^1GO&(^b z`8q#Os=qkn4e<^9T62ABdK=-r<0u11JDfYs1=BS2tBjE)hx1BX2E|78oooC+n_)61zeTkCb!NwNLP=>XB5o>H&;I^UjPZ&UTs z(oN>VX!0*XkdFe_qPNP+iEr5J%yp^hT@bCoRwb1;-< zPcH}4e0|sJK`Ajqm)98URX23uKVj_+#)Q{2$?;3WTpUdf-cFE@0w<%pvg?8P#{HbR zHZ|Rh;w6Q!aibm0r_IIEH1a2mktIj-QCkS+Xeia5UXG^e%bEWRI*I9L{%WjNT|c83 z^bNhOC%c(Hn@gj~z&{e?qrlB*zLI&$n%JgY3lQyzQWb-~A=5@XnG?;W(lqfZV`Rz6 z9A^u`oD3z})62=s-FLt(SN4xxQLKnxPIx}(Bc_A7)>x&w4n{Es!wcYd&Pln2)L1BZ zy(zwVZ!lM>X7H+bk-J&ZWM6a8Tr^E z#ovsPBS>KpU$PLDhAI{i>=lR>{oo02yjs1ScR_qUp4&D)Dkg|qzms>Cxj336Jlz;s zBH?74zsXDax%ieJF;<9f!=xBdZ~8KR+FTM%qdUgP9XI--RH2Y`Dy34y+xV}EZ~2C? zR&*_|sPp0C$PLf!=Hh6Y|5jtkHS z?u;A<5bf!VDAuW}3nf!wg}G3gR9I?^96<$(P6X?RJV9Oswt!&$5cwY?tmSOWnOZd)@d39iP{eEmQ0*JBY^^@v zHf&2r_F8$0Ktw8WLWkd*e!%T;yY$xL18z6R*WpWTAy`d#5jDevf545~9FI^ok%7-j z!KbBM)h0>rYnurao8yV%$WHv-wn}B(ekWCG)Jv}u%I)UgZtHex)gnw79LT2J(2T(& z#!B~^6t+3uSBzDq>2m7)GAPkt39dx4@xEj(k!B10MPp>C1^zsNh-@Avd<=RE-(9GUdZrI=i`I8aY}>B` zh=~ZkrBI_;z2{0K8~-G8i8PJB+8DXx#-E21LCSi6Ream;G1kWf)O%JS+4NVM3#4iK zD~ypNOmERwVci`XOjtm)Kgi?0C`27~syI4YET}@fTa1~fOB=-(g?M3P!W_0WD+};$ zCJ>X;d1)Ttkv2YG92s%Tq4@3t#u}H}`1cuWO4n%oXghDM1h(+BII`j1Z7z;xO@F5` zvQ*Rml|W2ha5tyoy6L2o&xg$Z1CS$TX!kv1ZRnbvA7>ZL?iWTj`nS!6(KPxujFBUZ zZsD7md#A3%0;2uyz3KLbJ$8@dKxDS7qisQhtrDKxG9m@#t4 ztsOnywsd{$R(ugan8mod_Lf`mX2Wa?%;nIu_&j6e2#Z^EqF6tSb_6US!u>D{2qp!c z6}Nz3Qas;wwgRPqwGH32TH9bTc|~UB=U!Gk*jp|3ZqHU-;XTIZ8&@4Q@3A?t)7^we{BoVc2)Q68!Kf~PQLf5irc&0sf1L%_*ByfRNah9KDoYV zO_k={U#qzNDU!3K`h}3aS@h~bFx7Y4LbP4=Gqldc=g+p8?Vl|IEJ>??^;TQ6Gv?evAUYnfez09yYZ|b=KfeCn zYYV|Re-|~uoUkbX281G7NYH{R|Tx+w@u&C0qZ%o8e;rD(-xxbN{$FvlWo&; z(}4APwt8Z!evU0fSk)HMCJR_;@M8hNq&RHr6TN`-JChr*&b;)>9eext2odXRCWu8? zlvWXI!`AMMI=2&ujz_Hbw@YhHBi0Yc*WU+iAsFf3PfalS5$mIEQ@U=%`W;*CF#>%2wiy85(<30)=UtQWc- z581~IU02#dv|aV8&~;ne^c@|#UTCW!M)dP-A=<9wh|tw-o1UA7u0ytZVyaHsLWEUq z5qGlCl}14p5KM|&4V`1)6TQ&&yOSHb&bngj;KeZBxt$`zcXZ6U z!&XC#-`i{<+OFh?n00^K^xQON&DiRRsoJ%L2&>v6;AAl?4Sp;jm=q0LpXkM`-<#Z+ zwQJXoJ$ttHZx%w@Y*0*w30wWcBKXX5McleQ3y^&g`q znEa6SiMAR(p)VkJ&=B-2f3G>#W4YgshT-Xdbf8fNW#NP19^4+OFyrA?t>= zsaz{$?X%SzWBEE;h_rPt@F(qGS3(kd+2M77$E|*V{HfUda0BdT)nD3bj}iC@TZpzBAR=C!KQJ-z zs^lP=$E$N8+nDj{EL(`StGY$Jx~Xj{*NRsYwt8bM-(U;TcGaum)qQQ#cXYh^Oj`{x zB@fy{v|Y&&@#?|0>A7jVTD8>^Q}y+>5MfnY1e+{grNNH{1e4;ew#|AAtwiIA2dJloPLz{e8(6 zg7N>0)C7|sygt=7rRxT-zq8dIBk+^95N$U=MDV&~}+OFh?;Ps}q>A7j} zdV{T=n5qxjLWEUq5qYxUl?Fc+5KM}9*)~63@cM(v4PIwleaYpQileRfO%RE&B&`D0 zdu`3mm~#(-=y<^Tt#)axX~6pR`1*Uq7J_m9E7Sy&AF%$pZA#Y-SpR6NJx1WCY$4ii zfQW$g*i91?uu2Z1dBD0HvW*$AF0qAZyQ*6RtQWLRF=eFs&X~6noTRkyV-((9BR<%X6$pTgy{8&IRDeksy ze!PJ7hm#wyF1dWPly^sAnANFf;j3Ji*0O1F6SYrF5T~$Ut>V{@+OmKV={^E6nei*` zBMO^hi^J64ZuqyC%YJ!Q5U+3&AJB7+{u{bYyGEK5n*f3?*VBkP}SA=<9&nY)Tck{#qs*)$Dcj4EZFgr=fCqSMtqts(< zA=<9wS-|LQAzK&`UMJYzHZ{*iKGO^(MPFpACC26pY$4jN=&oIEwH)5wdAMzQp0#Gw z%TH2s%2r2A&Cj=m2&>s5&S9YvZD%bYm=yQgdOt5z`cbn`X+poBPIhKrdv!LS9?rto z>32D!Lr!mBrGzn4f7Kl=70a->a1|D_U%PbbU|7X@Y!~0xxR2s3i9oT57zqmO7;0uwmM^K|F|uLw%V;f-w^rX zji0qm=kwNNiU<3v#r_n2>_gJ`Pi&RN^!+0O(WHm)rx{bGtba-4rbb`xS<`XrpxjmP zli8Bn4?nrT!rfdFj_|%i@2BXGOMgb_PnP~ng)gS$h^v|gN7pv`2J7>(g-R8^%1XLi zjh8nD>vONKWmEf;aJ5{83vO;EO`Gf50#DC|KW=UoT-rG;HyeKH3odo5RR|n<_u><7 zx{;d$m&bE+;qT$xJaXI(e|JvF%_k=d;P17K`kb>j(!xxp!?D+B3bsxnY1*2*b&AX`YghZ5yVwUN6H%9r~qRc6~& zwx~3gq2eTi?hh(%A-nE{kfEz?VI*5{iIRJ`v|js+i5IZT^b?}I{*OidACG@l;h$do za}xaV%rTXkqkHS_%X`@#C6a3-H>cYIc5B7y%%fnocSoDrZix z&v}L3sk+Xnz|c)7@fQ4Z2L3q<{)k*%wl$s3BIBTmyu5(@H_CexEu9Ofo|e9#($Ylt zH5Xl8NM~W+{$8h$?ybrnsn`bcn0Uz$T9Fk z9t3lP=i5TCW`|aOix`lFk<=MmKrkt2%wYlHg^@pQ7Dh&fGS+SCyvup#e{%yH8d~FT zm>^PNfm(%&2W_p-2vj8yP1@0ku9QnW&0)J2v`#|6{knE(u)Y+kC26xE^Zua0kmHkA z$Jgr}wh*jJ+(u0^(FT~e$AvhhOoofap`lNjN+ zXzi!f$pV5&alLIpJWu%8CQJ zl*a_OxA^pliAE%))n~1#c=<^cZy{tFGX&|jg+=W|~t!(1hmKg(8MOyzrR zA=<9;wh(Ps_>8Nh z#(m`(6BD{huAn}14GkqE6)%G%u`4MV>_B1Ab=ZzoIxT9^l zZq;MF%~o5CuK!{S(RPI|+g5}17`;yK5d2pAvxQzV0Vwod?r)pwm#@KW)BR4rpM5{g zUTSVWY^yYADBPqq+kH`lz2-AZ<(&|4^0L&Ghr&zzWWSPEw9-D}b$(|($%t+ zz?)+W!MskFEd=v@)bz1@-!CY8Cc3$sd+F}0diT~!@H$9U@KG1GjSKVEjFf8q6)#Vz z!8_kp-OOQ~V++BI-X?X=8FUX-p+#^@;+*wR+q6A*O#!m(hXD`BQc`x(R#Qyb&$ERH zE8C)auo_0&C<_QC#g}Ydycb>kd~&0UIlIejLwTngP-e2N#m+IyH@fG`FTL@MoK4=TU>LoRA zta^ES94Tr;xhE#KUd|>{^!xCg6MjnNDJaE6yncbDX;m$MXR9$*EuSP1k=1hIUsaud zh3lkyFLn>O`C`c}3%Xl)cAIopU$7<*+4jRSE-zcDCU!&Kabr+h2v!rj2*iXtLs&Cf zpzG<1Wzh$2X`9M%29V2CQusz&Z87rp+d{Nm;cIu7vxQW)1n-scs_#7+UeM0MhBolt zU&s*8YMUX}tSR}z!280?B>khDD3W>h+Uk~>XSXdx+s)HMd^c|y!4HkK%@&LN*S47% z}}K!^*i^YWa*Hv@?G5r|2Q z5~4=uzt%3j)m5YOOotE0*Wp995Dy1tc#xVQYHY}Q7|Jo?~e%Q}Il}nE7 zBr*qgYui>Uq(d5Cc8(YoYuDfVAUo;;76Swy+_r|$bT=^I8^N6fR~pZsFvBf0muGQh zf3}pYxG8*HKUt`a4ngPPu;i(_3G(E4s^;cg&J>UscAaXi>?SKEHzm}ji{jh%0&`u? zf)La#!=?v~!}Xc4i$blOZRDh;q`pzZwqnsFL!WCdoTj1AGDh}%na z#xY{VtpXeJ*=nCSH8Tn_@xuqLYpPc)R@rmLn$fN7{W^pQN+$d35p&5j*^o9y?l>Ek za%{*uLvCL74zG_-hSwM?Mwbi;9WrnQlYB$NTr^EK+-{8AaW*XG*Z@29IcbOmgqGsL z_*{6vSS`9-I8BEOL9rwze9l}jO(uNW7`fw2=;4?^S_pB#?vL?#@RYGqba`;94iCIS zNi6uCxmcPkc+wa-f(2|SL%Uu6QqX&&p{WG~i&*B6f<#6v6W=G9jbz-5af;xK`p=CW zrJM>7?dg)7)Rcs@FcSGrF&9UZd}|5v(akvq-<5@iryn1F3Mq0c5p86S#IgAW)hMVAK6qYSZ75)0mEE|w+> z-ffH=!2*jAfkhd#xv_xgV3g5?P6<96A;cKJj!(f~7+XY_g1t>W5f()v-p|d2(Inna z3G&epVJz?rnMme~PC7KSwdB0mO-m0zv?pjhxs^d_kz}*ZHy26MtaFW#C4VxDKulhA zG2gep!u(r7mY9*nGmJH&Tc6jpG(VO|w*GnM5@}lhY-8k(TYsK!{em+pP8t^C+kU^X zJ|@ogq&$*C&zMW3X?xcgIl}f9VE~IHXtQDg(ZNV!?j>}lZEtv@?XLI?e21}BbQ!od z();kmkqG!UbAdDo_-2B9G(;3jI1MCH8K+PPfBNa`@h$s^xgs^kEuv@4l;x64{1tP_ zG)?>^V`Rz4e33v*UUadX*BNXXkSb^C=OXw4jDLVoF~f|%8LLLOqDRlDM-@$C#Q&HJ zr^$%_Hb(9^BYJqX!Rt?Dan5YR`LVgs2N3P)aYT<|$c2(vu+Cg8O%|MFjNEY+EaeqO zMz)jbtoT;Ov*R=2Dr3dydWGnjbalZbHtaDMO_L2*8Y4%r!6J-gkthvEEFd}?ewQRvd3{E4Wz;}h`>`%!aEYKEcF z9!6a-$;kJai>7JhdySDL4|5NJn7lZ20aKbBbNmv7i5Y)BVXP9}3f>pl(F_+!V!-3( zLTNJKF=OP8Gl264uo5|`nn7E7L2Mo@0*Lm+o;v=3FPOxJ1?Hk@vSFSva>v=Qm{lH_ z#@e5(j+MmW&u#I!aG|kUbbUhf+C5dVBqp41E|?}0&M`)gV1h;9$YM_#gjhgyGWLXz zchk?&3p1)W#;4&SW1HyGFgo^Rg^|ctGZ#mbd}V@sG{l~ZgYqYm&QL0e-^3Km`p)=f z{a156YDS*X-bGa`$-r+h7fjQ@Z!|`hyvyqd#N@@D%Q%%~E6Gy1SS_ZCA{o8`GQ|u( zziO-*-8w!H8Gc5TOya}8o6Dxjhc6o=NASU-sbH-QbvqUi;nv0if=NMNinM@WQnc$; z)sqyj8`6!o%VVn7RhK-&v_9yPc}%fqYVUN@|vgl zxJ1S$LWl=xkR@ibXVi1dA4(1qHO(v4GGH3M^iBAR8yFQ^W*SzXx1V z?!WS&F%xxZ#4RN4Pt#@1m3}5ozrP!dXCk&I!UMKeW|6_?Y$4iiB30Oyac*$RX|;WR z-8TDh8&)v;c%nob=NGn`WyblrEkxUmvtSq5ccm9M2XhOdH$l2DG;O(cYsx}DfDZDN z>ckw#JZ7}qWeX8jyM^at&XaDSWC6jXc(?6lHz);ckC~Xzki-E=Wigrv8o3Jpg z_PyF>Yk5{@FC-9?)72tPnerRz>2@hi{`d!Lj-2?~yUrGZk^UNLfT$g>Y$FCWIbYE> zJx^bgO>dGz#+TVDh%xjfwh(RCF?rJz-h}GS7I51m+_p&=wtjEhw7qzZ7kI&!_kygY zw&gBc%`xS_!xp0L%7+bK%P#!}MCdbK54TP2>hA|LkMfYMwwS^nw1sH9!Wa4<;Hd0( z^KLc7_20Km={;-wk8K1QOHBW*t=5?0e{Bm9R=ho~S=*v9};mFRZxkvElvfNkkXI1WN__H+kb^JL!_YM5%$$b-lrslqd zKV7+R)1U9qpYPJ2@6n$}>CgA+&kyL&5AkPa?nn4DJ@;e$IVSfQ{>;eXcc$SYeqRru z@$+bK4?ocY_i&T{ozut`>2QWyz3p5_BEp?BYxVh9B-mMxZmNeRqL+r@Lx5zTJ#uLw zq^g!(HwhaX=WDPGE+{!{Tsj@L8gxkcuLX5faO1%m{yB($#_-RL@W&;BV~VaVaA`LF zITrsMkAGI-pI-cP68_nQf41PCGw{z@@W-vy7Y=9hZY5bQCd)4Q%qfuqvwx*$hucW@ zc!uVcRSgY-Nwjrx~yJBvTpqNNCwD zB!|Y5BsI`+iE!12L7pa^0&EBAKLe_$4b{7fLpcaIkf6DLMXFD!)o0_oLnAJ}nT?w0 z@=p0Avr^eA6%|r=55jZaMN$X4{WD?=% z@pyeU)5f)pdN)zfc2B2`Ye7Fb7p%ysW(F|CJw(btwUwI&*1;m7TZ77t_2}A0UtfKC z$;p<1Y;>R2^Lm4Ew?=(oc<ua|U4(@iUsmzW-s+fk)^7fI> zLP2=QaMm~KD+AC(=m8HgcLNl&e%f%cd=Q3@`quaMMLy9Bn}KACX+S+OGEKq*63|cC zo_8vh;OkkJ;U^2!;vUZdOV0?H18Rw-hnUc7n_(;EK2?-^mkUi)suCgk>L_^cF+ut> zg0&}tz6I(1?3^n7)_@C&U*94VZcPg%3^niORB;q`C~`yQRc03$`IJ_9d7whUHkQ#T z80Eu_H!Jm>Ado^Xn`$NS!e+%exm9r}rjXBS9Ce|42uE0b2}5OR1&sb-Zns+A+AMu9 zZ(^=)u@vIIu)Jy42OETnN@vfq8o+H#&2A?G072{xFcIx-qNyP?M}7{OK?u<6fnsDw zMh)N-RQgT$00QhO72H@2s;BA^LB+?ZQY7f(0^}+z4A}uE!u*RxB$8A>IGJt@78Z(P z@@D6@x(_n-_u%5~-RGCRH6-Uu8KnQXAmu6ElIzx(A=Qy`1X~{QavqOa;&_GH(f5do z!$5+6`Xq11ldwPt2qmDc&~gdG+f{@|I+5<3(G+Nz3`F*);BijE;7NtT8&Ls7VlE!2 zmwO8>LODyBJX~TyL8tmJZ}TE?i3PrM^`1+@-v8#sgOBH=Pa&^( z=m2v}VJ?_K-j=3f)_7HEf|UuE=VA} zBE^?`outa(83B|F0fPhyg&MIJuJ8lFGXkhmQVu~-!untxe`^(R4nN2l9E|@S0Iz`F zU03Yh244diDi)w-D#Kr{CUJ=c;rf(;B$t{w98NawzA|)Ny^92k@Il@v(YVNgr4=MQ zRT(6*#DYP%I?hr=goCFj!$I~KD>2uEu-ge$;I~c@__0SABG=Bb+lmnHWL1dAo?w8S zpJ2BWiePTd9(M$UtiZ^5lOD(l=6l8Tf@wA=Nh3bML}Wd(gqTE0os(G_TA-*N2Ul|G z5kcBbN+LXh<$vj=2YZ7qv9b! z>Mcq#DxMPP$aO{)Nh1ikQR(Lt&odoyv{$54l9Dn>B)#HUmIp_BMLGpB2UNsVJj$}* z#yS+~RODQ{4@Ss}Whbvao)mgOFtU0)Df9#rm#e6uG)iI~5AQeNC;uWEeXeieB@|>^ zpB#1eyQG8RmPNDqxTAg-gKJg2dkOw&0rwOfMu$&gW>cYo2?>>JRRh%ESpjpMd%(%p zq@fN8k#iY7qW`3T*E@`#Na3R}35pAud?EY0{{#rY7gUh!#r0_bxX0HAB&} z2q6P=7>z>r5+018gR^-jf)-*yrznyCG;@`a!uv_19n_go4ysk28(N8%V8}u_PxqaW zSsA%eZnbC$A6Lk2Kyq&CrTFr5q5oBl&(+xFw3WVER<+PREZk(OBt9a#hv4 zm{7t9I=MhO*3|TQ!5eYyLeqyL#-Gkrjz2X;Vlm?Y^Sw=

xBRtr#e6io){cIv7o# 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 D1VbTg diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 508d7a2..534099f 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -255,6 +255,7 @@

All modules for which code is available

  • _abc
  • pyhazards.datasets.base
  • +
  • pyhazards.datasets.graph
  • pyhazards.datasets.registry
  • pyhazards.engine.distributed
  • pyhazards.engine.inference
  • diff --git a/docs/api/pyhazards.datasets.html b/docs/api/pyhazards.datasets.html index 1fd913d..264b8d8 100644 --- a/docs/api/pyhazards.datasets.html +++ b/docs/api/pyhazards.datasets.html @@ -460,14 +460,206 @@

    Submodules -

    pyhazards.datasets.transforms package¶

    +
    +

    pyhazards.datasets.transforms package¶

    +

    Reusable transforms for preprocessing hazard datasets. +Currently placeholders; implement normalization, index computation, temporal windowing, etc.

    -
    -

    pyhazards.datasets.hazards package¶

    +
    +

    pyhazards.datasets.hazards package¶

    +

    Namespace for hazard-specific dataset loaders (earthquake, wildfire, flood, hurricane, landslide, etc.). +Populate with concrete Dataset subclasses and register them in pyhazards.datasets.registry.

    -
    -

    Module contents¶

    +
    +

    Module contents¶

    +
    +
    +class pyhazards.datasets.DataBundle(splits, feature_spec, label_spec, metadata=<factory>)[source]¶
    +

    Bases: object

    +

    Bundle of train/val/test splits plus metadata. +Keeps feature/label specs to make model construction easy.

    +
    +
    +feature_spec: FeatureSpec¶
    +
    + +
    +
    +get_split(name)[source]¶
    +
    +
    Return type:
    +

    DataSplit

    +
    +
    +
    + +
    +
    +label_spec: LabelSpec¶
    +
    + +
    +
    +metadata: Dict[str, Any]¶
    +
    + +
    +
    +splits: Dict[str, DataSplit]¶
    +
    + +
    + +
    +
    +class pyhazards.datasets.DataSplit(inputs, targets, metadata=<factory>)[source]¶
    +

    Bases: object

    +

    Container for a single split.

    +
    +
    +inputs: Any¶
    +
    + +
    +
    +metadata: Dict[str, Any]¶
    +
    + +
    +
    +targets: Any¶
    +
    + +
    + +
    +
    +class pyhazards.datasets.Dataset(cache_dir=None)[source]¶
    +

    Bases: object

    +

    Base class for hazard datasets. +Subclasses should load data and return a DataBundle with splits ready for training.

    +
    +
    +_load()[source]¶
    +
    +
    Return type:
    +

    DataBundle

    +
    +
    +
    + +
    +
    +load(split=None, transforms=None)[source]¶
    +

    Return a DataBundle. Optionally return a specific split if provided.

    +
    +
    Return type:
    +

    DataBundle

    +
    +
    +
    + +
    +
    +name: str = 'base'¶
    +
    + +
    + +
    +
    +class pyhazards.datasets.FeatureSpec(input_dim=None, channels=None, description=None, extra=<factory>)[source]¶
    +

    Bases: object

    +

    Describes input features (shapes, dtypes, normalization).

    +
    +
    +channels: Optional[int] = None¶
    +
    + +
    +
    +description: Optional[str] = None¶
    +
    + +
    +
    +extra: Dict[str, Any]¶
    +
    + +
    +
    +input_dim: Optional[int] = None¶
    +
    + +
    + +
    +
    +class pyhazards.datasets.GraphTemporalDataset(x, y, adjacency=None)[source]¶
    +

    Bases: Dataset

    +

    Simple container for county/day style tensors with an optional adjacency.

    +

    Each sample is a window of shape (past_days, num_counties, num_features) and a label +of shape (num_counties,).

    +
    + +
    +
    +class pyhazards.datasets.LabelSpec(num_targets=None, task_type='regression', description=None, extra=<factory>)[source]¶
    +

    Bases: object

    +

    Describes labels/targets for downstream tasks.

    +
    +
    +description: Optional[str] = None¶
    +
    + +
    +
    +extra: Dict[str, Any]¶
    +
    + +
    +
    +num_targets: Optional[int] = None¶
    +
    + +
    +
    +task_type: str = 'regression'¶
    +
    + +
    + +
    +
    +pyhazards.datasets.available_datasets()[source]¶
    +
    + +
    +
    +pyhazards.datasets.graph_collate(batch)[source]¶
    +

    Collate function that stacks x and adjacency if provided.

    +
    + +
    +
    +pyhazards.datasets.load_dataset(name, **kwargs)[source]¶
    +
    +
    Return type:
    +

    Dataset

    +
    +
    +
    + +
    +
    +pyhazards.datasets.register_dataset(name, builder)[source]¶
    +
    +
    Return type:
    +

    None

    +
    +
    +
    +
    @@ -558,9 +750,50 @@

    Module contentsregister_dataset()

-
  • pyhazards.datasets.transforms package
  • -
  • pyhazards.datasets.hazards package
  • -
  • Module contents
  • +
  • pyhazards.datasets.transforms package
  • +
  • pyhazards.datasets.hazards package
  • +
  • Module contents +
  • diff --git a/docs/api/pyhazards.html b/docs/api/pyhazards.html index 7562793..8aba58b 100644 --- a/docs/api/pyhazards.html +++ b/docs/api/pyhazards.html @@ -315,9 +315,50 @@

    Subpackagesregister_dataset() -
  • pyhazards.datasets.transforms package
  • -
  • pyhazards.datasets.hazards package
  • -
  • Module contents
  • +
  • pyhazards.datasets.transforms package
  • +
  • pyhazards.datasets.hazards package
  • +
  • Module contents +
  • pyhazards.models package - - + @@ -607,6 +635,8 @@

    I

  • input_dim (pyhazards.datasets.base.FeatureSpec attribute)
  • @@ -615,6 +645,8 @@

    I

  • inputs (pyhazards.datasets.base.DataSplit attribute)
  • @@ -630,11 +662,15 @@

    L

  • LabelSpec (class in pyhazards)
  • @@ -644,11 +680,15 @@

    L

  • load_dataset() (in module pyhazards)
  • @@ -666,6 +706,10 @@

    M

  • (pyhazards.datasets.base.DataBundle attribute)
  • (pyhazards.datasets.base.DataSplit attribute) +
  • +
  • (pyhazards.datasets.DataBundle attribute) +
  • +
  • (pyhazards.datasets.DataSplit attribute)
  • (pyhazards.DataSplit attribute)
  • @@ -689,10 +733,16 @@

    M

    + +
    • pyhazards.engine.trainer @@ -814,8 +891,6 @@

      P

    • module
    - - + + - - +
    • set_adjacency() (pyhazards.models.WildfireMamba method)
    • set_device() (in module pyhazards.utils) @@ -997,6 +1074,8 @@

      S

    • strategy (pyhazards.engine.distributed.DistributedConfig attribute) @@ -1016,12 +1095,16 @@

      T

    • targets (pyhazards.datasets.base.DataSplit attribute)
    • task_type (pyhazards.datasets.base.LabelSpec attribute)
    • diff --git a/docs/objects.inv b/docs/objects.inv index ade2d47631ecc13ce2c2265bb88b3ed1489cee12..ca3e0738a0b0b71828bad3c345fe2eec2efc9316 100644 GIT binary patch delta 2119 zcmV-N2)Or#5UCN6d4EfD+cpq@@A?&-X%Fo|Oq-cpa=bk~=n13C!NDET7M)o8`jAZF| zj3P4~M&b}^JYZIkkUD5m6Z`<}!hj@sT(S`3FLx(~?RjCA{h(Ha zZ8HQ$b5Tk8B!A^=(xF+mz6%6H1)oVfCF*@()N?N52XTfX^JPe9F$VHy@BFU^M&2mfRRaw1fVHi$@KOt~-jyYW!AQch#gQS3&b zlTS}cV7qBL3SX120XygBOY-6V=@NynyDT+30wg)Rqkmo;TbFz@nYG)BIUMQ|#OfrM zlilf*+|-97RM~B$sA)W=5!3Pnc6KrBsgVuKKM}B zZhB>k%>*mt9i~`CvzlZT$YPpR7@LWH#z~$PD7K0B2C{b3{9GWCnl>zC{2)QExN^D# zz_?XEV1HQ<;WrXuJ9+$u;*yJH9t~l zQ4Jj;E#|KN76IU+lqfhyWk7@WR)%;mmt_bB^;?E;z=L;)2J>KAFoYY^hr#(W1MWwR zD}S_C(}LX%zl?(MZ+b*%$D-kd91+elAc-_gRrZOk4}o{qAaoCN#*4jAda4K|hop{DL39o+sTZMk5FfvVf5f12Ed1!QX3se; zC!8KgIv3xF3X25)TiMfUuSZu|x+jNeqa`EtSiZOxSTNcaT>i|r_TlUZ-o_*%>EVT> zQTBe9?s0+B5Ic;(;zf)uLHAllpQm$4qfOJeve9PEU*KqCmalWPQTmrVi^!;3x_(j~r3tmC@I%tCHz7^bxMzy?I!V9%Pr zoOWZ4UP{EV1}~=OXpnXC6pb)|Gk;~2$7sd_m=lvcM-7}o;-L)MLE@dof*@4W&zCkvL8zylF^!0q7QR<>tM}bi4g@44+o)q|E z`}E|XRfFMH1eOHZ#|M<`5P)hG#}CS^4HW%@LY#(YF#UK~TQ5Bx+{Pjc00s;_l0JnR z0HajtMcS@5#SrIf%K|)UCz%j4)WKnnHYE>MQ8=SL$pleYGap|MH2cj?dvyvDxN3fc z_vjR}KvLBn8m4K0Xr50W5`XJC=Hgj1(j@&zeFeViT)+?SuLM(W}26IMLI5;%{ z9aA+BLe=)J8epqxG~a8RA`F$%Q#UhGGGehk zwG(b<6{k#MuSFQU*dmk49h`8p?Ybc#i;X&V#3*@WPTuNodM8F^KYs#MXkgBh(BSLTLF84Auk3Zfp6RuHSxu0v&^SRK@(EczN{VPkFU*HvAw1+03wp-kUa zby8l=!zy&ZD|H6kG=HX-Bj>69o~#7dd2^Fk=?2;xXWJ=}&GqsmQ~p-(DXyi}RN*8| zL%Vaw8-M#(BE^v~N$eJYH#$aYUPxGP?8;{$@jZL@Sms^v7prCpKH&m=k*oI#gxvM! z;!7vM&)$S8C8`o3a&xzN*mg394AVj>Q9}NJbvR% zUU$L?E(-KnDJqJD;KTK1bFuy`$+4Zfb7es-^L#0FEzJ-L_Ho9;0hL%+EQB9_TwHiJ zRrTvP9$wIn^v*qFb=y^mkbk+kyWOr1I3;O>e^#}t|9F-4o42CoUHNlW-qztZj*;p8 zl3J!;`}Ra4ynpIiY9zZx8gI=L?%HoOFD2K_7fim~&cAa2WvI;a9%>-HZ*=b7toS}r zbTU7$n}T{e!~rV0E0r#YJ)L<7mky=tEfuJ2+qhJa>NIyMiH|MVu&mx$)o)2qVW&og zb+^TXEIYDB!?Je3_-{#YWOD{ZLhSGI=jz`R310&~OF#vaC8XD)_Fv@-Z(F`t6}V2C x>owB76%w2Fc||cQ!ef5|#XC`TE6SfrbH^}BWNi5?YF%Y~T|V>2)&J>r&m14-^ThxF delta 1955 zcmV;U2VD565rz~kVaOJvNX11At_kO zzflso*)Wh}nDIc1oP}b6B{jhh$TkdElEo#96!PWvSWq}GOp~kxEU%oOQ$Y(1&@qdM zt4Uu-L9UKGim6j0cQSuRNpZ|+ATk;{H?GFn(?T+0RzNG@$7D<6#dgS|iEKx*gi+N) zfC!tW37q<(Qh)i3%Q3m2*kyHBh=Sy@Ct*g^^T4U*QsW14N+S1RQ%d1VP7>-|%Ud;B zHuV^_uBoQ;!vo=*#$rj~endr>v#fLll#j*+9LZ7l$lRXAUudJ{>|JUAv+Cgz^Hm2R|3X zx>u(_I@q9J(8VSisFO_~KsTE(kdA()NtWg$hQxbkT39zf=Y(mxAkH_@_D4qH~yWZhq8)Z`%pWYLr@FC z+r+vcux$tog4;!hAhb=u>;|5RqX96h@EXGX8Gr5S5RAKlCu4MH)NJVPPDBUJ2m1C* ztN0&;v-~UoV_QecFuX+w4Fg+#Td;>)d~yK5en$H`eV~9~t-o79;Fg~=?9p-)#)aG{ zCm0>q!fXQ@5Sob~%hMtaQw(}e_e>P|32FP);9NJRPPSIQyx}5Z)eo94MpM3Ld}>Fl zGJi}oXr19pX;{^}(RIpqY(G9sb)+53SCQ7tGzDDu#b;$CZ-MHFn!nvRLBG4m0!HOf9-o<&C8&_$T68Vz;gPI8eZ z@pKtT6Iw4s(3plY+SSOTu67p8bmy?J7k^t8zW+h3bJ01og*C282=4KWgytp(ToiYC zPQ`GW=gfuf^BjlZM$eHL?$mleX3!?xS;ELTu5(NbQi zc!>Q4JGcdc5&8^tusg+V581|6yDG!fVy7}#-wf7)HYAI4<9VdRtziHR!$hn5O)eA+ zqinD6ID#-tv%iAkjKVO_`r?Eu3B|ZKnv2)deJaEf!#WCvQ7rzg=rB!8qlJfYbq!`gc2$>26t=e{^#?3VNeRs%TQKAEL$ zYgdf1zP2pHm3EYg(L)^^XK6F?a1F(C+M`SqgDtN(*?}g%*;$WHMM5{tkLZpZ<08;Z zg+oKm10u3)e37`AV$QBL6Gh@w;2?J=7|x{P;O>gYkQf7AvC%f8CLErbh<_VXGZ4en z_GlSls#+Y`+m1`aaXrR5++xd(QuQtf+fy(EEM{xI*FHr#D&tPw%}MEq+49VraF|yd zbBVnYar|P7OsehR$Tk~R4F#DkbYVrD?s`n=K{ua|1)KZ`RHaW$UzJXdy>qZp12mcm z6Q)U`E|@K{Mq#QcAE*2MOn=W<*(Bo(8U-Ydm!L|6mNybkwGQ&PTuSKT#%@4ZW1!{X zv{s8NZv$#K6c+OYig`#@VT?{#g~~)VI)o>R=yQ~Yjkm2|S9!e_uw9yfSnUMb8{W1vBAesoQKtT_-ZLCan}4ZllQa(P)*Wy7 z?ca!0OTs9z8vx#58L4?8D|&5LJ}bqy^xZ2`?^?cCHC^z5=H!!}y_cYLH|xt!oj|U= zi7+av6eYR6TR&_%%|4|fH)^UBrTO~(W^=LbL^0vjLT}VHiAs8Z`S?W^dDDp#n&;%B zQL2)Z@Zn~?zP$LT>3@o?xpHMft$DuEs>V}7f?b@-aKI$%l9l-J`{ku~TV=m_li`Kv zNbhoIY%aS>QTmtLyRVzoo^r+``lHHS{i~q~RJLb|s~v2LGN pf|5Ku^gB?!Qyf`0D*dT+cLgPhjxC>6uIp5e%V+tx`X9i7-=pJ2(E|Vg diff --git a/docs/py-modindex.html b/docs/py-modindex.html index c0bddcc..c161267 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -270,18 +270,36 @@

      Python Module Index

      pyhazards + + +     + pyhazards.datasets + +     pyhazards.datasets.base + + +     + pyhazards.datasets.hazards + +     pyhazards.datasets.registry + + +     + pyhazards.datasets.transforms + +     diff --git a/docs/searchindex.js b/docs/searchindex.js index 89818b7..0f4dd3d 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Academic Publications": [[25, "academic-publications"]], "Access": [[8, "access"], [9, "access"], [10, "access"], [11, "access"], [12, "access"], [13, "access"], [14, "access"], [15, "access"]], "Basic Usage": [[24, "basic-usage"]], "Build a built-in model": [[22, "build-a-built-in-model"]], "Contributors": [[26, "contributors"]], "Core Components": [[17, "core-components"]], "Core Contributors": [[26, "core-contributors"]], "Core Team": [[26, null]], "Core classes": [[19, "core-classes"], [21, "core-classes"]], "Core modules": [[20, "core-modules"], [22, "core-modules"]], "Data Characteristics": [[8, "data-characteristics"], [9, "data-characteristics"], [10, "data-characteristics"], [11, "data-characteristics"], [12, "data-characteristics"], [13, "data-characteristics"], [14, "data-characteristics"], [15, "data-characteristics"]], "Dataset inspection": [[19, "dataset-inspection"]], "Datasets": [[16, "datasets"], [19, null], [19, "id1"]], "Design notes": [[22, "design-notes"]], "Distributed and devices": [[20, "distributed-and-devices"]], "ERA5": [[8, null]], "Engine": [[20, null]], "Example skeleton": [[19, "example-skeleton"]], "FIRMS": [[9, null]], "GOES-R": [[10, null]], "GPU Support": [[24, "gpu-support"]], "How to Cite": [[7, null], [17, "how-to-cite"]], "Implementation Guide": [[16, null]], "Indices and tables": [[17, "indices-and-tables"]], "Installation": [[18, null]], "Installing PyHazards": [[18, "installing-pyhazards"]], "LANDFIRE": [[11, null]], "Lead Developer": [[26, "lead-developer"]], "MERRA-2": [[12, null]], "MTBS": [[13, null]], "Mamba-based wildfire model (spatio-temporal)": [[22, "mamba-based-wildfire-model-spatio-temporal"]], "Metrics": [[16, "metrics"], [21, null]], "Models": [[16, "models"], [22, null]], "Module contents": [[1, "module-pyhazards"], [2, "module-contents"], [3, "module-pyhazards.engine"], [5, "module-pyhazards.models"], [6, "module-pyhazards.utils"]], "NOAA Flood Events": [[14, null]], "Next Steps": [[24, "next-steps"]], "Overview": [[8, "overview"], [9, "overview"], [10, "overview"], [11, "overview"], [12, "overview"], [13, "overview"], [14, "overview"], [15, "overview"]], "Principal Contributors & Maintainers": [[26, "principal-contributors-maintainers"]], "Quick Start": [[24, null]], "Reference": [[8, "reference"], [9, "reference"], [10, "reference"], [11, "reference"], [12, "reference"], [13, "reference"], [14, "reference"], [15, "reference"]], "References": [[25, null]], "Register a custom model": [[22, "register-a-custom-model"]], "Requirements": [[18, "requirements"]], "Submodules": [[2, "submodules"], [3, "submodules"], [5, "submodules"], [6, "submodules"], [23, "submodules"]], "Subpackages": [[1, "subpackages"]], "Summary": [[19, "summary"], [20, "summary"], [21, "summary"], [22, "summary"], [23, "summary"]], "Toy Example (tabular classification)": [[24, "toy-example-tabular-classification"]], "Training": [[16, "training"]], "Transforms": [[16, "transforms"]], "Typical Use Cases": [[8, "typical-use-cases"], [9, "typical-use-cases"], [10, "typical-use-cases"], [11, "typical-use-cases"], [12, "typical-use-cases"], [13, "typical-use-cases"], [14, "typical-use-cases"], [15, "typical-use-cases"]], "Typical usage": [[20, "typical-usage"]], "Usage": [[21, "usage"]], "Utils": [[23, null]], "Variables": [[8, "variables"], [9, "variables"], [10, "variables"], [11, "variables"], [12, "variables"], [13, "variables"], [14, "variables"], [15, "variables"]], "WFIGS": [[15, null]], "Wildfire Mamba (spatio-temporal toy)": [[17, null]], "pyhazards": [[0, null]], "pyhazards package": [[1, null]], "pyhazards.datasets package": [[2, null]], "pyhazards.datasets.base module": [[2, "module-pyhazards.datasets.base"]], "pyhazards.datasets.hazards package": [[2, "pyhazards-datasets-hazards-package"]], "pyhazards.datasets.registry module": [[2, "module-pyhazards.datasets.registry"]], "pyhazards.datasets.transforms package": [[2, "pyhazards-datasets-transforms-package"]], "pyhazards.engine package": [[3, null]], "pyhazards.engine.distributed module": [[3, "module-pyhazards.engine.distributed"]], "pyhazards.engine.inference module": [[3, "module-pyhazards.engine.inference"]], "pyhazards.engine.trainer module": [[3, "module-pyhazards.engine.trainer"]], "pyhazards.metrics package": [[4, null]], "pyhazards.models package": [[5, null]], "pyhazards.models.backbones module": [[5, "module-pyhazards.models.backbones"]], "pyhazards.models.builder module": [[5, "module-pyhazards.models.builder"]], "pyhazards.models.heads module": [[5, "module-pyhazards.models.heads"]], "pyhazards.models.registry module": [[5, "module-pyhazards.models.registry"]], "pyhazards.utils package": [[6, null]], "pyhazards.utils.common module": [[6, "module-pyhazards.utils.common"]], "pyhazards.utils.hardware module": [[6, "module-pyhazards.utils.hardware"]]}, "docnames": ["api/modules", "api/pyhazards", "api/pyhazards.datasets", "api/pyhazards.engine", "api/pyhazards.metrics", "api/pyhazards.models", "api/pyhazards.utils", "cite", "datasets/era5", "datasets/firms", "datasets/goesr", "datasets/landfire", "datasets/merra2", "datasets/mtbs", "datasets/noaa_flood", "datasets/wfigs", "implementation", "index", "installation", "pyhazards_datasets", "pyhazards_engine", "pyhazards_metrics", "pyhazards_models", "pyhazards_utils", "quick_start", "references", "team"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["api/modules.rst", "api/pyhazards.rst", "api/pyhazards.datasets.rst", "api/pyhazards.engine.rst", "api/pyhazards.metrics.rst", "api/pyhazards.models.rst", "api/pyhazards.utils.rst", "cite.rst", "datasets/era5.rst", "datasets/firms.rst", "datasets/goesr.rst", "datasets/landfire.rst", "datasets/merra2.rst", "datasets/mtbs.rst", "datasets/noaa_flood.rst", "datasets/wfigs.rst", "implementation.rst", "index.rst", "installation.rst", "pyhazards_datasets.rst", "pyhazards_engine.rst", "pyhazards_metrics.rst", "pyhazards_models.rst", "pyhazards_utils.rst", "quick_start.rst", "references.rst", "team.rst"], "indexentries": {"_abc_impl (pyhazards.classificationmetrics attribute)": [[1, "pyhazards.ClassificationMetrics._abc_impl", false]], "_abc_impl (pyhazards.datasets.base.transform attribute)": [[2, "pyhazards.datasets.base.Transform._abc_impl", false]], "_abc_impl (pyhazards.metricbase attribute)": [[1, "pyhazards.MetricBase._abc_impl", false]], "_abc_impl (pyhazards.regressionmetrics attribute)": [[1, "pyhazards.RegressionMetrics._abc_impl", false]], "_abc_impl (pyhazards.segmentationmetrics attribute)": [[1, "pyhazards.SegmentationMetrics._abc_impl", false]], "_is_protocol (pyhazards.datasets.base.transform attribute)": [[2, "pyhazards.datasets.base.Transform._is_protocol", false]], "_load() (pyhazards.dataset method)": [[1, "pyhazards.Dataset._load", false]], "_load() (pyhazards.datasets.base.dataset method)": [[2, "pyhazards.datasets.base.Dataset._load", false]], "_make_loader() (pyhazards.trainer method)": [[1, "pyhazards.Trainer._make_loader", false]], "_to_device() (pyhazards.trainer method)": [[1, "pyhazards.Trainer._to_device", false]], "available_datasets() (in module pyhazards)": [[1, "pyhazards.available_datasets", false]], "available_datasets() (in module pyhazards.datasets.registry)": [[2, "pyhazards.datasets.registry.available_datasets", false]], "available_models() (in module pyhazards)": [[1, "pyhazards.available_models", false]], "build_model() (in module pyhazards)": [[1, "pyhazards.build_model", false]], "channels (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.channels", false]], "channels (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.channels", false]], "classificationhead (class in pyhazards)": [[1, "pyhazards.ClassificationHead", false]], "classificationmetrics (class in pyhazards)": [[1, "pyhazards.ClassificationMetrics", false]], "cnnpatchencoder (class in pyhazards)": [[1, "pyhazards.CNNPatchEncoder", false]], "compute() (pyhazards.classificationmetrics method)": [[1, "pyhazards.ClassificationMetrics.compute", false]], "compute() (pyhazards.metricbase method)": [[1, "pyhazards.MetricBase.compute", false]], "compute() (pyhazards.regressionmetrics method)": [[1, "pyhazards.RegressionMetrics.compute", false]], "compute() (pyhazards.segmentationmetrics method)": [[1, "pyhazards.SegmentationMetrics.compute", false]], "databundle (class in pyhazards)": [[1, "pyhazards.DataBundle", false]], "databundle (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.DataBundle", false]], "dataset (class in pyhazards)": [[1, "pyhazards.Dataset", false]], "dataset (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.Dataset", false]], "datasplit (class in pyhazards)": [[1, "pyhazards.DataSplit", false]], "datasplit (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.DataSplit", false]], "description (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.description", false]], "description (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.description", false]], "description (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.description", false]], "description (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.description", false]], "evaluate() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.evaluate", false]], "extra (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.extra", false]], "extra (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.extra", false]], "extra (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.extra", false]], "extra (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.extra", false]], "feature_spec (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.feature_spec", false]], "feature_spec (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.feature_spec", false]], "featurespec (class in pyhazards)": [[1, "pyhazards.FeatureSpec", false]], "featurespec (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.FeatureSpec", false]], "fit() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.fit", false]], "forward() (pyhazards.classificationhead method)": [[1, "pyhazards.ClassificationHead.forward", false]], "forward() (pyhazards.cnnpatchencoder method)": [[1, "pyhazards.CNNPatchEncoder.forward", false]], "forward() (pyhazards.mlpbackbone method)": [[1, "pyhazards.MLPBackbone.forward", false]], "forward() (pyhazards.regressionhead method)": [[1, "pyhazards.RegressionHead.forward", false]], "forward() (pyhazards.segmentationhead method)": [[1, "pyhazards.SegmentationHead.forward", false]], "forward() (pyhazards.temporalencoder method)": [[1, "pyhazards.TemporalEncoder.forward", false]], "get_split() (pyhazards.databundle method)": [[1, "pyhazards.DataBundle.get_split", false]], "get_split() (pyhazards.datasets.base.databundle method)": [[2, "pyhazards.datasets.base.DataBundle.get_split", false]], "input_dim (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.input_dim", false]], "input_dim (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.input_dim", false]], "inputs (pyhazards.datasets.base.datasplit attribute)": [[2, "pyhazards.datasets.base.DataSplit.inputs", false]], "inputs (pyhazards.datasplit attribute)": [[1, "pyhazards.DataSplit.inputs", false]], "label_spec (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.label_spec", false]], "label_spec (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.label_spec", false]], "labelspec (class in pyhazards)": [[1, "pyhazards.LabelSpec", false]], "labelspec (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.LabelSpec", false]], "load() (pyhazards.dataset method)": [[1, "pyhazards.Dataset.load", false]], "load() (pyhazards.datasets.base.dataset method)": [[2, "pyhazards.datasets.base.Dataset.load", false]], "load_dataset() (in module pyhazards)": [[1, "pyhazards.load_dataset", false]], "load_dataset() (in module pyhazards.datasets.registry)": [[2, "pyhazards.datasets.registry.load_dataset", false]], "metadata (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.metadata", false]], "metadata (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.metadata", false]], "metadata (pyhazards.datasets.base.datasplit attribute)": [[2, "pyhazards.datasets.base.DataSplit.metadata", false]], "metadata (pyhazards.datasplit attribute)": [[1, "pyhazards.DataSplit.metadata", false]], "metricbase (class in pyhazards)": [[1, "pyhazards.MetricBase", false]], "mlpbackbone (class in pyhazards)": [[1, "pyhazards.MLPBackbone", false]], "module": [[1, "module-pyhazards", false], [2, "module-pyhazards.datasets.base", false], [2, "module-pyhazards.datasets.registry", false]], "name (pyhazards.dataset attribute)": [[1, "pyhazards.Dataset.name", false]], "name (pyhazards.datasets.base.dataset attribute)": [[2, "pyhazards.datasets.base.Dataset.name", false]], "num_targets (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.num_targets", false]], "num_targets (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.num_targets", false]], "predict() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.predict", false]], "pyhazards": [[1, "module-pyhazards", false]], "pyhazards.datasets.base": [[2, "module-pyhazards.datasets.base", false]], "pyhazards.datasets.registry": [[2, "module-pyhazards.datasets.registry", false]], "register_dataset() (in module pyhazards)": [[1, "pyhazards.register_dataset", false]], "register_dataset() (in module pyhazards.datasets.registry)": [[2, "pyhazards.datasets.registry.register_dataset", false]], "register_model() (in module pyhazards)": [[1, "pyhazards.register_model", false]], "regressionhead (class in pyhazards)": [[1, "pyhazards.RegressionHead", false]], "regressionmetrics (class in pyhazards)": [[1, "pyhazards.RegressionMetrics", false]], "reset() (pyhazards.classificationmetrics method)": [[1, "pyhazards.ClassificationMetrics.reset", false]], "reset() (pyhazards.metricbase method)": [[1, "pyhazards.MetricBase.reset", false]], "reset() (pyhazards.regressionmetrics method)": [[1, "pyhazards.RegressionMetrics.reset", false]], "reset() (pyhazards.segmentationmetrics method)": [[1, "pyhazards.SegmentationMetrics.reset", false]], "save_checkpoint() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.save_checkpoint", false]], "segmentationhead (class in pyhazards)": [[1, "pyhazards.SegmentationHead", false]], "segmentationmetrics (class in pyhazards)": [[1, "pyhazards.SegmentationMetrics", false]], "splits (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.splits", false]], "splits (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.splits", false]], "targets (pyhazards.datasets.base.datasplit attribute)": [[2, "pyhazards.datasets.base.DataSplit.targets", false]], "targets (pyhazards.datasplit attribute)": [[1, "pyhazards.DataSplit.targets", false]], "task_type (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.task_type", false]], "task_type (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.task_type", false]], "temporalencoder (class in pyhazards)": [[1, "pyhazards.TemporalEncoder", false]], "trainer (class in pyhazards)": [[1, "pyhazards.Trainer", false]], "transform (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.Transform", false]], "update() (pyhazards.classificationmetrics method)": [[1, "pyhazards.ClassificationMetrics.update", false]], "update() (pyhazards.metricbase method)": [[1, "pyhazards.MetricBase.update", false]], "update() (pyhazards.regressionmetrics method)": [[1, "pyhazards.RegressionMetrics.update", false]], "update() (pyhazards.segmentationmetrics method)": [[1, "pyhazards.SegmentationMetrics.update", false]]}, "objects": {"": [[1, 0, 0, "-", "pyhazards"]], "pyhazards": [[1, 1, 1, "", "CNNPatchEncoder"], [1, 1, 1, "", "ClassificationHead"], [1, 1, 1, "", "ClassificationMetrics"], [1, 1, 1, "", "DataBundle"], [1, 1, 1, "", "DataSplit"], [1, 1, 1, "", "Dataset"], [1, 1, 1, "", "FeatureSpec"], [1, 1, 1, "", "LabelSpec"], [1, 1, 1, "", "MLPBackbone"], [1, 1, 1, "", "MetricBase"], [1, 1, 1, "", "RegressionHead"], [1, 1, 1, "", "RegressionMetrics"], [1, 1, 1, "", "SegmentationHead"], [1, 1, 1, "", "SegmentationMetrics"], [1, 1, 1, "", "TemporalEncoder"], [1, 1, 1, "", "Trainer"], [1, 4, 1, "", "available_datasets"], [1, 4, 1, "", "available_models"], [1, 4, 1, "", "build_model"], [3, 0, 0, "-", "engine"], [1, 4, 1, "", "load_dataset"], [4, 0, 0, "-", "metrics"], [5, 0, 0, "-", "models"], [1, 4, 1, "", "register_dataset"], [1, 4, 1, "", "register_model"], [6, 0, 0, "-", "utils"]], "pyhazards.CNNPatchEncoder": [[1, 2, 1, "", "forward"]], "pyhazards.ClassificationHead": [[1, 2, 1, "", "forward"]], "pyhazards.ClassificationMetrics": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.DataBundle": [[1, 3, 1, "", "feature_spec"], [1, 2, 1, "", "get_split"], [1, 3, 1, "", "label_spec"], [1, 3, 1, "", "metadata"], [1, 3, 1, "", "splits"]], "pyhazards.DataSplit": [[1, 3, 1, "", "inputs"], [1, 3, 1, "", "metadata"], [1, 3, 1, "", "targets"]], "pyhazards.Dataset": [[1, 2, 1, "", "_load"], [1, 2, 1, "", "load"], [1, 3, 1, "", "name"]], "pyhazards.FeatureSpec": [[1, 3, 1, "", "channels"], [1, 3, 1, "", "description"], [1, 3, 1, "", "extra"], [1, 3, 1, "", "input_dim"]], "pyhazards.LabelSpec": [[1, 3, 1, "", "description"], [1, 3, 1, "", "extra"], [1, 3, 1, "", "num_targets"], [1, 3, 1, "", "task_type"]], "pyhazards.MLPBackbone": [[1, 2, 1, "", "forward"]], "pyhazards.MetricBase": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.RegressionHead": [[1, 2, 1, "", "forward"]], "pyhazards.RegressionMetrics": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.SegmentationHead": [[1, 2, 1, "", "forward"]], "pyhazards.SegmentationMetrics": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.TemporalEncoder": [[1, 2, 1, "", "forward"]], "pyhazards.Trainer": [[1, 2, 1, "", "_make_loader"], [1, 2, 1, "", "_to_device"], [1, 2, 1, "", "evaluate"], [1, 2, 1, "", "fit"], [1, 2, 1, "", "predict"], [1, 2, 1, "", "save_checkpoint"]], "pyhazards.datasets": [[2, 0, 0, "-", "base"], [2, 0, 0, "-", "registry"]], "pyhazards.datasets.base": [[2, 1, 1, "", "DataBundle"], [2, 1, 1, "", "DataSplit"], [2, 1, 1, "", "Dataset"], [2, 1, 1, "", "FeatureSpec"], [2, 1, 1, "", "LabelSpec"], [2, 1, 1, "", "Transform"]], "pyhazards.datasets.base.DataBundle": [[2, 3, 1, "", "feature_spec"], [2, 2, 1, "", "get_split"], [2, 3, 1, "", "label_spec"], [2, 3, 1, "", "metadata"], [2, 3, 1, "", "splits"]], "pyhazards.datasets.base.DataSplit": [[2, 3, 1, "", "inputs"], [2, 3, 1, "", "metadata"], [2, 3, 1, "", "targets"]], "pyhazards.datasets.base.Dataset": [[2, 2, 1, "", "_load"], [2, 2, 1, "", "load"], [2, 3, 1, "", "name"]], "pyhazards.datasets.base.FeatureSpec": [[2, 3, 1, "", "channels"], [2, 3, 1, "", "description"], [2, 3, 1, "", "extra"], [2, 3, 1, "", "input_dim"]], "pyhazards.datasets.base.LabelSpec": [[2, 3, 1, "", "description"], [2, 3, 1, "", "extra"], [2, 3, 1, "", "num_targets"], [2, 3, 1, "", "task_type"]], "pyhazards.datasets.base.Transform": [[2, 3, 1, "", "_abc_impl"], [2, 3, 1, "", "_is_protocol"]], "pyhazards.datasets.registry": [[2, 4, 1, "", "available_datasets"], [2, 4, 1, "", "load_dataset"], [2, 4, 1, "", "register_dataset"]], "pyhazards.engine": [[3, 1, 1, "", "DistributedConfig"], [3, 1, 1, "", "SlidingWindowInference"], [3, 1, 1, "", "Trainer"], [3, 0, 0, "-", "distributed"], [3, 0, 0, "-", "inference"], [3, 4, 1, "", "select_strategy"], [3, 0, 0, "-", "trainer"]], "pyhazards.engine.DistributedConfig": [[3, 3, 1, "", "devices"], [3, 3, 1, "", "strategy"]], "pyhazards.engine.Trainer": [[3, 2, 1, "", "_make_loader"], [3, 2, 1, "", "_to_device"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "predict"], [3, 2, 1, "", "save_checkpoint"]], "pyhazards.engine.distributed": [[3, 1, 1, "", "DistributedConfig"], [3, 4, 1, "", "select_strategy"]], "pyhazards.engine.distributed.DistributedConfig": [[3, 3, 1, "", "devices"], [3, 3, 1, "", "strategy"]], "pyhazards.engine.inference": [[3, 1, 1, "", "SlidingWindowInference"]], "pyhazards.engine.trainer": [[3, 1, 1, "", "Trainer"]], "pyhazards.engine.trainer.Trainer": [[3, 2, 1, "", "_make_loader"], [3, 2, 1, "", "_to_device"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "predict"], [3, 2, 1, "", "save_checkpoint"]], "pyhazards.metrics": [[4, 1, 1, "", "ClassificationMetrics"], [4, 1, 1, "", "MetricBase"], [4, 1, 1, "", "RegressionMetrics"], [4, 1, 1, "", "SegmentationMetrics"]], "pyhazards.metrics.ClassificationMetrics": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.metrics.MetricBase": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.metrics.RegressionMetrics": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.metrics.SegmentationMetrics": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.models": [[5, 1, 1, "", "CNNPatchEncoder"], [5, 1, 1, "", "ClassificationHead"], [5, 1, 1, "", "MLPBackbone"], [5, 1, 1, "", "RegressionHead"], [5, 1, 1, "", "SegmentationHead"], [5, 1, 1, "", "TemporalEncoder"], [5, 1, 1, "", "TverskyLoss"], [5, 1, 1, "", "WildfireASPP"], [5, 1, 1, "", "WildfireCNNASPP"], [5, 1, 1, "", "WildfireMamba"], [5, 4, 1, "", "available_models"], [5, 0, 0, "-", "backbones"], [5, 4, 1, "", "build_model"], [5, 0, 0, "-", "builder"], [5, 4, 1, "", "cnn_aspp_builder"], [5, 0, 0, "-", "heads"], [5, 4, 1, "", "register_model"], [5, 0, 0, "-", "registry"], [5, 4, 1, "", "wildfire_aspp_builder"], [5, 4, 1, "", "wildfire_mamba_builder"]], "pyhazards.models.CNNPatchEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.ClassificationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.MLPBackbone": [[5, 2, 1, "", "forward"]], "pyhazards.models.RegressionHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.SegmentationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.TemporalEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.TverskyLoss": [[5, 2, 1, "", "forward"]], "pyhazards.models.WildfireCNNASPP": [[5, 2, 1, "", "forward"]], "pyhazards.models.WildfireMamba": [[5, 2, 1, "", "_get_adjacency"], [5, 2, 1, "", "_temporal_delta"], [5, 2, 1, "", "forward"], [5, 2, 1, "", "set_adjacency"]], "pyhazards.models.backbones": [[5, 1, 1, "", "CNNPatchEncoder"], [5, 1, 1, "", "MLPBackbone"], [5, 1, 1, "", "TemporalEncoder"]], "pyhazards.models.backbones.CNNPatchEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.backbones.MLPBackbone": [[5, 2, 1, "", "forward"]], "pyhazards.models.backbones.TemporalEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.builder": [[5, 4, 1, "", "build_model"], [5, 4, 1, "", "default_builder"]], "pyhazards.models.heads": [[5, 1, 1, "", "ClassificationHead"], [5, 1, 1, "", "RegressionHead"], [5, 1, 1, "", "SegmentationHead"]], "pyhazards.models.heads.ClassificationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.heads.RegressionHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.heads.SegmentationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.registry": [[5, 4, 1, "", "available_models"], [5, 4, 1, "", "get_model_config"], [5, 4, 1, "", "register_model"]], "pyhazards.utils": [[6, 4, 1, "", "auto_device"], [6, 0, 0, "-", "common"], [6, 4, 1, "", "get_device"], [6, 4, 1, "", "get_logger"], [6, 0, 0, "-", "hardware"], [6, 4, 1, "", "num_devices"], [6, 4, 1, "", "seed_all"], [6, 4, 1, "", "set_device"]], "pyhazards.utils.common": [[6, 4, 1, "", "get_logger"], [6, 4, 1, "", "seed_all"]], "pyhazards.utils.hardware": [[6, 4, 1, "", "auto_device"], [6, 4, 1, "", "get_device"], [6, 4, 1, "", "num_devices"], [6, 4, 1, "", "set_device"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function"}, "terms": {"": [10, 11, 13, 14, 15, 19, 26], "0": [1, 3, 5, 8, 10, 12, 16, 17, 18, 19, 22, 24], "00230": 10, "008": 9, "01": 19, "0301003": 13, "06": 5, "0758": 12, "08": 9, "1": [1, 3, 5, 10, 12, 13, 17, 22], "10": [8, 9, 10, 11, 12, 13, 16, 20], "100": [], "1000": [16, 19], "1002": 8, "1016": 9, "1071": 11, "1175": [10, 12], "12": [5, 18, 22], "128": [1, 5, 16, 22], "14": 12, "143": 9, "146": 8, "15": 10, "16": [10, 12, 16, 17, 19, 20, 22, 24], "17": 10, "18": [10, 11], "1999": 8, "1e": [5, 16, 17, 20, 22, 24], "2": [1, 5, 8, 10, 16, 17, 18, 19, 20, 22, 24], "2007": [13, 19], "2009": 11, "2013": 9, "2014": [9, 19], "2017": [10, 12, 19], "2020": [8, 19], "2024": 19, "2025": 17, "2049": 8, "21": 13, "235": 11, "24": 17, "249": 11, "25": 8, "256": [1, 5, 22], "3": [1, 5, 11, 13, 16, 17, 18, 20, 22, 24], "30": [11, 12, 13], "31": [], "32": [1, 3, 5, 17, 22], "350": [17, 24], "375": 9, "3803": 8, "4": [10, 17], "42": 6, "425": [17, 24], "48": 22, "4996": 13, "5": [5, 10, 12, 17, 22, 24], "500": [17, 24], "5419": 12, "5454": 12, "6": [5, 17, 18, 22], "60": [], "625": 12, "64": [1, 3, 5, 22], "681": 10, "698": 10, "730": 8, "8": [17, 18, 22], "800": [16, 19], "85": 9, "900": [16, 19], "96": 9, "98": 10, "A": [10, 11, 13, 17, 22], "For": [22, 24], "If": [7, 17], "It": [8, 12, 22], "Near": [8, 9, 12, 19], "Or": 24, "The": [8, 9, 10, 11, 12, 19, 20, 22, 26], "To": [16, 24], "_": 19, "_abc": [1, 2, 4], "_abc_data": [1, 2, 4], "_abc_impl": [0, 1, 2, 4], "_get_adjac": [1, 5], "_is_protocol": [1, 2], "_load": [0, 1, 2, 16, 17, 19, 24], "_make_load": [0, 1, 3], "_temporal_delta": [1, 5], "_to_devic": [0, 1, 3], "abc": [1, 4], "abi": 10, "abov": [], "abstract": [1, 3, 4, 21], "accept": 16, "access": 19, "accuraci": 21, "across": [11, 13, 14, 15, 19], "activ": [9, 15, 19], "adam": [16, 17, 20, 22, 24], "add": 16, "adj": 5, "adjac": [5, 17, 22], "administr": 14, "adopt": 8, "advanc": 10, "aerosol": 10, "after": 16, "agenc": [14, 15], "aggreg": [15, 16, 21], "ai": 17, "al": [8, 10, 12, 19], "algorithm": 9, "allow": 19, "alpha": 5, "america": 10, "american": 10, "ametsoc": [], "amount": 8, "amp": [16, 20], "an": [15, 22], "analysi": [8, 9, 10, 12, 13, 14, 15, 19], "analyz": 17, "ani": [1, 2, 3, 5, 22], "annual": [11, 13], "anomali": [9, 10], "api": [1, 3, 17, 19, 24], "append": [], "appli": [5, 22], "applic": [8, 12], "ar": [8, 9, 10, 11, 13, 14, 15, 20, 21, 22], "arcgi": 15, "architectur": [16, 17, 22], "arg": [2, 5], "argument": 16, "arrai": [], "aspp": 5, "aspp_channel": 5, "assess": [8, 9, 11, 13, 14, 17, 19], "assimil": [8, 12], "associ": [9, 15], "assum": [], "assur": 26, "atmospher": [8, 10, 12, 14, 19], "attribut": 8, "author": 17, "authorit": [15, 19], "auto": [1, 3, 20], "auto_devic": [1, 6, 20], "automat": [6, 24], "avail": [10, 13, 14, 20, 24], "available_dataset": [0, 1, 2], "available_model": [0, 1, 5, 22], "awar": [9, 10, 17], "b": [5, 8, 13], "back": 22, "backbon": [0, 1, 16, 17, 22], "background": 11, "backward": 5, "bam": 10, "band": 10, "base": [0, 1, 3, 4, 5, 9, 11, 13, 14, 15, 18, 19], "base_channel": 5, "baselin": [8, 10], "basic": 17, "batch": [5, 22], "batch_siz": [1, 3, 5, 17, 22], "bcewithlogitsloss": [17, 22], "becaus": 22, "begin": 14, "behavior": [11, 19], "bell": 8, "below": 19, "benchmark": [8, 12, 19], "berrisford": 8, "beta": 5, "big": 10, "bin": [14, 19], "binari": [5, 17, 22], "block": 22, "bool": [], "both": [], "boundari": 8, "box": 17, "branch": 22, "brewer": 13, "bright": 10, "broad": 12, "build": [1, 5, 17], "build_model": [0, 1, 5, 16, 17, 20, 22, 24], "build_path": [], "builder": [0, 1, 2, 16, 22], "built": [17, 19, 21], "bulk": 11, "bulletin": 10, "bundl": [1, 2, 17, 22], "burn": [13, 19], "burnsever": [], "c": 5, "c00648": [14, 19], "c3": 8, "cache_dir": [1, 2], "calcul": 17, "call": 21, "callabl": 2, "can": [12, 16, 18, 22], "canopi": 11, "carri": 10, "categor": 13, "caus": 15, "cd": [8, 19], "center": [14, 15], "centr": 8, "chain": 16, "chang": [8, 13, 22], "channel": [0, 1, 2], "character": 11, "checkpoint": 20, "cheng": [17, 26], "choos": 6, "chunk": [], "class": [1, 2, 3, 4, 5, 13, 16, 17, 20, 24], "classif": [1, 5, 13, 16, 17, 19, 20, 22], "classificationhead": [0, 1, 5], "classificationmetr": [0, 1, 4, 16, 17, 20, 21, 24], "cli": 22, "clim": [], "climat": [8, 12], "closer": 10, "cloud": 10, "cnn": [1, 5, 16, 17, 22], "cnn_aspp_build": [1, 5], "cnnpatchencod": [0, 1, 5], "code": 26, "collat": 17, "collate_fn": [1, 3, 17], "collect": 16, "com": [15, 17], "combin": [8, 9], "common": [0, 1, 21, 22, 23], "commonli": [15, 19], "commun": 26, "compat": 5, "compil": 14, "complex": [1, 3, 22], "compos": [22, 26], "comprehens": [8, 17], "comput": [0, 1, 4, 16, 21], "concret": [], "conda": 18, "condit": [], "confid": 9, "config": [20, 22], "consid": 7, "consist": [1, 5, 8, 11, 12], "construct": [1, 2, 19, 22], "contain": [1, 2, 15, 19], "content": [0, 19], "context": 19, "contextu": 10, "continu": [10, 12, 19], "contourf": [], "contribut": 26, "conv_kernel": 5, "conveni": 22, "convent": 12, "coordin": [8, 9, 10, 11, 12, 13, 14, 15], "copernicu": [8, 19], "core": 12, "correl": [17, 22], "correspond": 9, "count": [5, 22], "counti": [5, 14, 17, 22], "coupl": 22, "covari": [8, 11, 12, 19], "cover": [11, 21], "coverag": [8, 9, 10, 11, 12, 13, 14, 15], "cpu": [16, 24], "cr": [], "creat": [16, 22], "critic": 10, "crop": 14, "crossentropyloss": [16, 17, 20, 24], "csiszar": 9, "csv": [9, 14], "cu126": 18, "cube": 22, "cuda": [18, 20, 24], "current": [], "custom": [1, 3, 16, 17, 24], "d": [10, 12], "d2m": 22, "da": [], "dai": [5, 9, 17, 22], "daili": 19, "damag": 14, "danger": 8, "dask": [], "data": [1, 2, 3, 17, 19, 22, 24], "data_bundl": [16, 20], "data_var": [], "dataandtool": [], "dataarrai": [], "databas": [14, 19], "databundl": [0, 1, 2, 16, 17, 19, 22, 24], "datafram": [], "dataload": [1, 3], "dataset": [0, 1, 9, 11, 12, 13, 14, 15, 17, 22, 24], "datasplit": [0, 1, 2, 16, 17, 19, 22, 24], "date": [15, 19], "date_end": [], "date_start": [], "datetim": [], "ddp": [3, 16, 17, 20], "dedic": 26, "def": [16, 17, 19, 22, 24], "default": [1, 5, 16, 20, 22], "default_build": [1, 5, 22], "deleg": [1, 5], "demonstr": 19, "densiti": 11, "depend": [9, 10, 11, 13, 15], "deploi": 17, "depth": [1, 5, 22], "deriv": [9, 10, 11, 13, 14, 19], "describ": [1, 2, 19], "descript": [0, 1, 2, 9, 14, 16, 17, 19, 24], "descriptor": 11, "design": [17, 21], "detail": 24, "detect": [9, 10, 15, 19, 24], "determinist": 6, "develop": 8, "devic": [1, 3, 6, 17, 23, 24], "device_str": 6, "dewpoint": 8, "df": [], "diagnost": [8, 10, 12], "dice": 21, "dict": [1, 2, 3, 4, 5, 22], "differ": [], "differenti": 22, "dilat": 5, "dimens": [], "direct": 26, "directli": 21, "directori": [], "discov": 19, "discover": 22, "discoveri": 15, "displai": [], "distanc": [17, 22], "distribut": [0, 1, 8, 9, 10, 15, 16], "distributedconfig": [1, 3], "disturb": 11, "dnbr": 13, "document": [14, 15, 24, 26], "doi": [8, 9, 10, 11, 12, 13], "dong": 26, "download": 18, "downstream": [1, 2], "dp": 3, "driven": [16, 22], "driver": [12, 14, 19], "drop": [], "dropout": 5, "drought": 12, "ds_pre": [], "ds_sfc": [], "dtype": [1, 2], "e": [9, 11, 12, 13, 15, 16, 19, 22], "each": [9, 15, 19], "earli": [9, 10, 19], "earthdata": [9, 12], "earthquak": [], "easi": [1, 2, 17], "ecmwf": [8, 19], "ecolog": [11, 13], "ecologi": 13, "ecosystem": 19, "edu": 26, "eidenshink": [13, 19], "els": [], "emerg": 14, "enabl": [5, 20], "encod": [1, 5, 16, 17, 22], "end": [11, 14, 21], "end_dat": [], "energi": 12, "engag": 26, "engin": [0, 1, 16, 17, 22, 24], "environ": [9, 18, 24], "environment": [8, 10, 12, 14, 17], "eosdi": [], "equal": [], "era": 12, "era5": [5, 17, 19, 22], "estim": [8, 12], "et": [8, 10, 12, 19], "etc": [], "eu": [], "european": 8, "evalu": [0, 1, 3, 13, 16, 17, 20, 22, 24], "event": [9, 13, 15, 19], "evolut": 10, "exampl": [16, 17, 18], "exist": [], "explicitli": 24, "explor": 19, "export": [22, 24], "extend": [1, 3, 21], "extens": [17, 22], "extent": [13, 19], "extern": 5, "extra": [0, 1, 2, 17, 22], "extract": 14, "extractor": 22, "extrem": [8, 12], "ey": [17, 22], "f": [], "factori": [1, 2], "fake": [17, 22], "fall": 22, "fals": [1, 3, 5, 6, 17, 22], "familiar": [1, 3], "fatal": 14, "featur": [1, 2, 5, 16, 17, 19, 22, 24], "feature_spec": [0, 1, 2, 16, 17, 19, 22, 24], "featurespec": [0, 1, 2, 16, 17, 19, 22, 24], "field": [8, 10, 11, 12], "fifth": 8, "file": [13, 19], "filenotfounderror": [], "find": 7, "fire": [9, 10, 11, 13, 15, 17, 19, 22], "fireecologi": 13, "firelab": [], "firm": [15, 19], "first": [16, 17, 18, 24], "fit": [0, 1, 3, 16, 17, 20, 22, 24], "flag": [6, 9], "float": [1, 3, 4, 5, 17, 22], "flood": [8, 19], "florida": 26, "flux": [8, 12], "follow": 7, "forc": [8, 12], "forecast": 8, "forest": 11, "format": [8, 9, 10, 11, 12, 13, 14, 15], "forward": [0, 1, 5], "found": [], "framework": 17, "frequenc": [10, 14, 19], "frequent": [], "from": [9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 22, 24], "from_logit": 5, "frp": 9, "fsu": 26, "fuel": [9, 11, 13, 15, 19], "full": 21, "function": [16, 17, 22, 24], "g": [9, 11, 12, 13, 15, 16, 19, 22], "gca": [], "gcn": 22, "gcn_hidden": 5, "gelaro": [12, 19], "gener": [5, 8, 10], "geodatabas": 13, "geograph": [9, 15], "geojson": [9, 15], "geolog": 13, "geometri": 15, "geopotenti": [8, 12], "geospati": [11, 15], "geostationari": [10, 19], "geotiff": [11, 13], "get": [16, 22, 24], "get_devic": [1, 6], "get_logg": [1, 6], "get_model_config": [1, 5], "get_split": [0, 1, 2], "gi": 15, "giglio": 9, "github": 17, "given": 22, "global": [8, 9, 12, 19], "gmao": [12, 19], "goe": [15, 19], "goesr": 19, "gov": [14, 19], "gpu": [16, 17, 20], "graph": 17, "graph_col": [17, 22], "graphtemporaldataset": [17, 22], "grib": 8, "grid": [3, 8, 9, 10, 11, 12, 14, 19, 20], "griffith": 10, "ground": [10, 15, 19], "growth": 10, "gru": [1, 5], "gsfc": [], "guid": 24, "gunshor": 10, "h": [5, 8], "h5netcdf": [], "handl": [20, 22], "hardwar": [0, 1, 20, 23], "hazard": [0, 1, 8, 9, 10, 11, 12, 14, 16, 17, 19, 24], "head": [0, 1, 16, 17, 22], "heat": 12, "height": [11, 12], "help": 24, "helper": [17, 20, 22, 23, 24], "hemispher": 10, "hersbach": [8, 19], "hidden": [16, 22], "hidden_dim": [1, 5, 16, 22], "high": [8, 10, 19], "highlight": 22, "histor": [8, 14, 15], "hold": 19, "home": [], "hotspot": [9, 15], "hourli": [8, 12, 19], "how": [16, 19], "howard": 13, "http": [8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "humid": 12, "hurrican": 12, "i": [5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 26], "id": [14, 19], "ident": 22, "identifi": 15, "ignit": [10, 11, 13, 15, 19], "imag": 10, "imageri": [10, 13, 19], "impact": [13, 14, 19], "implement": [3, 17, 19, 24], "import": [16, 17, 19, 20, 21, 22, 24], "in_channel": [1, 5], "in_dim": [1, 5, 16, 17, 20, 22, 24], "incid": [15, 19], "includ": [8, 9, 10, 11, 12, 13, 14, 15], "index": [16, 17, 18], "indic": [9, 10], "individu": 13, "infer": [0, 1, 20], "inform": [9, 14, 15], "infrar": 10, "initi": 9, "injuri": 14, "input": [0, 1, 2, 3, 5, 8, 12, 19, 22], "input_dim": [0, 1, 2, 5, 16, 17, 19, 22, 24], "ins": 22, "inspect_d": [], "int": [1, 2, 3, 6, 16, 22], "integr": [9, 10, 11, 13, 14, 15], "interag": [15, 19], "interfac": [1, 5, 17, 19, 21, 24], "intern": [11, 22], "iou": 21, "ipython": [], "isel": [], "iso": [14, 19], "item": [], "iter": [1, 3], "j": [9, 10, 12, 13], "jcli": 12, "journal": [8, 11, 12], "k": 13, "keep": [1, 2, 5, 22], "keyerror": [], "kind": [], "km": 10, "kml": 9, "kwarg": [1, 2, 5, 16, 22], "l": 9, "label": [1, 2, 9, 14, 15, 17, 19, 22], "label_spec": [0, 1, 2, 16, 17, 19, 22, 24], "labelspec": [0, 1, 2, 16, 17, 19, 22, 24], "labrai": 17, "land": [8, 9, 12, 14, 19], "landfir": 19, "landsat": [13, 19], "landscap": [11, 19], "landslid": [], "larg": [3, 20], "latest": 10, "latitud": [8, 9, 10, 12], "layer": [8, 11, 13, 16, 19, 22], "learn": [8, 11, 12, 14, 17], "len": [], "let": [], "level": [8, 9, 12, 14, 15, 19], "librari": 17, "lightweight": [1, 3, 5, 19, 22], "like": [17, 22], "limit": 12, "line": 16, "linear": [16, 22], "list": [1, 3], "list_var": [], "liter": 3, "load": [0, 1, 2, 16, 17, 24], "load_dataset": [0, 1, 2, 19], "loader": [], "local": 14, "locat": [9, 14, 15, 19], "log": [17, 23], "logger": 6, "logic": 3, "logit": [5, 17, 22], "long": [12, 13, 19], "longitud": [8, 9, 10, 12], "look": 10, "loop": [1, 3, 22], "loss": 5, "loss_fn": [1, 3, 16, 17, 20, 22, 24], "lower": [], "lr": [16, 17, 20, 22, 24], "m": [8, 9, 10, 11, 12, 13, 19], "machin": [8, 11, 12, 17], "mae": 21, "maintain": 15, "mainten": 26, "make": [1, 2], "mamba": 5, "mamba_lay": 5, "manag": [9, 11, 14, 15, 17, 23], "map": [11, 13], "mask": [1, 5], "match": 18, "matplotlib": [], "matrix": [17, 22], "max": [], "max_epoch": [1, 3, 16, 17, 20, 22, 24], "max_show": [], "max_var": [], "mccarti": 12, "mean": [], "medium": 8, "merra": 19, "merra2": 19, "merra2_sfc_": [], "merra_pres_": [], "metadata": [0, 1, 2, 5, 13, 14, 15, 19], "meteorolog": [8, 9, 10, 11, 12, 14, 15, 19], "meteorologi": [8, 12, 13, 19], "metric": [0, 1, 3, 13, 17, 20, 24], "metricbas": [0, 1, 4, 16, 21], "min": [], "minim": [1, 3, 22], "minut": 10, "miss": [], "mix": [17, 22], "mixed_precis": [1, 3, 16, 17, 20, 22, 24], "mlp": [1, 5, 16, 17, 20, 22, 24], "mlpbackbon": [0, 1, 5], "modap": [], "mode": 10, "model": [0, 1, 2, 3, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 24], "modern": [8, 12], "modi": [9, 19], "modul": [0, 16, 17, 23], "modular": [16, 17], "moistur": 12, "monitor": [9, 10, 13, 19], "monthli": 14, "more": [22, 24], "motion": 10, "mtb": 19, "multi": [1, 5, 12, 16, 17], "multipl": [9, 10, 11, 20], "multispectr": [10, 19], "must": [], "my_custom_build": 22, "my_hazard": [16, 19], "my_mlp": [16, 22], "my_model_build": 16, "myhazard": 16, "myhazarddataset": 19, "n": 5, "n_var": [], "name": [0, 1, 2, 5, 6, 13, 15, 16, 17, 19, 20, 22, 24], "namespac": [], "narr": 14, "nasa": [9, 12, 19], "nation": [11, 13, 14, 15], "nationwid": [11, 19], "natur": [8, 12, 17], "nc": [], "ncdc": [14, 19], "ncei": [14, 19], "need": [3, 21, 22], "neighbor": 22, "netcdf": [8, 10, 12], "netcdf4": [], "new": 9, "next": [5, 17, 22], "nifc": 15, "nn": [16, 17, 20, 22, 24], "no_grad": [17, 22], "noaa": [10, 19], "noaa_flood": 19, "none": [1, 2, 3, 4, 5, 6, 17, 22], "normal": [1, 2, 16], "note": 18, "np": [], "num_class": [1, 4, 5], "num_counti": [5, 17, 22], "num_devic": [1, 6], "num_featur": [5, 17, 22], "num_lay": [1, 5], "num_target": [0, 1, 2, 16, 17, 19, 22, 24], "num_work": [1, 3], "numer": 12, "numpi": [], "o": [], "obj": [1, 3], "object": [1, 2, 3, 4, 19], "observ": [8, 9, 10, 11, 12], "occurr": [9, 14, 15, 19], "ocean": 14, "offic": [12, 14], "offici": 15, "often": 19, "oliva": 9, "one": 17, "ongo": 15, "onlinelibrari": [], "open": [], "open_dataset": [], "open_merra": [], "opendata": 15, "oper": [9, 10, 19], "optim": [1, 3, 16, 17, 20, 22, 24], "option": [1, 2, 5, 8, 16, 17, 20, 22], "org": [8, 9, 10, 11, 12, 13, 18], "other": 23, "otherwis": 20, "our": 26, "out": 17, "out_dim": [1, 5, 16, 17, 20, 22, 24], "outdir": 19, "output": [1, 5, 19, 22], "over": [3, 10, 21, 22], "overpass": 9, "overrid": 5, "overview": 19, "own": [16, 22], "p": [8, 9, 10], "packag": 0, "page": [14, 17, 19], "pair": [14, 19], "panda": [], "paramet": [5, 16, 17, 20, 22, 24], "particularli": [10, 14], "pass": [16, 21, 22], "past_dai": [5, 17, 22], "patch": [1, 5, 16, 21, 22], "path": [1, 3], "pathlib": [], "pattern": [9, 15], "pattern_pr": [], "pattern_sfc": [], "pd": [], "per": [5, 9, 22], "perimet": [13, 15, 19], "physic": 12, "pick": [], "pip": 18, "pipelin": [8, 9, 11, 12, 15, 17], "pixel": 21, "placehold": [3, 20], "plain": 22, "plan": [11, 26], "pleas": [7, 17, 24], "plt": [], "plu": [1, 2, 19, 22], "point": [9, 10, 14, 15], "polygon": [13, 15], "popul": [], "portal": [9, 11, 13, 15], "post": [13, 19], "potenti": 9, "power": [9, 17], "pre": [], "precipit": [8, 12], "precis": 17, "pred": [1, 4, 20], "predict": [0, 1, 3, 8, 9, 11, 12, 13, 14, 16, 17, 19, 20, 21, 22], "prefer": [3, 6], "preprocess": 16, "pressur": [8, 12, 19], "print": [17, 22, 24], "prithvi": [], "prob": [17, 22], "probabl": [5, 17, 22], "process": 10, "produc": [8, 11, 12, 13], "product": [9, 10, 11, 13, 15], "profil": 12, "program": [10, 11, 13, 19], "project": [10, 11, 13, 15], "properti": 14, "protocol": 2, "provid": [1, 2, 8, 9, 10, 11, 12, 14, 15, 16, 17, 19, 22], "publicli": [9, 11, 13, 14, 15], "pyhazard": [16, 17, 19, 20, 21, 22, 23, 24, 26], "pyhazards2025": 17, "pyhazards_devic": [6, 24], "pyplot": [], "python": [17, 18, 19, 24], "pytorch": [17, 18, 22], "qj": 8, "qualiti": [9, 26], "quarterli": 8, "quasi": 11, "quayl": 13, "quick": 17, "quickli": [19, 24], "r": [12, 19], "radi": 9, "radianc": 10, "radiat": 8, "rais": [], "randint": [16, 17, 19, 22, 24], "randn": [16, 17, 19, 22, 24], "random": 22, "rang": 8, "rapid": [9, 10], "raster": [1, 3, 5, 10, 11, 13, 17, 19, 20, 22], "rather": 15, "rdnbr": 13, "re": 22, "readi": [1, 2, 17], "real": [9, 10, 15, 19], "reanalysi": [8, 10, 12, 14, 19], "receiv": 22, "recommend": 18, "record": [9, 10, 14, 15, 19], "refer": 24, "refresh": 10, "regim": [11, 13, 19], "region": 14, "regist": [16, 17], "register_dataset": [0, 1, 2, 16, 19], "register_model": [0, 1, 5, 16, 22], "registr": [22, 24], "registri": [0, 1, 16, 17, 19, 22], "regress": [1, 2, 5, 16, 17, 22], "regressionhead": [0, 1, 5], "regressionmetr": [0, 1, 4, 21], "regular": [8, 12], "relat": [8, 10, 14, 19], "releas": 11, "relu": [16, 22], "remot": [9, 11, 13], "replac": [1, 3, 17, 22], "report": [14, 15, 19], "repres": 15, "research": [12, 17, 26], "reset": [0, 1, 4, 16, 21], "reset_index": [], "resolut": [8, 9, 10, 11, 12, 13, 14, 15], "resourc": [9, 11], "respect": 6, "respons": 26, "result": [16, 17, 20, 24], "retrospect": 12, "return": [1, 2, 3, 4, 5, 6, 16, 17, 19, 22, 24], "reusabl": [16, 22], "review": 26, "risk": [8, 11, 17, 19], "rmet": [], "rmse": 21, "rollin": 11, "root": [], "row": [], "royal": 8, "rse": 9, "run": 20, "runyang": [], "sampl": [17, 22], "satellit": [9, 10, 12, 15], "save": 20, "save_checkpoint": [0, 1, 3], "scalar": [1, 5], "scale": [11, 13], "schmit": 10, "schroeder": [9, 19], "schwind": 13, "search": 17, "see": 19, "seed": [6, 17, 23], "seed_al": [1, 6], "segment": [1, 5, 16, 17, 22], "segmentationhead": [0, 1, 5], "segmentationmetr": [0, 1, 4, 21], "select": [20, 22], "select_strategi": [1, 3], "self": [16, 17, 19, 24], "sens": [9, 11, 13], "sensibl": 20, "sensor": 9, "sequenti": [16, 22], "seri": [1, 5, 10, 19, 22], "serv": 19, "servic": [8, 9, 11, 12, 15], "set": [5, 8, 12, 24], "set_adjac": [1, 5], "set_aspect": [], "set_devic": [1, 6, 24], "sever": [13, 14, 19], "sfc": [], "shape": [1, 2, 5, 17, 22], "shapefil": [9, 13, 15], "ship": 22, "short": [], "should": [1, 2], "show": 16, "shuffl": [1, 3], "sigmoid": [5, 17, 22], "signal": [1, 5], "simpl": [1, 5, 16, 17], "simplifi": 19, "simul": 11, "singl": [1, 2, 8, 19, 20], "situat": [9, 10], "size": 15, "skin": 12, "skipna": [], "slide": [3, 20], "slidingwindowinfer": [1, 3], "slowli": 11, "smoke": [10, 19], "smooth": 5, "so": [16, 22], "societi": [8, 10], "softwar": 17, "soil": 12, "sort_valu": [], "sourc": [1, 2, 3, 4, 5, 6, 15], "space": 22, "spatial": [5, 8, 9, 10, 11, 12, 13, 14, 15, 22], "spatio": 5, "spatiotempor": [8, 9, 12], "spec": [1, 2, 17, 19], "specif": [1, 2, 9, 22], "spectral": [10, 13], "split": [0, 1, 2, 3, 16, 17, 19, 20, 21, 22, 24], "spread": 11, "ssm": 22, "ssr": 22, "stack": 22, "stamp": 9, "standard": [5, 8, 13], "start": [14, 17], "start_dat": [], "state": [8, 11, 12, 13, 14, 15, 22, 26], "state_dim": 5, "static": [5, 11, 19], "statist": [], "statu": [15, 19], "std": [], "step": [], "stitch": 3, "store": [8, 22], "storm": [14, 19], "str": [1, 2, 3, 4, 5, 16, 22], "strateg": 26, "strategi": [1, 3, 20], "strftime": [], "structur": [8, 9, 10, 11, 12, 13, 14, 15, 19], "studi": [8, 12, 13, 14, 15, 19], "style": [5, 12, 17, 22], "subclass": [1, 2, 16], "submodul": [0, 1], "subpackag": 0, "summarize_da": [], "supervis": [9, 14], "support": [11, 13, 16, 17, 19, 20, 26], "surfac": [8, 9, 10, 12], "survei": 13, "su\u00e1rez": 12, "switch": 22, "system": [8, 9, 10, 11, 12, 13, 14, 15], "t": 10, "t2m": 22, "tab": [], "tabl": [], "tabular": [1, 5, 14, 17, 19, 22], "target": [0, 1, 2, 3, 4, 5, 9, 14, 16, 19, 21, 22], "task": [1, 2, 5, 8, 16, 17, 20, 21, 22, 24], "task_typ": [0, 1, 2, 16, 17, 19, 22, 24], "technic": 26, "temperatur": [8, 10, 12], "tempor": [5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19], "temporalencod": [0, 1, 5], "tensor": [1, 3, 5, 9, 14, 17, 22], "term": [12, 13, 19], "test": [1, 2, 3, 16, 17, 19, 20, 24], "test_dai": [], "than": 15, "them": [16, 22], "themat": 11, "thermal": [9, 10, 19], "thi": [1, 5, 14, 16, 22, 24], "through": [9, 10, 13, 15, 19], "throughout": [], "time": [1, 5, 9, 10, 12, 14, 15, 19, 22], "timestamp": 14, "titl": 17, "toi": 22, "too": [], "tool": 11, "topographi": 13, "torch": [16, 17, 18, 19, 20, 22, 24], "toyhazard": [17, 24], "tp": 22, "train": [1, 2, 3, 13, 17, 19, 20, 22, 24], "train_d": 17, "train_split": [1, 3], "trainer": [0, 1, 16, 17, 20, 21, 22, 24], "transform": [0, 1, 17], "treat": 15, "trend": [8, 12, 13], "true": [1, 2, 3, 5, 16, 17, 20, 22, 24], "truth": [10, 15, 19], "tupl": [], "tverski": 5, "tverskyloss": [1, 5], "two": [16, 22], "type": [1, 2, 3, 4, 5, 6, 11, 14, 22], "u": [11, 13, 14, 15, 19], "u10": 22, "under": 8, "unifi": [17, 19], "uniqu": 15, "unit": [11, 13, 14, 15], "univers": 26, "updat": [0, 1, 4, 9, 11, 14, 15, 16, 21], "url": [17, 18], "us": [5, 7, 16, 17, 18, 19, 20, 22, 24], "usag": [17, 22], "usda": [], "user": [16, 19], "usf": 19, "usg": 13, "util": [0, 1, 17, 19, 20, 24], "v10": 22, "val": [1, 2, 16, 17, 19, 22, 24], "val_d": 17, "val_split": [1, 3], "valid": [13, 15], "valu": [], "valueerror": [], "var": [], "vari": 11, "variabl": [19, 24], "vast": 8, "vector": 13, "veget": [11, 19], "version": [11, 12], "vertic": [8, 12], "via": [8, 11, 12, 14, 16, 17, 19, 20, 22], "view": 10, "viir": [9, 19], "visibl": 10, "visual": [], "w": [5, 9, 12], "we": 18, "weather": [8, 10, 12, 14], "western": 10, "wf08088": 11, "wfig": 19, "wheel": 18, "when": [9, 14, 19, 20], "where": [10, 14], "which": [10, 14], "whl": 18, "who": 26, "wide": [8, 9, 10, 11, 12, 13, 14, 15, 19], "wildfir": [5, 8, 9, 10, 11, 12, 13, 15, 19], "wildfire_aspp_build": [1, 5], "wildfire_mamba": [17, 22], "wildfire_mamba_build": [1, 5], "wildfireaspp": [1, 5], "wildfirecnnaspp": [1, 5], "wildfiremamba": [1, 5], "wildland": [11, 15], "wilei": [], "wind": [8, 12], "window": [3, 16, 17, 20], "window_fn": 3, "with_count_head": [5, 22], "work": [1, 3, 7, 22], "workflow": [12, 19], "wrap": [20, 22], "www": [14, 19], "wxc": 12, "x": [1, 5, 16, 17, 19, 22, 24], "xarrai": [], "xc25": 26, "xml": [], "xr": [], "xueqi": [17, 26], "y": [16, 17, 19, 22, 24], "year": [13, 17], "you": [7, 17, 22, 24], "your": [16, 17, 22], "yushun": 26, "yyyymmdd": [], "z": 13, "zhu": 13, "zone": 14}, "titles": ["pyhazards", "pyhazards package", "pyhazards.datasets package", "pyhazards.engine package", "pyhazards.metrics package", "pyhazards.models package", "pyhazards.utils package", "How to Cite", "ERA5", "FIRMS", "GOES-R", "LANDFIRE", "MERRA-2", "MTBS", "NOAA Flood Events", "WFIGS", "Implementation Guide", "Wildfire Mamba (spatio-temporal toy)", "Installation", "Datasets", "Engine", "Metrics", "Models", "Utils", "Quick Start", "References", "Core Team"], "titleterms": {"1": [], "2": 12, "3": [], "4": [], "5": [], "6": [], "academ": 25, "access": [8, 9, 10, 11, 12, 13, 14, 15], "backbon": 5, "base": [2, 22], "basic": 24, "build": 22, "builder": 5, "built": 22, "case": [8, 9, 10, 11, 12, 13, 14, 15], "characterist": [8, 9, 10, 11, 12, 13, 14, 15], "cite": [7, 17], "class": [19, 21], "classif": 24, "common": 6, "compon": 17, "config": [], "content": [1, 2, 3, 5, 6], "contributor": 26, "coord": [], "core": [17, 19, 20, 21, 22, 26], "custom": 22, "data": [8, 9, 10, 11, 12, 13, 14, 15], "dataset": [2, 16, 19], "date": [], "design": 22, "develop": 26, "devic": 20, "dim": [], "distribut": [3, 20], "engin": [3, 20], "era5": 8, "event": 14, "exampl": [19, 24], "filenam": [], "firm": 9, "flood": 14, "goe": 10, "gpu": 24, "guid": 16, "hardwar": 6, "hazard": 2, "head": 5, "helper": [], "how": [7, 17], "implement": 16, "import": [], "indic": 17, "infer": 3, "inspect": 19, "instal": 18, "landfir": 11, "lat": [], "lead": 26, "level": [], "load": [], "lon": [], "maintain": 26, "mamba": [17, 22], "map": [], "merra": 12, "metric": [4, 16, 21], "model": [5, 16, 22], "modul": [1, 2, 3, 5, 6, 20, 22], "mtb": 13, "next": 24, "noaa": 14, "note": 22, "overview": [8, 9, 10, 11, 12, 13, 14, 15], "packag": [1, 2, 3, 4, 5, 6], "path": [], "pattern": [], "plot": [], "princip": 26, "public": 25, "pyhazard": [0, 1, 2, 3, 4, 5, 6, 18], "quick": 24, "r": 10, "refer": [8, 9, 10, 11, 12, 13, 14, 15, 25], "regist": 22, "registri": [2, 5], "requir": 18, "setup": [], "skeleton": 19, "spatio": [17, 22], "start": 24, "stat": [], "step": 24, "submodul": [2, 3, 5, 6, 23], "subpackag": 1, "summari": [19, 20, 21, 22, 23], "support": 24, "tabl": 17, "tabular": 24, "team": 26, "tempor": [17, 22], "toi": [17, 24], "train": 16, "trainer": 3, "transform": [2, 16], "typic": [8, 9, 10, 11, 12, 13, 14, 15, 20], "us": [8, 9, 10, 11, 12, 13, 14, 15], "usag": [20, 21, 24], "util": [6, 23], "variabl": [8, 9, 10, 11, 12, 13, 14, 15], "wfig": 15, "wildfir": [17, 22]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Academic Publications": [[25, "academic-publications"]], "Access": [[8, "access"], [9, "access"], [10, "access"], [11, "access"], [12, "access"], [13, "access"], [14, "access"], [15, "access"]], "Basic Usage": [[24, "basic-usage"]], "Build a built-in model": [[22, "build-a-built-in-model"]], "Contributors": [[26, "contributors"]], "Core Components": [[17, "core-components"]], "Core Contributors": [[26, "core-contributors"]], "Core Team": [[26, null]], "Core classes": [[19, "core-classes"], [21, "core-classes"]], "Core modules": [[20, "core-modules"], [22, "core-modules"]], "Data Characteristics": [[8, "data-characteristics"], [9, "data-characteristics"], [10, "data-characteristics"], [11, "data-characteristics"], [12, "data-characteristics"], [13, "data-characteristics"], [14, "data-characteristics"], [15, "data-characteristics"]], "Dataset inspection": [[19, "dataset-inspection"]], "Datasets": [[16, "datasets"], [19, null], [19, "id1"]], "Design notes": [[22, "design-notes"]], "Distributed and devices": [[20, "distributed-and-devices"]], "ERA5": [[8, null]], "Engine": [[20, null]], "Example skeleton": [[19, "example-skeleton"]], "FIRMS": [[9, null]], "GOES-R": [[10, null]], "GPU Support": [[24, "gpu-support"]], "How to Cite": [[7, null], [17, "how-to-cite"]], "Implementation Guide": [[16, null]], "Indices and tables": [[17, "indices-and-tables"]], "Installation": [[18, null]], "Installing PyHazards": [[18, "installing-pyhazards"]], "LANDFIRE": [[11, null]], "Lead Developer": [[26, "lead-developer"]], "MERRA-2": [[12, null]], "MTBS": [[13, null]], "Mamba-based wildfire model (spatio-temporal)": [[22, "mamba-based-wildfire-model-spatio-temporal"]], "Metrics": [[16, "metrics"], [21, null]], "Models": [[16, "models"], [22, null]], "Module contents": [[1, "module-pyhazards"], [2, "module-pyhazards.datasets"], [3, "module-pyhazards.engine"], [5, "module-pyhazards.models"], [6, "module-pyhazards.utils"]], "NOAA Flood Events": [[14, null]], "Next Steps": [[24, "next-steps"]], "Overview": [[8, "overview"], [9, "overview"], [10, "overview"], [11, "overview"], [12, "overview"], [13, "overview"], [14, "overview"], [15, "overview"]], "Principal Contributors & Maintainers": [[26, "principal-contributors-maintainers"]], "Quick Start": [[24, null]], "Reference": [[8, "reference"], [9, "reference"], [10, "reference"], [11, "reference"], [12, "reference"], [13, "reference"], [14, "reference"], [15, "reference"]], "References": [[25, null]], "Register a custom model": [[22, "register-a-custom-model"]], "Requirements": [[18, "requirements"]], "Submodules": [[2, "submodules"], [3, "submodules"], [5, "submodules"], [6, "submodules"], [23, "submodules"]], "Subpackages": [[1, "subpackages"]], "Summary": [[19, "summary"], [20, "summary"], [21, "summary"], [22, "summary"], [23, "summary"]], "Toy Example (tabular classification)": [[24, "toy-example-tabular-classification"]], "Training": [[16, "training"]], "Transforms": [[16, "transforms"]], "Typical Use Cases": [[8, "typical-use-cases"], [9, "typical-use-cases"], [10, "typical-use-cases"], [11, "typical-use-cases"], [12, "typical-use-cases"], [13, "typical-use-cases"], [14, "typical-use-cases"], [15, "typical-use-cases"]], "Typical usage": [[20, "typical-usage"]], "Usage": [[21, "usage"]], "Utils": [[23, null]], "Variables": [[8, "variables"], [9, "variables"], [10, "variables"], [11, "variables"], [12, "variables"], [13, "variables"], [14, "variables"], [15, "variables"]], "WFIGS": [[15, null]], "Wildfire Mamba (spatio-temporal toy)": [[17, null]], "pyhazards": [[0, null]], "pyhazards package": [[1, null]], "pyhazards.datasets package": [[2, null]], "pyhazards.datasets.base module": [[2, "module-pyhazards.datasets.base"]], "pyhazards.datasets.hazards package": [[2, "module-pyhazards.datasets.hazards"]], "pyhazards.datasets.registry module": [[2, "module-pyhazards.datasets.registry"]], "pyhazards.datasets.transforms package": [[2, "module-pyhazards.datasets.transforms"]], "pyhazards.engine package": [[3, null]], "pyhazards.engine.distributed module": [[3, "module-pyhazards.engine.distributed"]], "pyhazards.engine.inference module": [[3, "module-pyhazards.engine.inference"]], "pyhazards.engine.trainer module": [[3, "module-pyhazards.engine.trainer"]], "pyhazards.metrics package": [[4, null]], "pyhazards.models package": [[5, null]], "pyhazards.models.backbones module": [[5, "module-pyhazards.models.backbones"]], "pyhazards.models.builder module": [[5, "module-pyhazards.models.builder"]], "pyhazards.models.heads module": [[5, "module-pyhazards.models.heads"]], "pyhazards.models.registry module": [[5, "module-pyhazards.models.registry"]], "pyhazards.utils package": [[6, null]], "pyhazards.utils.common module": [[6, "module-pyhazards.utils.common"]], "pyhazards.utils.hardware module": [[6, "module-pyhazards.utils.hardware"]]}, "docnames": ["api/modules", "api/pyhazards", "api/pyhazards.datasets", "api/pyhazards.engine", "api/pyhazards.metrics", "api/pyhazards.models", "api/pyhazards.utils", "cite", "datasets/era5", "datasets/firms", "datasets/goesr", "datasets/landfire", "datasets/merra2", "datasets/mtbs", "datasets/noaa_flood", "datasets/wfigs", "implementation", "index", "installation", "pyhazards_datasets", "pyhazards_engine", "pyhazards_metrics", "pyhazards_models", "pyhazards_utils", "quick_start", "references", "team"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["api/modules.rst", "api/pyhazards.rst", "api/pyhazards.datasets.rst", "api/pyhazards.engine.rst", "api/pyhazards.metrics.rst", "api/pyhazards.models.rst", "api/pyhazards.utils.rst", "cite.rst", "datasets/era5.rst", "datasets/firms.rst", "datasets/goesr.rst", "datasets/landfire.rst", "datasets/merra2.rst", "datasets/mtbs.rst", "datasets/noaa_flood.rst", "datasets/wfigs.rst", "implementation.rst", "index.rst", "installation.rst", "pyhazards_datasets.rst", "pyhazards_engine.rst", "pyhazards_metrics.rst", "pyhazards_models.rst", "pyhazards_utils.rst", "quick_start.rst", "references.rst", "team.rst"], "indexentries": {"_abc_impl (pyhazards.classificationmetrics attribute)": [[1, "pyhazards.ClassificationMetrics._abc_impl", false]], "_abc_impl (pyhazards.datasets.base.transform attribute)": [[2, "pyhazards.datasets.base.Transform._abc_impl", false]], "_abc_impl (pyhazards.metricbase attribute)": [[1, "pyhazards.MetricBase._abc_impl", false]], "_abc_impl (pyhazards.regressionmetrics attribute)": [[1, "pyhazards.RegressionMetrics._abc_impl", false]], "_abc_impl (pyhazards.segmentationmetrics attribute)": [[1, "pyhazards.SegmentationMetrics._abc_impl", false]], "_is_protocol (pyhazards.datasets.base.transform attribute)": [[2, "pyhazards.datasets.base.Transform._is_protocol", false]], "_load() (pyhazards.dataset method)": [[1, "pyhazards.Dataset._load", false]], "_load() (pyhazards.datasets.base.dataset method)": [[2, "pyhazards.datasets.base.Dataset._load", false]], "_load() (pyhazards.datasets.dataset method)": [[2, "pyhazards.datasets.Dataset._load", false]], "_make_loader() (pyhazards.trainer method)": [[1, "pyhazards.Trainer._make_loader", false]], "_to_device() (pyhazards.trainer method)": [[1, "pyhazards.Trainer._to_device", false]], "available_datasets() (in module pyhazards)": [[1, "pyhazards.available_datasets", false]], "available_datasets() (in module pyhazards.datasets)": [[2, "pyhazards.datasets.available_datasets", false]], "available_datasets() (in module pyhazards.datasets.registry)": [[2, "pyhazards.datasets.registry.available_datasets", false]], "available_models() (in module pyhazards)": [[1, "pyhazards.available_models", false]], "build_model() (in module pyhazards)": [[1, "pyhazards.build_model", false]], "channels (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.channels", false]], "channels (pyhazards.datasets.featurespec attribute)": [[2, "pyhazards.datasets.FeatureSpec.channels", false]], "channels (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.channels", false]], "classificationhead (class in pyhazards)": [[1, "pyhazards.ClassificationHead", false]], "classificationmetrics (class in pyhazards)": [[1, "pyhazards.ClassificationMetrics", false]], "cnnpatchencoder (class in pyhazards)": [[1, "pyhazards.CNNPatchEncoder", false]], "compute() (pyhazards.classificationmetrics method)": [[1, "pyhazards.ClassificationMetrics.compute", false]], "compute() (pyhazards.metricbase method)": [[1, "pyhazards.MetricBase.compute", false]], "compute() (pyhazards.regressionmetrics method)": [[1, "pyhazards.RegressionMetrics.compute", false]], "compute() (pyhazards.segmentationmetrics method)": [[1, "pyhazards.SegmentationMetrics.compute", false]], "databundle (class in pyhazards)": [[1, "pyhazards.DataBundle", false]], "databundle (class in pyhazards.datasets)": [[2, "pyhazards.datasets.DataBundle", false]], "databundle (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.DataBundle", false]], "dataset (class in pyhazards)": [[1, "pyhazards.Dataset", false]], "dataset (class in pyhazards.datasets)": [[2, "pyhazards.datasets.Dataset", false]], "dataset (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.Dataset", false]], "datasplit (class in pyhazards)": [[1, "pyhazards.DataSplit", false]], "datasplit (class in pyhazards.datasets)": [[2, "pyhazards.datasets.DataSplit", false]], "datasplit (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.DataSplit", false]], "description (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.description", false]], "description (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.description", false]], "description (pyhazards.datasets.featurespec attribute)": [[2, "pyhazards.datasets.FeatureSpec.description", false]], "description (pyhazards.datasets.labelspec attribute)": [[2, "pyhazards.datasets.LabelSpec.description", false]], "description (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.description", false]], "description (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.description", false]], "evaluate() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.evaluate", false]], "extra (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.extra", false]], "extra (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.extra", false]], "extra (pyhazards.datasets.featurespec attribute)": [[2, "pyhazards.datasets.FeatureSpec.extra", false]], "extra (pyhazards.datasets.labelspec attribute)": [[2, "pyhazards.datasets.LabelSpec.extra", false]], "extra (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.extra", false]], "extra (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.extra", false]], "feature_spec (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.feature_spec", false]], "feature_spec (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.feature_spec", false]], "feature_spec (pyhazards.datasets.databundle attribute)": [[2, "pyhazards.datasets.DataBundle.feature_spec", false]], "featurespec (class in pyhazards)": [[1, "pyhazards.FeatureSpec", false]], "featurespec (class in pyhazards.datasets)": [[2, "pyhazards.datasets.FeatureSpec", false]], "featurespec (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.FeatureSpec", false]], "fit() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.fit", false]], "forward() (pyhazards.classificationhead method)": [[1, "pyhazards.ClassificationHead.forward", false]], "forward() (pyhazards.cnnpatchencoder method)": [[1, "pyhazards.CNNPatchEncoder.forward", false]], "forward() (pyhazards.mlpbackbone method)": [[1, "pyhazards.MLPBackbone.forward", false]], "forward() (pyhazards.regressionhead method)": [[1, "pyhazards.RegressionHead.forward", false]], "forward() (pyhazards.segmentationhead method)": [[1, "pyhazards.SegmentationHead.forward", false]], "forward() (pyhazards.temporalencoder method)": [[1, "pyhazards.TemporalEncoder.forward", false]], "get_split() (pyhazards.databundle method)": [[1, "pyhazards.DataBundle.get_split", false]], "get_split() (pyhazards.datasets.base.databundle method)": [[2, "pyhazards.datasets.base.DataBundle.get_split", false]], "get_split() (pyhazards.datasets.databundle method)": [[2, "pyhazards.datasets.DataBundle.get_split", false]], "graph_collate() (in module pyhazards.datasets)": [[2, "pyhazards.datasets.graph_collate", false]], "graphtemporaldataset (class in pyhazards.datasets)": [[2, "pyhazards.datasets.GraphTemporalDataset", false]], "input_dim (pyhazards.datasets.base.featurespec attribute)": [[2, "pyhazards.datasets.base.FeatureSpec.input_dim", false]], "input_dim (pyhazards.datasets.featurespec attribute)": [[2, "pyhazards.datasets.FeatureSpec.input_dim", false]], "input_dim (pyhazards.featurespec attribute)": [[1, "pyhazards.FeatureSpec.input_dim", false]], "inputs (pyhazards.datasets.base.datasplit attribute)": [[2, "pyhazards.datasets.base.DataSplit.inputs", false]], "inputs (pyhazards.datasets.datasplit attribute)": [[2, "pyhazards.datasets.DataSplit.inputs", false]], "inputs (pyhazards.datasplit attribute)": [[1, "pyhazards.DataSplit.inputs", false]], "label_spec (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.label_spec", false]], "label_spec (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.label_spec", false]], "label_spec (pyhazards.datasets.databundle attribute)": [[2, "pyhazards.datasets.DataBundle.label_spec", false]], "labelspec (class in pyhazards)": [[1, "pyhazards.LabelSpec", false]], "labelspec (class in pyhazards.datasets)": [[2, "pyhazards.datasets.LabelSpec", false]], "labelspec (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.LabelSpec", false]], "load() (pyhazards.dataset method)": [[1, "pyhazards.Dataset.load", false]], "load() (pyhazards.datasets.base.dataset method)": [[2, "pyhazards.datasets.base.Dataset.load", false]], "load() (pyhazards.datasets.dataset method)": [[2, "pyhazards.datasets.Dataset.load", false]], "load_dataset() (in module pyhazards)": [[1, "pyhazards.load_dataset", false]], "load_dataset() (in module pyhazards.datasets)": [[2, "pyhazards.datasets.load_dataset", false]], "load_dataset() (in module pyhazards.datasets.registry)": [[2, "pyhazards.datasets.registry.load_dataset", false]], "metadata (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.metadata", false]], "metadata (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.metadata", false]], "metadata (pyhazards.datasets.base.datasplit attribute)": [[2, "pyhazards.datasets.base.DataSplit.metadata", false]], "metadata (pyhazards.datasets.databundle attribute)": [[2, "pyhazards.datasets.DataBundle.metadata", false]], "metadata (pyhazards.datasets.datasplit attribute)": [[2, "pyhazards.datasets.DataSplit.metadata", false]], "metadata (pyhazards.datasplit attribute)": [[1, "pyhazards.DataSplit.metadata", false]], "metricbase (class in pyhazards)": [[1, "pyhazards.MetricBase", false]], "mlpbackbone (class in pyhazards)": [[1, "pyhazards.MLPBackbone", false]], "module": [[1, "module-pyhazards", false], [2, "module-pyhazards.datasets", false], [2, "module-pyhazards.datasets.base", false], [2, "module-pyhazards.datasets.hazards", false], [2, "module-pyhazards.datasets.registry", false], [2, "module-pyhazards.datasets.transforms", false]], "name (pyhazards.dataset attribute)": [[1, "pyhazards.Dataset.name", false]], "name (pyhazards.datasets.base.dataset attribute)": [[2, "pyhazards.datasets.base.Dataset.name", false]], "name (pyhazards.datasets.dataset attribute)": [[2, "pyhazards.datasets.Dataset.name", false]], "num_targets (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.num_targets", false]], "num_targets (pyhazards.datasets.labelspec attribute)": [[2, "pyhazards.datasets.LabelSpec.num_targets", false]], "num_targets (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.num_targets", false]], "predict() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.predict", false]], "pyhazards": [[1, "module-pyhazards", false]], "pyhazards.datasets": [[2, "module-pyhazards.datasets", false]], "pyhazards.datasets.base": [[2, "module-pyhazards.datasets.base", false]], "pyhazards.datasets.hazards": [[2, "module-pyhazards.datasets.hazards", false]], "pyhazards.datasets.registry": [[2, "module-pyhazards.datasets.registry", false]], "pyhazards.datasets.transforms": [[2, "module-pyhazards.datasets.transforms", false]], "register_dataset() (in module pyhazards)": [[1, "pyhazards.register_dataset", false]], "register_dataset() (in module pyhazards.datasets)": [[2, "pyhazards.datasets.register_dataset", false]], "register_dataset() (in module pyhazards.datasets.registry)": [[2, "pyhazards.datasets.registry.register_dataset", false]], "register_model() (in module pyhazards)": [[1, "pyhazards.register_model", false]], "regressionhead (class in pyhazards)": [[1, "pyhazards.RegressionHead", false]], "regressionmetrics (class in pyhazards)": [[1, "pyhazards.RegressionMetrics", false]], "reset() (pyhazards.classificationmetrics method)": [[1, "pyhazards.ClassificationMetrics.reset", false]], "reset() (pyhazards.metricbase method)": [[1, "pyhazards.MetricBase.reset", false]], "reset() (pyhazards.regressionmetrics method)": [[1, "pyhazards.RegressionMetrics.reset", false]], "reset() (pyhazards.segmentationmetrics method)": [[1, "pyhazards.SegmentationMetrics.reset", false]], "save_checkpoint() (pyhazards.trainer method)": [[1, "pyhazards.Trainer.save_checkpoint", false]], "segmentationhead (class in pyhazards)": [[1, "pyhazards.SegmentationHead", false]], "segmentationmetrics (class in pyhazards)": [[1, "pyhazards.SegmentationMetrics", false]], "splits (pyhazards.databundle attribute)": [[1, "pyhazards.DataBundle.splits", false]], "splits (pyhazards.datasets.base.databundle attribute)": [[2, "pyhazards.datasets.base.DataBundle.splits", false]], "splits (pyhazards.datasets.databundle attribute)": [[2, "pyhazards.datasets.DataBundle.splits", false]], "targets (pyhazards.datasets.base.datasplit attribute)": [[2, "pyhazards.datasets.base.DataSplit.targets", false]], "targets (pyhazards.datasets.datasplit attribute)": [[2, "pyhazards.datasets.DataSplit.targets", false]], "targets (pyhazards.datasplit attribute)": [[1, "pyhazards.DataSplit.targets", false]], "task_type (pyhazards.datasets.base.labelspec attribute)": [[2, "pyhazards.datasets.base.LabelSpec.task_type", false]], "task_type (pyhazards.datasets.labelspec attribute)": [[2, "pyhazards.datasets.LabelSpec.task_type", false]], "task_type (pyhazards.labelspec attribute)": [[1, "pyhazards.LabelSpec.task_type", false]], "temporalencoder (class in pyhazards)": [[1, "pyhazards.TemporalEncoder", false]], "trainer (class in pyhazards)": [[1, "pyhazards.Trainer", false]], "transform (class in pyhazards.datasets.base)": [[2, "pyhazards.datasets.base.Transform", false]], "update() (pyhazards.classificationmetrics method)": [[1, "pyhazards.ClassificationMetrics.update", false]], "update() (pyhazards.metricbase method)": [[1, "pyhazards.MetricBase.update", false]], "update() (pyhazards.regressionmetrics method)": [[1, "pyhazards.RegressionMetrics.update", false]], "update() (pyhazards.segmentationmetrics method)": [[1, "pyhazards.SegmentationMetrics.update", false]]}, "objects": {"": [[1, 0, 0, "-", "pyhazards"]], "pyhazards": [[1, 1, 1, "", "CNNPatchEncoder"], [1, 1, 1, "", "ClassificationHead"], [1, 1, 1, "", "ClassificationMetrics"], [1, 1, 1, "", "DataBundle"], [1, 1, 1, "", "DataSplit"], [1, 1, 1, "", "Dataset"], [1, 1, 1, "", "FeatureSpec"], [1, 1, 1, "", "LabelSpec"], [1, 1, 1, "", "MLPBackbone"], [1, 1, 1, "", "MetricBase"], [1, 1, 1, "", "RegressionHead"], [1, 1, 1, "", "RegressionMetrics"], [1, 1, 1, "", "SegmentationHead"], [1, 1, 1, "", "SegmentationMetrics"], [1, 1, 1, "", "TemporalEncoder"], [1, 1, 1, "", "Trainer"], [1, 4, 1, "", "available_datasets"], [1, 4, 1, "", "available_models"], [1, 4, 1, "", "build_model"], [2, 0, 0, "-", "datasets"], [3, 0, 0, "-", "engine"], [1, 4, 1, "", "load_dataset"], [4, 0, 0, "-", "metrics"], [5, 0, 0, "-", "models"], [1, 4, 1, "", "register_dataset"], [1, 4, 1, "", "register_model"], [6, 0, 0, "-", "utils"]], "pyhazards.CNNPatchEncoder": [[1, 2, 1, "", "forward"]], "pyhazards.ClassificationHead": [[1, 2, 1, "", "forward"]], "pyhazards.ClassificationMetrics": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.DataBundle": [[1, 3, 1, "", "feature_spec"], [1, 2, 1, "", "get_split"], [1, 3, 1, "", "label_spec"], [1, 3, 1, "", "metadata"], [1, 3, 1, "", "splits"]], "pyhazards.DataSplit": [[1, 3, 1, "", "inputs"], [1, 3, 1, "", "metadata"], [1, 3, 1, "", "targets"]], "pyhazards.Dataset": [[1, 2, 1, "", "_load"], [1, 2, 1, "", "load"], [1, 3, 1, "", "name"]], "pyhazards.FeatureSpec": [[1, 3, 1, "", "channels"], [1, 3, 1, "", "description"], [1, 3, 1, "", "extra"], [1, 3, 1, "", "input_dim"]], "pyhazards.LabelSpec": [[1, 3, 1, "", "description"], [1, 3, 1, "", "extra"], [1, 3, 1, "", "num_targets"], [1, 3, 1, "", "task_type"]], "pyhazards.MLPBackbone": [[1, 2, 1, "", "forward"]], "pyhazards.MetricBase": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.RegressionHead": [[1, 2, 1, "", "forward"]], "pyhazards.RegressionMetrics": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.SegmentationHead": [[1, 2, 1, "", "forward"]], "pyhazards.SegmentationMetrics": [[1, 3, 1, "", "_abc_impl"], [1, 2, 1, "", "compute"], [1, 2, 1, "", "reset"], [1, 2, 1, "", "update"]], "pyhazards.TemporalEncoder": [[1, 2, 1, "", "forward"]], "pyhazards.Trainer": [[1, 2, 1, "", "_make_loader"], [1, 2, 1, "", "_to_device"], [1, 2, 1, "", "evaluate"], [1, 2, 1, "", "fit"], [1, 2, 1, "", "predict"], [1, 2, 1, "", "save_checkpoint"]], "pyhazards.datasets": [[2, 1, 1, "", "DataBundle"], [2, 1, 1, "", "DataSplit"], [2, 1, 1, "", "Dataset"], [2, 1, 1, "", "FeatureSpec"], [2, 1, 1, "", "GraphTemporalDataset"], [2, 1, 1, "", "LabelSpec"], [2, 4, 1, "", "available_datasets"], [2, 0, 0, "-", "base"], [2, 4, 1, "", "graph_collate"], [2, 0, 0, "-", "hazards"], [2, 4, 1, "", "load_dataset"], [2, 4, 1, "", "register_dataset"], [2, 0, 0, "-", "registry"], [2, 0, 0, "-", "transforms"]], "pyhazards.datasets.DataBundle": [[2, 3, 1, "", "feature_spec"], [2, 2, 1, "", "get_split"], [2, 3, 1, "", "label_spec"], [2, 3, 1, "", "metadata"], [2, 3, 1, "", "splits"]], "pyhazards.datasets.DataSplit": [[2, 3, 1, "", "inputs"], [2, 3, 1, "", "metadata"], [2, 3, 1, "", "targets"]], "pyhazards.datasets.Dataset": [[2, 2, 1, "", "_load"], [2, 2, 1, "", "load"], [2, 3, 1, "", "name"]], "pyhazards.datasets.FeatureSpec": [[2, 3, 1, "", "channels"], [2, 3, 1, "", "description"], [2, 3, 1, "", "extra"], [2, 3, 1, "", "input_dim"]], "pyhazards.datasets.LabelSpec": [[2, 3, 1, "", "description"], [2, 3, 1, "", "extra"], [2, 3, 1, "", "num_targets"], [2, 3, 1, "", "task_type"]], "pyhazards.datasets.base": [[2, 1, 1, "", "DataBundle"], [2, 1, 1, "", "DataSplit"], [2, 1, 1, "", "Dataset"], [2, 1, 1, "", "FeatureSpec"], [2, 1, 1, "", "LabelSpec"], [2, 1, 1, "", "Transform"]], "pyhazards.datasets.base.DataBundle": [[2, 3, 1, "", "feature_spec"], [2, 2, 1, "", "get_split"], [2, 3, 1, "", "label_spec"], [2, 3, 1, "", "metadata"], [2, 3, 1, "", "splits"]], "pyhazards.datasets.base.DataSplit": [[2, 3, 1, "", "inputs"], [2, 3, 1, "", "metadata"], [2, 3, 1, "", "targets"]], "pyhazards.datasets.base.Dataset": [[2, 2, 1, "", "_load"], [2, 2, 1, "", "load"], [2, 3, 1, "", "name"]], "pyhazards.datasets.base.FeatureSpec": [[2, 3, 1, "", "channels"], [2, 3, 1, "", "description"], [2, 3, 1, "", "extra"], [2, 3, 1, "", "input_dim"]], "pyhazards.datasets.base.LabelSpec": [[2, 3, 1, "", "description"], [2, 3, 1, "", "extra"], [2, 3, 1, "", "num_targets"], [2, 3, 1, "", "task_type"]], "pyhazards.datasets.base.Transform": [[2, 3, 1, "", "_abc_impl"], [2, 3, 1, "", "_is_protocol"]], "pyhazards.datasets.registry": [[2, 4, 1, "", "available_datasets"], [2, 4, 1, "", "load_dataset"], [2, 4, 1, "", "register_dataset"]], "pyhazards.engine": [[3, 1, 1, "", "DistributedConfig"], [3, 1, 1, "", "SlidingWindowInference"], [3, 1, 1, "", "Trainer"], [3, 0, 0, "-", "distributed"], [3, 0, 0, "-", "inference"], [3, 4, 1, "", "select_strategy"], [3, 0, 0, "-", "trainer"]], "pyhazards.engine.DistributedConfig": [[3, 3, 1, "", "devices"], [3, 3, 1, "", "strategy"]], "pyhazards.engine.Trainer": [[3, 2, 1, "", "_make_loader"], [3, 2, 1, "", "_to_device"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "predict"], [3, 2, 1, "", "save_checkpoint"]], "pyhazards.engine.distributed": [[3, 1, 1, "", "DistributedConfig"], [3, 4, 1, "", "select_strategy"]], "pyhazards.engine.distributed.DistributedConfig": [[3, 3, 1, "", "devices"], [3, 3, 1, "", "strategy"]], "pyhazards.engine.inference": [[3, 1, 1, "", "SlidingWindowInference"]], "pyhazards.engine.trainer": [[3, 1, 1, "", "Trainer"]], "pyhazards.engine.trainer.Trainer": [[3, 2, 1, "", "_make_loader"], [3, 2, 1, "", "_to_device"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "predict"], [3, 2, 1, "", "save_checkpoint"]], "pyhazards.metrics": [[4, 1, 1, "", "ClassificationMetrics"], [4, 1, 1, "", "MetricBase"], [4, 1, 1, "", "RegressionMetrics"], [4, 1, 1, "", "SegmentationMetrics"]], "pyhazards.metrics.ClassificationMetrics": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.metrics.MetricBase": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.metrics.RegressionMetrics": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.metrics.SegmentationMetrics": [[4, 3, 1, "", "_abc_impl"], [4, 2, 1, "", "compute"], [4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "pyhazards.models": [[5, 1, 1, "", "CNNPatchEncoder"], [5, 1, 1, "", "ClassificationHead"], [5, 1, 1, "", "MLPBackbone"], [5, 1, 1, "", "RegressionHead"], [5, 1, 1, "", "SegmentationHead"], [5, 1, 1, "", "TemporalEncoder"], [5, 1, 1, "", "TverskyLoss"], [5, 1, 1, "", "WildfireASPP"], [5, 1, 1, "", "WildfireCNNASPP"], [5, 1, 1, "", "WildfireMamba"], [5, 4, 1, "", "available_models"], [5, 0, 0, "-", "backbones"], [5, 4, 1, "", "build_model"], [5, 0, 0, "-", "builder"], [5, 4, 1, "", "cnn_aspp_builder"], [5, 0, 0, "-", "heads"], [5, 4, 1, "", "register_model"], [5, 0, 0, "-", "registry"], [5, 4, 1, "", "wildfire_aspp_builder"], [5, 4, 1, "", "wildfire_mamba_builder"]], "pyhazards.models.CNNPatchEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.ClassificationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.MLPBackbone": [[5, 2, 1, "", "forward"]], "pyhazards.models.RegressionHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.SegmentationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.TemporalEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.TverskyLoss": [[5, 2, 1, "", "forward"]], "pyhazards.models.WildfireCNNASPP": [[5, 2, 1, "", "forward"]], "pyhazards.models.WildfireMamba": [[5, 2, 1, "", "_get_adjacency"], [5, 2, 1, "", "_temporal_delta"], [5, 2, 1, "", "forward"], [5, 2, 1, "", "set_adjacency"]], "pyhazards.models.backbones": [[5, 1, 1, "", "CNNPatchEncoder"], [5, 1, 1, "", "MLPBackbone"], [5, 1, 1, "", "TemporalEncoder"]], "pyhazards.models.backbones.CNNPatchEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.backbones.MLPBackbone": [[5, 2, 1, "", "forward"]], "pyhazards.models.backbones.TemporalEncoder": [[5, 2, 1, "", "forward"]], "pyhazards.models.builder": [[5, 4, 1, "", "build_model"], [5, 4, 1, "", "default_builder"]], "pyhazards.models.heads": [[5, 1, 1, "", "ClassificationHead"], [5, 1, 1, "", "RegressionHead"], [5, 1, 1, "", "SegmentationHead"]], "pyhazards.models.heads.ClassificationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.heads.RegressionHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.heads.SegmentationHead": [[5, 2, 1, "", "forward"]], "pyhazards.models.registry": [[5, 4, 1, "", "available_models"], [5, 4, 1, "", "get_model_config"], [5, 4, 1, "", "register_model"]], "pyhazards.utils": [[6, 4, 1, "", "auto_device"], [6, 0, 0, "-", "common"], [6, 4, 1, "", "get_device"], [6, 4, 1, "", "get_logger"], [6, 0, 0, "-", "hardware"], [6, 4, 1, "", "num_devices"], [6, 4, 1, "", "seed_all"], [6, 4, 1, "", "set_device"]], "pyhazards.utils.common": [[6, 4, 1, "", "get_logger"], [6, 4, 1, "", "seed_all"]], "pyhazards.utils.hardware": [[6, 4, 1, "", "auto_device"], [6, 4, 1, "", "get_device"], [6, 4, 1, "", "num_devices"], [6, 4, 1, "", "set_device"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function"}, "terms": {"": [10, 11, 13, 14, 15, 19, 26], "0": [1, 3, 5, 8, 10, 12, 16, 17, 18, 19, 22, 24], "00230": 10, "008": 9, "01": 19, "0301003": 13, "06": 5, "0758": 12, "08": 9, "1": [1, 3, 5, 10, 12, 13, 17, 22], "10": [8, 9, 10, 11, 12, 13, 16, 20], "100": [], "1000": [16, 19], "1002": 8, "1016": 9, "1071": 11, "1175": [10, 12], "12": [5, 18, 22], "128": [1, 5, 16, 22], "14": 12, "143": 9, "146": 8, "15": 10, "16": [10, 12, 16, 17, 19, 20, 22, 24], "17": 10, "18": [10, 11], "1999": 8, "1e": [5, 16, 17, 20, 22, 24], "2": [1, 5, 8, 10, 16, 17, 18, 19, 20, 22, 24], "2007": [13, 19], "2009": 11, "2013": 9, "2014": [9, 19], "2017": [10, 12, 19], "2020": [8, 19], "2024": 19, "2025": 17, "2049": 8, "21": 13, "235": 11, "24": 17, "249": 11, "25": 8, "256": [1, 5, 22], "3": [1, 5, 11, 13, 16, 17, 18, 20, 22, 24], "30": [11, 12, 13], "31": [], "32": [1, 3, 5, 17, 22], "350": [17, 24], "375": 9, "3803": 8, "4": [10, 17], "42": 6, "425": [17, 24], "48": 22, "4996": 13, "5": [5, 10, 12, 17, 22, 24], "500": [17, 24], "5419": 12, "5454": 12, "6": [5, 17, 18, 22], "60": [], "625": 12, "64": [1, 3, 5, 22], "681": 10, "698": 10, "730": 8, "8": [17, 18, 22], "800": [16, 19], "85": 9, "900": [16, 19], "96": 9, "98": 10, "A": [10, 11, 13, 17, 22], "For": [22, 24], "If": [7, 17], "It": [8, 12, 22], "Near": [8, 9, 12, 19], "Or": 24, "The": [8, 9, 10, 11, 12, 19, 20, 22, 26], "To": [16, 24], "_": 19, "_abc": [1, 2, 4], "_abc_data": [1, 2, 4], "_abc_impl": [0, 1, 2, 4], "_get_adjac": [1, 5], "_is_protocol": [1, 2], "_load": [0, 1, 2, 16, 17, 19, 24], "_make_load": [0, 1, 3], "_temporal_delta": [1, 5], "_to_devic": [0, 1, 3], "abc": [1, 4], "abi": 10, "abov": [], "abstract": [1, 3, 4, 21], "accept": 16, "access": 19, "accuraci": 21, "across": [11, 13, 14, 15, 19], "activ": [9, 15, 19], "adam": [16, 17, 20, 22, 24], "add": 16, "adj": 5, "adjac": [2, 5, 17, 22], "administr": 14, "adopt": 8, "advanc": 10, "aerosol": 10, "after": 16, "agenc": [14, 15], "aggreg": [15, 16, 21], "ai": 17, "al": [8, 10, 12, 19], "algorithm": 9, "allow": 19, "alpha": 5, "america": 10, "american": 10, "ametsoc": [], "amount": 8, "amp": [16, 20], "an": [2, 15, 22], "analysi": [8, 9, 10, 12, 13, 14, 15, 19], "analyz": 17, "ani": [1, 2, 3, 5, 22], "annual": [11, 13], "anomali": [9, 10], "api": [1, 3, 17, 19, 24], "append": [], "appli": [5, 22], "applic": [8, 12], "ar": [8, 9, 10, 11, 13, 14, 15, 20, 21, 22], "arcgi": 15, "architectur": [16, 17, 22], "arg": [2, 5], "argument": 16, "arrai": [], "aspp": 5, "aspp_channel": 5, "assess": [8, 9, 11, 13, 14, 17, 19], "assimil": [8, 12], "associ": [9, 15], "assum": [], "assur": 26, "atmospher": [8, 10, 12, 14, 19], "attribut": 8, "author": 17, "authorit": [15, 19], "auto": [1, 3, 20], "auto_devic": [1, 6, 20], "automat": [6, 24], "avail": [10, 13, 14, 20, 24], "available_dataset": [0, 1, 2], "available_model": [0, 1, 5, 22], "awar": [9, 10, 17], "b": [5, 8, 13], "back": 22, "backbon": [0, 1, 16, 17, 22], "background": 11, "backward": 5, "bam": 10, "band": 10, "base": [0, 1, 3, 4, 5, 9, 11, 13, 14, 15, 18, 19], "base_channel": 5, "baselin": [8, 10], "basic": 17, "batch": [2, 5, 22], "batch_siz": [1, 3, 5, 17, 22], "bcewithlogitsloss": [17, 22], "becaus": 22, "begin": 14, "behavior": [11, 19], "bell": 8, "below": 19, "benchmark": [8, 12, 19], "berrisford": 8, "beta": 5, "big": 10, "bin": [14, 19], "binari": [5, 17, 22], "block": 22, "bool": [], "both": [], "boundari": 8, "box": 17, "branch": 22, "brewer": 13, "bright": 10, "broad": 12, "build": [1, 5, 17], "build_model": [0, 1, 5, 16, 17, 20, 22, 24], "build_path": [], "builder": [0, 1, 2, 16, 22], "built": [17, 19, 21], "bulk": 11, "bulletin": 10, "bundl": [1, 2, 17, 22], "burn": [13, 19], "burnsever": [], "c": 5, "c00648": [14, 19], "c3": 8, "cache_dir": [1, 2], "calcul": 17, "call": 21, "callabl": 2, "can": [12, 16, 18, 22], "canopi": 11, "carri": 10, "categor": 13, "caus": 15, "cd": [8, 19], "center": [14, 15], "centr": 8, "chain": 16, "chang": [8, 13, 22], "channel": [0, 1, 2], "character": 11, "checkpoint": 20, "cheng": [17, 26], "choos": 6, "chunk": [], "class": [1, 2, 3, 4, 5, 13, 16, 17, 20, 24], "classif": [1, 5, 13, 16, 17, 19, 20, 22], "classificationhead": [0, 1, 5], "classificationmetr": [0, 1, 4, 16, 17, 20, 21, 24], "cli": 22, "clim": [], "climat": [8, 12], "closer": 10, "cloud": 10, "cnn": [1, 5, 16, 17, 22], "cnn_aspp_build": [1, 5], "cnnpatchencod": [0, 1, 5], "code": 26, "collat": [2, 17], "collate_fn": [1, 3, 17], "collect": 16, "com": [15, 17], "combin": [8, 9], "common": [0, 1, 21, 22, 23], "commonli": [15, 19], "commun": 26, "compat": 5, "compil": 14, "complex": [1, 3, 22], "compos": [22, 26], "comprehens": [8, 17], "comput": [0, 1, 2, 4, 16, 21], "concret": 2, "conda": 18, "condit": [], "confid": 9, "config": [20, 22], "consid": 7, "consist": [1, 5, 8, 11, 12], "construct": [1, 2, 19, 22], "contain": [1, 2, 15, 19], "content": [0, 19], "context": 19, "contextu": 10, "continu": [10, 12, 19], "contourf": [], "contribut": 26, "conv_kernel": 5, "conveni": 22, "convent": 12, "coordin": [8, 9, 10, 11, 12, 13, 14, 15], "copernicu": [8, 19], "core": 12, "correl": [17, 22], "correspond": 9, "count": [5, 22], "counti": [2, 5, 14, 17, 22], "coupl": 22, "covari": [8, 11, 12, 19], "cover": [11, 21], "coverag": [8, 9, 10, 11, 12, 13, 14, 15], "cpu": [16, 24], "cr": [], "creat": [16, 22], "critic": 10, "crop": 14, "crossentropyloss": [16, 17, 20, 24], "csiszar": 9, "csv": [9, 14], "cu126": 18, "cube": 22, "cuda": [18, 20, 24], "current": 2, "custom": [1, 3, 16, 17, 24], "d": [10, 12], "d2m": 22, "da": [], "dai": [2, 5, 9, 17, 22], "daili": 19, "damag": 14, "danger": 8, "dask": [], "data": [1, 2, 3, 17, 19, 22, 24], "data_bundl": [16, 20], "data_var": [], "dataandtool": [], "dataarrai": [], "databas": [14, 19], "databundl": [0, 1, 2, 16, 17, 19, 22, 24], "datafram": [], "dataload": [1, 3], "dataset": [0, 1, 9, 11, 12, 13, 14, 15, 17, 22, 24], "datasplit": [0, 1, 2, 16, 17, 19, 22, 24], "date": [15, 19], "date_end": [], "date_start": [], "datetim": [], "ddp": [3, 16, 17, 20], "dedic": 26, "def": [16, 17, 19, 22, 24], "default": [1, 5, 16, 20, 22], "default_build": [1, 5, 22], "deleg": [1, 5], "demonstr": 19, "densiti": 11, "depend": [9, 10, 11, 13, 15], "deploi": 17, "depth": [1, 5, 22], "deriv": [9, 10, 11, 13, 14, 19], "describ": [1, 2, 19], "descript": [0, 1, 2, 9, 14, 16, 17, 19, 24], "descriptor": 11, "design": [17, 21], "detail": 24, "detect": [9, 10, 15, 19, 24], "determinist": 6, "develop": 8, "devic": [1, 3, 6, 17, 23, 24], "device_str": 6, "dewpoint": 8, "df": [], "diagnost": [8, 10, 12], "dice": 21, "dict": [1, 2, 3, 4, 5, 22], "differ": [], "differenti": 22, "dilat": 5, "dimens": [], "direct": 26, "directli": 21, "directori": [], "discov": 19, "discover": 22, "discoveri": 15, "displai": [], "distanc": [17, 22], "distribut": [0, 1, 8, 9, 10, 15, 16], "distributedconfig": [1, 3], "disturb": 11, "dnbr": 13, "document": [14, 15, 24, 26], "doi": [8, 9, 10, 11, 12, 13], "dong": 26, "download": 18, "downstream": [1, 2], "dp": 3, "driven": [16, 22], "driver": [12, 14, 19], "drop": [], "dropout": 5, "drought": 12, "ds_pre": [], "ds_sfc": [], "dtype": [1, 2], "e": [9, 11, 12, 13, 15, 16, 19, 22], "each": [2, 9, 15, 19], "earli": [9, 10, 19], "earthdata": [9, 12], "earthquak": 2, "easi": [1, 2, 17], "ecmwf": [8, 19], "ecolog": [11, 13], "ecologi": 13, "ecosystem": 19, "edu": 26, "eidenshink": [13, 19], "els": [], "emerg": 14, "enabl": [5, 20], "encod": [1, 5, 16, 17, 22], "end": [11, 14, 21], "end_dat": [], "energi": 12, "engag": 26, "engin": [0, 1, 16, 17, 22, 24], "environ": [9, 18, 24], "environment": [8, 10, 12, 14, 17], "eosdi": [], "equal": [], "era": 12, "era5": [5, 17, 19, 22], "estim": [8, 12], "et": [8, 10, 12, 19], "etc": 2, "eu": [], "european": 8, "evalu": [0, 1, 3, 13, 16, 17, 20, 22, 24], "event": [9, 13, 15, 19], "evolut": 10, "exampl": [16, 17, 18], "exist": [], "explicitli": 24, "explor": 19, "export": [22, 24], "extend": [1, 3, 21], "extens": [17, 22], "extent": [13, 19], "extern": 5, "extra": [0, 1, 2, 17, 22], "extract": 14, "extractor": 22, "extrem": [8, 12], "ey": [17, 22], "f": [], "factori": [1, 2], "fake": [17, 22], "fall": 22, "fals": [1, 3, 5, 6, 17, 22], "familiar": [1, 3], "fatal": 14, "featur": [1, 2, 5, 16, 17, 19, 22, 24], "feature_spec": [0, 1, 2, 16, 17, 19, 22, 24], "featurespec": [0, 1, 2, 16, 17, 19, 22, 24], "field": [8, 10, 11, 12], "fifth": 8, "file": [13, 19], "filenotfounderror": [], "find": 7, "fire": [9, 10, 11, 13, 15, 17, 19, 22], "fireecologi": 13, "firelab": [], "firm": [15, 19], "first": [16, 17, 18, 24], "fit": [0, 1, 3, 16, 17, 20, 22, 24], "flag": [6, 9], "float": [1, 3, 4, 5, 17, 22], "flood": [2, 8, 19], "florida": 26, "flux": [8, 12], "follow": 7, "forc": [8, 12], "forecast": 8, "forest": 11, "format": [8, 9, 10, 11, 12, 13, 14, 15], "forward": [0, 1, 5], "found": [], "framework": 17, "frequenc": [10, 14, 19], "frequent": [], "from": [9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 22, 24], "from_logit": 5, "frp": 9, "fsu": 26, "fuel": [9, 11, 13, 15, 19], "full": 21, "function": [2, 16, 17, 22, 24], "g": [9, 11, 12, 13, 15, 16, 19, 22], "gca": [], "gcn": 22, "gcn_hidden": 5, "gelaro": [12, 19], "gener": [5, 8, 10], "geodatabas": 13, "geograph": [9, 15], "geojson": [9, 15], "geolog": 13, "geometri": 15, "geopotenti": [8, 12], "geospati": [11, 15], "geostationari": [10, 19], "geotiff": [11, 13], "get": [16, 22, 24], "get_devic": [1, 6], "get_logg": [1, 6], "get_model_config": [1, 5], "get_split": [0, 1, 2], "gi": 15, "giglio": 9, "github": 17, "given": 22, "global": [8, 9, 12, 19], "gmao": [12, 19], "goe": [15, 19], "goesr": 19, "gov": [14, 19], "gpu": [16, 17, 20], "graph": 17, "graph_col": [1, 2, 17, 22], "graphtemporaldataset": [1, 2, 17, 22], "grib": 8, "grid": [3, 8, 9, 10, 11, 12, 14, 19, 20], "griffith": 10, "ground": [10, 15, 19], "growth": 10, "gru": [1, 5], "gsfc": [], "guid": 24, "gunshor": 10, "h": [5, 8], "h5netcdf": [], "handl": [20, 22], "hardwar": [0, 1, 20, 23], "hazard": [0, 1, 8, 9, 10, 11, 12, 14, 16, 17, 19, 24], "head": [0, 1, 16, 17, 22], "heat": 12, "height": [11, 12], "help": 24, "helper": [17, 20, 22, 23, 24], "hemispher": 10, "hersbach": [8, 19], "hidden": [16, 22], "hidden_dim": [1, 5, 16, 22], "high": [8, 10, 19], "highlight": 22, "histor": [8, 14, 15], "hold": 19, "home": [], "hotspot": [9, 15], "hourli": [8, 12, 19], "how": [16, 19], "howard": 13, "http": [8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19], "humid": 12, "hurrican": [2, 12], "i": [2, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 26], "id": [14, 19], "ident": 22, "identifi": 15, "ignit": [10, 11, 13, 15, 19], "imag": 10, "imageri": [10, 13, 19], "impact": [13, 14, 19], "implement": [2, 3, 17, 19, 24], "import": [16, 17, 19, 20, 21, 22, 24], "in_channel": [1, 5], "in_dim": [1, 5, 16, 17, 20, 22, 24], "incid": [15, 19], "includ": [8, 9, 10, 11, 12, 13, 14, 15], "index": [2, 16, 17, 18], "indic": [9, 10], "individu": 13, "infer": [0, 1, 20], "inform": [9, 14, 15], "infrar": 10, "initi": 9, "injuri": 14, "input": [0, 1, 2, 3, 5, 8, 12, 19, 22], "input_dim": [0, 1, 2, 5, 16, 17, 19, 22, 24], "ins": 22, "inspect_d": [], "int": [1, 2, 3, 6, 16, 22], "integr": [9, 10, 11, 13, 14, 15], "interag": [15, 19], "interfac": [1, 5, 17, 19, 21, 24], "intern": [11, 22], "iou": 21, "ipython": [], "isel": [], "iso": [14, 19], "item": [], "iter": [1, 3], "j": [9, 10, 12, 13], "jcli": 12, "journal": [8, 11, 12], "k": 13, "keep": [1, 2, 5, 22], "keyerror": [], "kind": [], "km": 10, "kml": 9, "kwarg": [1, 2, 5, 16, 22], "l": 9, "label": [1, 2, 9, 14, 15, 17, 19, 22], "label_spec": [0, 1, 2, 16, 17, 19, 22, 24], "labelspec": [0, 1, 2, 16, 17, 19, 22, 24], "labrai": 17, "land": [8, 9, 12, 14, 19], "landfir": 19, "landsat": [13, 19], "landscap": [11, 19], "landslid": 2, "larg": [3, 20], "latest": 10, "latitud": [8, 9, 10, 12], "layer": [8, 11, 13, 16, 19, 22], "learn": [8, 11, 12, 14, 17], "len": [], "let": [], "level": [8, 9, 12, 14, 15, 19], "librari": 17, "lightweight": [1, 3, 5, 19, 22], "like": [17, 22], "limit": 12, "line": 16, "linear": [16, 22], "list": [1, 3], "list_var": [], "liter": 3, "load": [0, 1, 2, 16, 17, 24], "load_dataset": [0, 1, 2, 19], "loader": 2, "local": 14, "locat": [9, 14, 15, 19], "log": [17, 23], "logger": 6, "logic": 3, "logit": [5, 17, 22], "long": [12, 13, 19], "longitud": [8, 9, 10, 12], "look": 10, "loop": [1, 3, 22], "loss": 5, "loss_fn": [1, 3, 16, 17, 20, 22, 24], "lower": [], "lr": [16, 17, 20, 22, 24], "m": [8, 9, 10, 11, 12, 13, 19], "machin": [8, 11, 12, 17], "mae": 21, "maintain": 15, "mainten": 26, "make": [1, 2], "mamba": 5, "mamba_lay": 5, "manag": [9, 11, 14, 15, 17, 23], "map": [11, 13], "mask": [1, 5], "match": 18, "matplotlib": [], "matrix": [17, 22], "max": [], "max_epoch": [1, 3, 16, 17, 20, 22, 24], "max_show": [], "max_var": [], "mccarti": 12, "mean": [], "medium": 8, "merra": 19, "merra2": 19, "merra2_sfc_": [], "merra_pres_": [], "metadata": [0, 1, 2, 5, 13, 14, 15, 19], "meteorolog": [8, 9, 10, 11, 12, 14, 15, 19], "meteorologi": [8, 12, 13, 19], "metric": [0, 1, 3, 13, 17, 20, 24], "metricbas": [0, 1, 4, 16, 21], "min": [], "minim": [1, 3, 22], "minut": 10, "miss": [], "mix": [17, 22], "mixed_precis": [1, 3, 16, 17, 20, 22, 24], "mlp": [1, 5, 16, 17, 20, 22, 24], "mlpbackbon": [0, 1, 5], "modap": [], "mode": 10, "model": [0, 1, 2, 3, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 24], "modern": [8, 12], "modi": [9, 19], "modul": [0, 16, 17, 23], "modular": [16, 17], "moistur": 12, "monitor": [9, 10, 13, 19], "monthli": 14, "more": [22, 24], "motion": 10, "mtb": 19, "multi": [1, 5, 12, 16, 17], "multipl": [9, 10, 11, 20], "multispectr": [10, 19], "must": [], "my_custom_build": 22, "my_hazard": [16, 19], "my_mlp": [16, 22], "my_model_build": 16, "myhazard": 16, "myhazarddataset": 19, "n": 5, "n_var": [], "name": [0, 1, 2, 5, 6, 13, 15, 16, 17, 19, 20, 22, 24], "namespac": 2, "narr": 14, "nasa": [9, 12, 19], "nation": [11, 13, 14, 15], "nationwid": [11, 19], "natur": [8, 12, 17], "nc": [], "ncdc": [14, 19], "ncei": [14, 19], "need": [3, 21, 22], "neighbor": 22, "netcdf": [8, 10, 12], "netcdf4": [], "new": 9, "next": [5, 17, 22], "nifc": 15, "nn": [16, 17, 20, 22, 24], "no_grad": [17, 22], "noaa": [10, 19], "noaa_flood": 19, "none": [1, 2, 3, 4, 5, 6, 17, 22], "normal": [1, 2, 16], "note": 18, "np": [], "num_class": [1, 4, 5], "num_counti": [2, 5, 17, 22], "num_devic": [1, 6], "num_featur": [2, 5, 17, 22], "num_lay": [1, 5], "num_target": [0, 1, 2, 16, 17, 19, 22, 24], "num_work": [1, 3], "numer": 12, "numpi": [], "o": [], "obj": [1, 3], "object": [1, 2, 3, 4, 19], "observ": [8, 9, 10, 11, 12], "occurr": [9, 14, 15, 19], "ocean": 14, "offic": [12, 14], "offici": 15, "often": 19, "oliva": 9, "one": 17, "ongo": 15, "onlinelibrari": [], "open": [], "open_dataset": [], "open_merra": [], "opendata": 15, "oper": [9, 10, 19], "optim": [1, 3, 16, 17, 20, 22, 24], "option": [1, 2, 5, 8, 16, 17, 20, 22], "org": [8, 9, 10, 11, 12, 13, 18], "other": 23, "otherwis": 20, "our": 26, "out": 17, "out_dim": [1, 5, 16, 17, 20, 22, 24], "outdir": 19, "output": [1, 5, 19, 22], "over": [3, 10, 21, 22], "overpass": 9, "overrid": 5, "overview": 19, "own": [16, 22], "p": [8, 9, 10], "packag": 0, "page": [14, 17, 19], "pair": [14, 19], "panda": [], "paramet": [5, 16, 17, 20, 22, 24], "particularli": [10, 14], "pass": [16, 21, 22], "past_dai": [2, 5, 17, 22], "patch": [1, 5, 16, 21, 22], "path": [1, 3], "pathlib": [], "pattern": [9, 15], "pattern_pr": [], "pattern_sfc": [], "pd": [], "per": [5, 9, 22], "perimet": [13, 15, 19], "physic": 12, "pick": [], "pip": 18, "pipelin": [8, 9, 11, 12, 15, 17], "pixel": 21, "placehold": [2, 3, 20], "plain": 22, "plan": [11, 26], "pleas": [7, 17, 24], "plt": [], "plu": [1, 2, 19, 22], "point": [9, 10, 14, 15], "polygon": [13, 15], "popul": 2, "portal": [9, 11, 13, 15], "post": [13, 19], "potenti": 9, "power": [9, 17], "pre": [], "precipit": [8, 12], "precis": 17, "pred": [1, 4, 20], "predict": [0, 1, 3, 8, 9, 11, 12, 13, 14, 16, 17, 19, 20, 21, 22], "prefer": [3, 6], "preprocess": [2, 16], "pressur": [8, 12, 19], "print": [17, 22, 24], "prithvi": [], "prob": [17, 22], "probabl": [5, 17, 22], "process": 10, "produc": [8, 11, 12, 13], "product": [9, 10, 11, 13, 15], "profil": 12, "program": [10, 11, 13, 19], "project": [10, 11, 13, 15], "properti": 14, "protocol": 2, "provid": [1, 2, 8, 9, 10, 11, 12, 14, 15, 16, 17, 19, 22], "publicli": [9, 11, 13, 14, 15], "pyhazard": [16, 17, 19, 20, 21, 22, 23, 24, 26], "pyhazards2025": 17, "pyhazards_devic": [6, 24], "pyplot": [], "python": [17, 18, 19, 24], "pytorch": [17, 18, 22], "qj": 8, "qualiti": [9, 26], "quarterli": 8, "quasi": 11, "quayl": 13, "quick": 17, "quickli": [19, 24], "r": [12, 19], "radi": 9, "radianc": 10, "radiat": 8, "rais": [], "randint": [16, 17, 19, 22, 24], "randn": [16, 17, 19, 22, 24], "random": 22, "rang": 8, "rapid": [9, 10], "raster": [1, 3, 5, 10, 11, 13, 17, 19, 20, 22], "rather": 15, "rdnbr": 13, "re": 22, "readi": [1, 2, 17], "real": [9, 10, 15, 19], "reanalysi": [8, 10, 12, 14, 19], "receiv": 22, "recommend": 18, "record": [9, 10, 14, 15, 19], "refer": 24, "refresh": 10, "regim": [11, 13, 19], "region": 14, "regist": [2, 16, 17], "register_dataset": [0, 1, 2, 16, 19], "register_model": [0, 1, 5, 16, 22], "registr": [22, 24], "registri": [0, 1, 16, 17, 19, 22], "regress": [1, 2, 5, 16, 17, 22], "regressionhead": [0, 1, 5], "regressionmetr": [0, 1, 4, 21], "regular": [8, 12], "relat": [8, 10, 14, 19], "releas": 11, "relu": [16, 22], "remot": [9, 11, 13], "replac": [1, 3, 17, 22], "report": [14, 15, 19], "repres": 15, "research": [12, 17, 26], "reset": [0, 1, 4, 16, 21], "reset_index": [], "resolut": [8, 9, 10, 11, 12, 13, 14, 15], "resourc": [9, 11], "respect": 6, "respons": 26, "result": [16, 17, 20, 24], "retrospect": 12, "return": [1, 2, 3, 4, 5, 6, 16, 17, 19, 22, 24], "reusabl": [2, 16, 22], "review": 26, "risk": [8, 11, 17, 19], "rmet": [], "rmse": 21, "rollin": 11, "root": [], "row": [], "royal": 8, "rse": 9, "run": 20, "runyang": [], "sampl": [2, 17, 22], "satellit": [9, 10, 12, 15], "save": 20, "save_checkpoint": [0, 1, 3], "scalar": [1, 5], "scale": [11, 13], "schmit": 10, "schroeder": [9, 19], "schwind": 13, "search": 17, "see": 19, "seed": [6, 17, 23], "seed_al": [1, 6], "segment": [1, 5, 16, 17, 22], "segmentationhead": [0, 1, 5], "segmentationmetr": [0, 1, 4, 21], "select": [20, 22], "select_strategi": [1, 3], "self": [16, 17, 19, 24], "sens": [9, 11, 13], "sensibl": 20, "sensor": 9, "sequenti": [16, 22], "seri": [1, 5, 10, 19, 22], "serv": 19, "servic": [8, 9, 11, 12, 15], "set": [5, 8, 12, 24], "set_adjac": [1, 5], "set_aspect": [], "set_devic": [1, 6, 24], "sever": [13, 14, 19], "sfc": [], "shape": [1, 2, 5, 17, 22], "shapefil": [9, 13, 15], "ship": 22, "short": [], "should": [1, 2], "show": 16, "shuffl": [1, 3], "sigmoid": [5, 17, 22], "signal": [1, 5], "simpl": [1, 2, 5, 16, 17], "simplifi": 19, "simul": 11, "singl": [1, 2, 8, 19, 20], "situat": [9, 10], "size": 15, "skin": 12, "skipna": [], "slide": [3, 20], "slidingwindowinfer": [1, 3], "slowli": 11, "smoke": [10, 19], "smooth": 5, "so": [16, 22], "societi": [8, 10], "softwar": 17, "soil": 12, "sort_valu": [], "sourc": [1, 2, 3, 4, 5, 6, 15], "space": 22, "spatial": [5, 8, 9, 10, 11, 12, 13, 14, 15, 22], "spatio": 5, "spatiotempor": [8, 9, 12], "spec": [1, 2, 17, 19], "specif": [1, 2, 9, 22], "spectral": [10, 13], "split": [0, 1, 2, 3, 16, 17, 19, 20, 21, 22, 24], "spread": 11, "ssm": 22, "ssr": 22, "stack": [2, 22], "stamp": 9, "standard": [5, 8, 13], "start": [14, 17], "start_dat": [], "state": [8, 11, 12, 13, 14, 15, 22, 26], "state_dim": 5, "static": [5, 11, 19], "statist": [], "statu": [15, 19], "std": [], "step": [], "stitch": 3, "store": [8, 22], "storm": [14, 19], "str": [1, 2, 3, 4, 5, 16, 22], "strateg": 26, "strategi": [1, 3, 20], "strftime": [], "structur": [8, 9, 10, 11, 12, 13, 14, 15, 19], "studi": [8, 12, 13, 14, 15, 19], "style": [2, 5, 12, 17, 22], "subclass": [1, 2, 16], "submodul": [0, 1], "subpackag": 0, "summarize_da": [], "supervis": [9, 14], "support": [11, 13, 16, 17, 19, 20, 26], "surfac": [8, 9, 10, 12], "survei": 13, "su\u00e1rez": 12, "switch": 22, "system": [8, 9, 10, 11, 12, 13, 14, 15], "t": 10, "t2m": 22, "tab": [], "tabl": [], "tabular": [1, 5, 14, 17, 19, 22], "target": [0, 1, 2, 3, 4, 5, 9, 14, 16, 19, 21, 22], "task": [1, 2, 5, 8, 16, 17, 20, 21, 22, 24], "task_typ": [0, 1, 2, 16, 17, 19, 22, 24], "technic": 26, "temperatur": [8, 10, 12], "tempor": [2, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19], "temporalencod": [0, 1, 5], "tensor": [1, 2, 3, 5, 9, 14, 17, 22], "term": [12, 13, 19], "test": [1, 2, 3, 16, 17, 19, 20, 24], "test_dai": [], "than": 15, "them": [2, 16, 22], "themat": 11, "thermal": [9, 10, 19], "thi": [1, 5, 14, 16, 22, 24], "through": [9, 10, 13, 15, 19], "throughout": [], "time": [1, 5, 9, 10, 12, 14, 15, 19, 22], "timestamp": 14, "titl": 17, "toi": 22, "too": [], "tool": 11, "topographi": 13, "torch": [16, 17, 18, 19, 20, 22, 24], "toyhazard": [17, 24], "tp": 22, "train": [1, 2, 3, 13, 17, 19, 20, 22, 24], "train_d": 17, "train_split": [1, 3], "trainer": [0, 1, 16, 17, 20, 21, 22, 24], "transform": [0, 1, 17], "treat": 15, "trend": [8, 12, 13], "true": [1, 2, 3, 5, 16, 17, 20, 22, 24], "truth": [10, 15, 19], "tupl": [], "tverski": 5, "tverskyloss": [1, 5], "two": [16, 22], "type": [1, 2, 3, 4, 5, 6, 11, 14, 22], "u": [11, 13, 14, 15, 19], "u10": 22, "under": 8, "unifi": [17, 19], "uniqu": 15, "unit": [11, 13, 14, 15], "univers": 26, "updat": [0, 1, 4, 9, 11, 14, 15, 16, 21], "url": [17, 18], "us": [5, 7, 16, 17, 18, 19, 20, 22, 24], "usag": [17, 22], "usda": [], "user": [16, 19], "usf": 19, "usg": 13, "util": [0, 1, 17, 19, 20, 24], "v10": 22, "val": [1, 2, 16, 17, 19, 22, 24], "val_d": 17, "val_split": [1, 3], "valid": [13, 15], "valu": [], "valueerror": [], "var": [], "vari": 11, "variabl": [19, 24], "vast": 8, "vector": 13, "veget": [11, 19], "version": [11, 12], "vertic": [8, 12], "via": [8, 11, 12, 14, 16, 17, 19, 20, 22], "view": 10, "viir": [9, 19], "visibl": 10, "visual": [], "w": [5, 9, 12], "we": 18, "weather": [8, 10, 12, 14], "western": 10, "wf08088": 11, "wfig": 19, "wheel": 18, "when": [9, 14, 19, 20], "where": [10, 14], "which": [10, 14], "whl": 18, "who": 26, "wide": [8, 9, 10, 11, 12, 13, 14, 15, 19], "wildfir": [2, 5, 8, 9, 10, 11, 12, 13, 15, 19], "wildfire_aspp_build": [1, 5], "wildfire_mamba": [17, 22], "wildfire_mamba_build": [1, 5], "wildfireaspp": [1, 5], "wildfirecnnaspp": [1, 5], "wildfiremamba": [1, 5], "wildland": [11, 15], "wilei": [], "wind": [8, 12], "window": [2, 3, 16, 17, 20], "window_fn": 3, "with_count_head": [5, 22], "work": [1, 3, 7, 22], "workflow": [12, 19], "wrap": [20, 22], "www": [14, 19], "wxc": 12, "x": [1, 2, 5, 16, 17, 19, 22, 24], "xarrai": [], "xc25": 26, "xml": [], "xr": [], "xueqi": [17, 26], "y": [2, 16, 17, 19, 22, 24], "year": [13, 17], "you": [7, 17, 22, 24], "your": [16, 17, 22], "yushun": 26, "yyyymmdd": [], "z": 13, "zhu": 13, "zone": 14}, "titles": ["pyhazards", "pyhazards package", "pyhazards.datasets package", "pyhazards.engine package", "pyhazards.metrics package", "pyhazards.models package", "pyhazards.utils package", "How to Cite", "ERA5", "FIRMS", "GOES-R", "LANDFIRE", "MERRA-2", "MTBS", "NOAA Flood Events", "WFIGS", "Implementation Guide", "Wildfire Mamba (spatio-temporal toy)", "Installation", "Datasets", "Engine", "Metrics", "Models", "Utils", "Quick Start", "References", "Core Team"], "titleterms": {"1": [], "2": 12, "3": [], "4": [], "5": [], "6": [], "academ": 25, "access": [8, 9, 10, 11, 12, 13, 14, 15], "backbon": 5, "base": [2, 22], "basic": 24, "build": 22, "builder": 5, "built": 22, "case": [8, 9, 10, 11, 12, 13, 14, 15], "characterist": [8, 9, 10, 11, 12, 13, 14, 15], "cite": [7, 17], "class": [19, 21], "classif": 24, "common": 6, "compon": 17, "config": [], "content": [1, 2, 3, 5, 6], "contributor": 26, "coord": [], "core": [17, 19, 20, 21, 22, 26], "custom": 22, "data": [8, 9, 10, 11, 12, 13, 14, 15], "dataset": [2, 16, 19], "date": [], "design": 22, "develop": 26, "devic": 20, "dim": [], "distribut": [3, 20], "engin": [3, 20], "era5": 8, "event": 14, "exampl": [19, 24], "filenam": [], "firm": 9, "flood": 14, "goe": 10, "gpu": 24, "guid": 16, "hardwar": 6, "hazard": 2, "head": 5, "helper": [], "how": [7, 17], "implement": 16, "import": [], "indic": 17, "infer": 3, "inspect": 19, "instal": 18, "landfir": 11, "lat": [], "lead": 26, "level": [], "load": [], "lon": [], "maintain": 26, "mamba": [17, 22], "map": [], "merra": 12, "metric": [4, 16, 21], "model": [5, 16, 22], "modul": [1, 2, 3, 5, 6, 20, 22], "mtb": 13, "next": 24, "noaa": 14, "note": 22, "overview": [8, 9, 10, 11, 12, 13, 14, 15], "packag": [1, 2, 3, 4, 5, 6], "path": [], "pattern": [], "plot": [], "princip": 26, "public": 25, "pyhazard": [0, 1, 2, 3, 4, 5, 6, 18], "quick": 24, "r": 10, "refer": [8, 9, 10, 11, 12, 13, 14, 15, 25], "regist": 22, "registri": [2, 5], "requir": 18, "setup": [], "skeleton": 19, "spatio": [17, 22], "start": 24, "stat": [], "step": 24, "submodul": [2, 3, 5, 6, 23], "subpackag": 1, "summari": [19, 20, 21, 22, 23], "support": 24, "tabl": 17, "tabular": 24, "team": 26, "tempor": [17, 22], "toi": [17, 24], "train": 16, "trainer": 3, "transform": [2, 16], "typic": [8, 9, 10, 11, 12, 13, 14, 15, 20], "us": [8, 9, 10, 11, 12, 13, 14, 15], "usag": [20, 21, 24], "util": [6, 23], "variabl": [8, 9, 10, 11, 12, 13, 14, 15], "wfig": 15, "wildfir": [17, 22]}}) \ No newline at end of file