From 45b6beac98d4b376cf32c3ebbe472f91a303e96a Mon Sep 17 00:00:00 2001 From: Richard Dern Date: Mon, 17 Nov 2025 22:30:31 +0100 Subject: [PATCH] =?UTF-8?q?Visualisations=20saisonni=C3=A8res=20et=20cumul?= =?UTF-8?q?=20de=20pluie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/08 - Enrichissement du jeu de données.md | 3 +- figures/seasonal/rainfall_by_season.png | Bin 0 -> 54465 bytes figures/seasonal/seasonal_boxplots.png | Bin 0 -> 92832 bytes meteo/analysis.py | 40 +++++ meteo/plots.py | 142 ++++++++++++++++++ meteo/season.py | 84 +++++++++++ scripts/make_minutely_dataset.py | 6 + scripts/plot_seasonal_overview.py | 66 ++++++++ 8 files changed, 340 insertions(+), 1 deletion(-) create mode 100644 figures/seasonal/rainfall_by_season.png create mode 100644 figures/seasonal/seasonal_boxplots.png create mode 100644 meteo/season.py create mode 100644 scripts/plot_seasonal_overview.py diff --git a/docs/08 - Enrichissement du jeu de données.md b/docs/08 - Enrichissement du jeu de données.md index 48f0bcd..4ac0043 100644 --- a/docs/08 - Enrichissement du jeu de données.md +++ b/docs/08 - Enrichissement du jeu de données.md @@ -1,3 +1,4 @@ # Enrichissement du jeu de données -- Élévation du soleil +- Élévation du soleil (sun_elevation) +- Saison météorologique (season) diff --git a/figures/seasonal/rainfall_by_season.png b/figures/seasonal/rainfall_by_season.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5c0ac0e4994fb3ea2557b493726bf2508ee968 GIT binary patch literal 54465 zcmeAS@N?(olHy`uVBq!ia0y~yV0B|)V2a>iV_;xdXJx~}z`$Tt;u=vBoS#-wo>-L1 z;G0-dkdt4MlbNJYmReMtnV)B@XK0{juA`7qQc_TCrLUh0SD}|*l&M`6Jt5$+}lj?f8lOUhj)+*?{M&-TfU@6t>6Byhna!Ff*BO93g;fAor#`hlBwc9&*sv$+~}Fc>3uG4ZbjcFB*fQ# zoqA@j^>vnQ_CFplpOax=V0hDYK!bsyBmCQ&n`_N^`{r4f`-$mBsrcLf-LfU?s#jBU zb8Z=1@v}3UN4v$%zk5V(%ekqf?A9|O?d+_R-|yGwzkm6_@X6`v=l}dkJvpiMGdlyr z941pYMh1sHdNDf^{#q$1Iq}KaWJo<*6S2{0nqI8d`#qogYQEh}H?!=Pul+J{r{dF< zfs5N(T3T*YOI0x0|NSEToS%WgLevOk$f5eeg3_s%mU^E))XKfoW1>>po89mCP2RA< z;G7Zz14DyIE6DX8CTmS^E%g@v{Ppea?N9I5|M%VWO!uQ{zL&@6rIXeDPhD8(?8{&t zyQ^f9S#FeO;Gz~DNh24(`F6VgPR4TeKOVAY-rKWNQ}@Bsr>WDvUSAV=`N|oa!bdKX z_T5`?Jp04X)B5|Tbct%ux;|Am+U)Y(+V}VNUi;hJ)Rb~&hGEb$AIZyaZHu3sS@xvS z%-ZWsarBzl-PfX$zZJgt{rGXez1i~<=g*&?vw2VD=TpY#ZIox5=hr>?=sitmqTgIA z&v$orp4~XpD0NcR*H zbGq-hZTqg5zN@M$dU{HAs&=^9tD?H`}_Os>vvZKDr?5<*f6uajYsm#Z?Db! z*T?LfwBWPYUb(H65$>95}2+M2!WU_cNzFR$sr2;P4cRaLVVTz-0bdg{R@*0h|nvrL0FBsdCRxV^V} zJ15V}KP7gzRJ@t}rBp6UP29F6{k&Y}B`4>Zlq&4pK7dtd+it-0~`jmgJP{r~rU ze|z8F>hJ5myt;ZiMxUGa!QDNT!Dcx(67qI!`Q2~-&*0#h;|m=x9_y8!eY~i=+??^b zw0Yi%Q&Y9izTNx%UbiX7k7u*xilxqxI?$!N#D*id{N<&_ZiN>mf z4!Lei-v{!pdsXX{>98m9a9h#eU!|{iUaicy@a@mf&zrKZ>uuIeTd=kC^|hi`S2RCw z-RJ+M>P21E+Aqs~zpnOTp2fNJ;OS|)(X&2DiT$c#VrD*D{o%vI!_T5#pHK5yzwg&7 z&L7&f=U)|8@rJFB%gw9Odwzbt{>#hD`#=BOI_0=@{+`6zxV`Is9hcf$_WIgdpL}~; zZqSMV#m{@wK&n2c`PKjXxqRm2zU%^j;}?3dyHxV`ew}t>65I1Hb20_CBp>hFlzg18 z*!D|I+@6ZSd$r$Vh1XoF%zU7|OgygQAdBl))2s=B%!{fnGb~|iDUE5qSo`~1?V``C zo`1ZZzu)wE$ocvE%&p4be0FZuc^RJiB*clUld+cVeq zR)3%N|KD%@bI<3Q=g+H@eSEBU^S&~7^W25kOF=@N!&yP>3sQBT0{M!2X z{|g_N_-ub^SJ?Uf$GyGPvvaHDr`pwDT;zIo+xvaL_0Ap7yS;7g&GZu!6gzi40~NQH z=T4v2F1o%hmecN?XZ-r76?=1UY@17>+?SX8n?L^f`FVXt^!C}`T6PMvFq#O^N(## zJuO!G>&wfCe%s<_K1=%h`)}rde|L9cr{LE;uYPuV-uM6d>ZRVC{XKqVMn#Q2s{`K|s(-W25eR7@Fev}YDs}VXYbf(1RWxmGWf8B`c zzIbg5+tPbUr~h3pV)Qcpq{F*$(WVrItZ(z?DMw%6ITBz0_i9aU?cADp>2;4F_X&)U+J|9-t*Z}I)& znaASsHGy)|rxk8Ud8Q_+tGeL*O82w2>vp~{`qy%aC-`hZXyMfdvK9pkRz6&<^M3h^ zFMt2v%3gnTmv8ogRkgprsaC`>FesERJO-|?YkbSAzP-`R-~V^p-SZEQ^-7=Jt9S6~ zGvmUICa*VMiSXgLdtHd-TGh;N3%utfFZRA@DzWDD{MBJ=rC!_JQaN=fsNZPk+dDfi z-}<7q@N3Lho9Jg*JLgF$^lB@l?YuWFS-ySg%z&I%*VblFE6NU5)MXCXmUA=Xw&{%D zcgye3WLPw9>V-?JQRXIE-nmzAy!d*lYGc25c5B`Lzu(hN?whB-wtjX0N>gX~)Q^vj ze)@dge)g`-QWLIyVlg~w{(Z)leJjj1T-wB}8@0uNF`swCvG1E#Jij6|M=xwm#GLo} zf0cWt1#NgEKY8iNs2rX1`J4xs7#NPYB#1CD9MR57ID5%3YO|W@?DLa0rsq#Pu=HAF z&#X!b@w4-MR;-9DI2r2vCGb(U&EkW*e|+1RvweS?Kkj*>6wH*lK7RY^9{66m?m_``fyu(^g%p>h<21bMuL3&99fs zi@v-F40it9t-sH}oL41mMZm$7HCboR%~y_hhoa&$PFjQcs^bJL&4`vujNPq&{yxROI(~H`}!19lQQN{*#kYAkDy_V5YN_ zoq?gBhbJm;*39KM8*U{W4QyKEC9Sve)z#Ir*X(V%Gf62~>|;E?_XGpQ>&~0aljZ)O zHNUU&;>L`**C$^-*vy{#;=)3;6DxZ6Y^j{gCS)po{ZsKGM=#O)zu$Q7Uh?`=X|B(f z#KUZtbJmo-y`?6w!hXJd&4)%2-6)eNhAWdAS113vb8C)=w|2&2jk7DZoVj~RMbpq; z`PJ9!@#ehew`2zW{`S`QLHK6BueUO;EuW_y&H9Xyfk6n|a@-*4%{D!CW@*jo#lp(& zeKP)AmRKqF|F!6!AG6+kX-xm|y=o^bZ5Lk>Vkx}Xu&^wrf9Bnn@89P$ZCCZ4Hs$8# z^y9l!>&7Yzg9X$O@HgCe)lJ%$mnJV1fo_{|>a<^5y_u4z(@7LeIvZOas{)gwY zb>7!aGh_q=66S?xS4U<2dsTVaVSDS-Id)km_oe=xoOT10SlU3X!VQwKn^vEjV=4UH zE_!>O@0Z6}+vcdQ5DwQpbbP9Qyxr@f`>x$$mPcOuYMnIQzvAGbBl9+|xE`FHsJ6WH z^|hljC0EXzF-`SG=&F#7ebMJae|~!UILB&R(NnLD?6LpWZ*_Zqc6K^%g?sLzl$q5r zyhpb9Wd-e%H+5KD8lZbUSXwVK;@nC$JAQdPnb#ks8m+84Z9KP|Qvi8c?zV36c zkIUEBWW-EAS^wi<`?J?UOTApP_bl1!GPP_~zwU}%B`<>_cbBbIQRlr8^=kI9W4CYL z{#APA!P?Y!w=A^G7Q6RPyS+VMy~=J@thD^;nnmZ9dQMhb)|Oop`*Q2fsY~zWY|pzZ zWUJ4>(BQ5J>fPil%f7x&&0>-F6w?cdk!q_?*O@w8UFgjI@$={EHL4Hq*Zp3*^E%H? zP*ZnR=;}pRO>FA^?6~P}d|u6e-kcT3>)&p@?sL|Sm%;Yym0-09iLII!HYOkUi9KHU z_}I-SU)82YZOw|5_R1_TKD+H|!hE*7COejw+CSz#aMYc-d)Jm1HLZBFyO%xar; z;q9lVr;Wy|0P7uI;q?N<#hJTt@aVjrkiu=D@(`SoY+=s3pmUdU4L&n}5#sypd=-~CtJ zm7SRj?6Qg#WB0A&ouWjo#Q`MUMxr>1CLYuJ<)_1f}Un_s_i`C83Yr@xtMtU3Kt z_sg9ZGGEgJGlN&GI2h#Z5b}E7zAu-&uciLK<&%A=g)=R3U)8Ud%a;~CJ=Hl+oPpth zvMVSpf4EouK2vMXPTO}IzrMcSU;6vRMCG;pYq$4E8oTYDIyg9_{QB~8ZU5Vc4+Uph7C-aQ*I%D;-ZJgX443`ul8^VfPSXlK^-E&i zx^)xl>gpzDUS77fk5|%2#WQ|=-%B&w<%K8b+wZ@b{_D%j!gtA)?@Y6=*=)(ZxheIT zP2{(W*C(s_N_{T9xX4vG{p>8!=hcq$gO8W;ZL}8PAlx}BZf#dDsIkM+u1 znORs^Y^wkN@8UP_>3Xp#%Y0^@dF&!)BKKI&6`B`jmb5<-Zs6Ffc6POX*=^V3>Vrnf@%> zh{bNalP@kSWzh~-3Zch$@(QS*b16}DRMNOO5*lyY|0=BKZHxz5fqHU4T6y*)2C zZt^+({Cj&oJ)50Bi|=`$w5IAbGmT3;ZfBR|+}g4-<>aKJDYvrLgn7$nEH646Gsign zob&Ol-k`HNceZ3s{_^s&JD0d#&a-8u23rOD{syZlK|L*lod<;&NxI|>$7 z?tl4PEB)M@XL~Y^ZPELC-6u@fIpL*2{=)a6w)1CoMlNt*{Cw|n@|T#bYs>bj%OAfU zU!Uuxwk7B0rIbytzFu9EaaQ8mtmU&L|NMTx|9I5oub}!E`Q|Ykz%N zW^-&y=4GGQpuchq3<{PzGD=J$DR|4cQcigUKsxS!;5AW>h5z*Jz_Y(&j*uc!q$0sH(F5cPE zvEh5j2ac4UWeidx5ZfG1Iq0aTDkPh*Zb<36x4ZoOy@1nQWUtR>hyt8w2%Bd-y zmzMczm%h3((KP$ojUQ7P9saBUwS*ZM9JIcjRG)w1Sg-U_@9BC$>tZZ-7Cdb7nPU;C z6}n0#dRxv!qtsI~{?`5b`MkaF?#ATy9(nt?S!TIevew1VdakUA48C*c&J$2;;NZ2F zmzU434O<(f`t{Y-%`aawH|*Hqa!F15sL0!;KZQWSqOdae))voIAuE+Y*>j_^d!NV6 zO{u=up6l=bBlLXZ-{0S-XI@@*^5x~_s{ZqA(sC{=a5PFiC316r{eBVsxH~ch;HB>~GpF{7xMVs#0Ihc~FIwdBc@DCI$uu zpo(WOVxN z;!96IOPl2w{8ztv-(L6Muh;s;>-)JG`Wn`K@skj_dP`4ALREuHLF=#2h4XBGdoG*@ z4G1cj{r~rS{Yv3gyi=;azmt7!w>|IfBvtQe9;c`29=(3u{MI%`X0{nVmzK}3iz<76 zFL&BGep#z4CRst{@9#Z5!d$?S(qkpbTa__c?JV2rdA7S>{(Jt)>yNa@TO}nW6$66{ zI_;OvbNpR%Vw&#ky~{!Am3^`7%jm6Hs*=WOBK7tEEyAVF&b7Y&Cr+|ha&OkfMXfb| zzg`EIOy|C>@|dV(RQ4u9(lDuIiT8B9oAK-nDlCnG>WjTar?9zxl{aDt_{A=CI{i@n z|G(*W+8m%lRAJR@^ZZ#0mZep{3i=VVv*_sVp1At`Id^xJuDQMS;-%vAw(7sXy){;y zyT$SHm6gF~w+%MzO&8J zZvK9Bw0mjD%Ak$&=4{Xoe{v*!zUOx5_SC$Ki;4;lIPCoNwmi*d+kM+o%Y9|rub;U* zRXe4$x_2VfByJ{m2b_u`egb1x}smNU5>2~?v#3x@YAN@hRffa3+H*P zt}-()IJ`ceZF}MDZ1dAitlT~Z#>+aYzdw0&ga4_ULxV@ej4PMycii8n+&J58=Iy7Q z!bi6!yPy2`E&9=`r(Z98oNbmnsq*u)nZFjV$zu^p`|{%Avvi|{TaFyvka$?Aw(9x0 zx!HEiTUes^R()0Ro~E-Y>#A08a>V9+$9tupZ<*c$YF{!iFs!`s;o;%bhlg6#lE2*A zn*Hgt{(hI+_x2X2TYmn-EwrV!`VPO4n40;sGZQBWtE+svTmIx_`uwTea&LR}$yh#_ zU;l4n{{FvVr>1JF%h&x#{Ip-;faeQ&%`eZFWnEqMENp=TBPSnUU-5sZR<4C^sh zU2^o()6v!;#mBH?yk)mLu#g5Hvk9s(Im z(7>P>y=_g&t1Bn(T?UnoGS}wWR-gI1$hG^7?y}{4vVHa%QmyZv+m_CHa%N_*n%|s^ zCcT}-&!>gQRl44*`!DjdHI5{{5>Dt7Ja*J@Al%XlA<;XXiOJ8(w=?&oRrAc zFYA7Ox$J*-2Aex)50eAe!roRBiB+*Tw&&hXd;bztX7TCn`_-H{UH|mNwqBvH73I@) z1pjZ%K4R-VO=X5`!;>v3Cxwdd?<{`azHMvPRj*4+Jd;_K4X5AvpgA{+ zE=zUq+qW-hdtU74=@V!0X1MiArGA@jn0!pwzC6e-EUWy}6VGBj;ZNbK8kyNo?JR!o zqdRR+<>y-|bqov)4aU0+%hyG!&DYqq=3aeXkuRr%(E4p5Q?)`T&9JexUFtK_NKIo^ z@69=a-Y+L+Wn4^HT58-UYn^7b4m2vfY{7>$k(=Mx+Nub?on>D9%%|9QYquQ8*yG|` za(^ewZTEe$RNV4w1M}|E*VFFosk~gXHuin;;>XryZzcpU_nTR@{9N0C46Q5q#~%MZ zoR%H@JH+?W@$Q*hcP1U>%DlO0>6v-9(N$kwBzAGCo9dSQIb(c<6x>;YA{RHTdcS__eD_k+ZCJ)3=LD}YcL+a@H1_PNJYMbBeS_vd{`q|V_GS0tca?a?)qHflTpHAE^g8I<4X&N` ztG;E`6!)CIwl*46uc}#xzh02BtN#DLzfZrsyj&=^Ip?NPu#Z*twKdP?h-!s+#MOQc z-C6ZDYtcMV0ag%}{%PulmxT?RFZ`dLm6nlX?mkg3*6Q_jM@Pqv?-u*^PCdpjN3bz) zN!GNG0^Y8hm+tN^Uz&M&*)q=wVg~C17q^{Eu&w{Mhez7%Oi4(8M~BCU$AAC*ey?`I zI`@{zNTd)xcjnVG4tuB;4N z>Ln^{()aSL`TZ$kx=}M6@;^R0x-|Fpwny*Y>BZOmTpF@IE>Orp2z> zo?ptg_KUrHrB*+E{d^x|rU@aSXpuBdGl`#XTWxl&R_F1r`do0zn8x;9Og}DX-?mc5 zhu7n(eXp&FOn#LhXI~dHO+Q|bTU>9-V)y=8yO#g@Iz=;B=u3oqpUlL#y;U=p1>Gun zaiEcTS>CHlOTB#yQ+PwN%(8-JSQIXL`DI_?VK(8OtIsd-mA<~VcJi;UuV+74a?X8z z{po4CpUzpo_b4dXa5BnQ@0ZQ`J)gQxirn3nJNswdxjB~0HqT?r-TLfB@p)VEw-R%I ztIw}VdbX~9?PawXtFjjt6eTT-mSmnYO*t_kWwtQ`1H%NNl$|wUR=?^MIb%AHCj@?~myG7T;B;?!s`}tulV%lLo;Apmza=7v!_Wr)w)X&e( zs=YQ$d!S?avgq^s{r}@WJv*EIYIf8=t7K2#>pJefJFlmH<6J1&_x;^nm%o?G zovr77{mhjmr#h}4zrOT&;PchqFLmo(XBi|mRa8{Ca5KD?F)5f8WB2bza|+~fp5(y_V@F={hH3VHh*QKEpMNwUd)ZO&lhIR{uM4Bn)1W~_+-LTmW15f=417vUNKJb`#b*5?ltSL zM}C`@pD^v@akt~&!!k7f`R`YI_->xrJd=jwSNGS~Z(b4?-kw!y#r=2x=MF*TGuO}E zc`{?&7Z1~_@9%Qo#m2^-<*&WDDHYUc;Aj0j>GsLV>Sy<+^}f=zyS^^gxVPs~a;8jb z_k+Bg;*BENecAJN+3uVrnd!ECY2B){n|4|ES3Hm3+$MkZL1#}O0|UbnwRH~@FID{P z56XMrEE=ykFEgcZHe=DA7k`g!m4011X;bxe&wH2uccq_*<^1@?tasX$Wg4fSH!j(l za#Bdrw(3js{Nob@ir3eA>40WUvac;yQ_Vat*j@ks@AW&`^}@Z)8h69{H-7m1+4!&5 zuCljUbFIs#vGGdHm?t}{rS$PJ-pdOjj?WQo3|t~rSnA-<)tNaZTm^w4cBD*k?fq_9`nMrxR_wLGg z?|a7InKfU9wVg3q|Jh*YB;EO?KF#x^v$vX>Go19UPRq#LF=J8ROFOY!kCnImU2LYJ z7r5w%^KI+WS1PZsub*z1d~C)(S*Zry&{b1-vX`zNbS- zY2FmI{%fG*g240p2jk6@P+H#zNpV zXbz5HrDx;g-%F04mv`ar`WL)w+nJZ&*c<~H{Q3`QOmO)6`nvgd&@B1MtSuLw`Br&r ztUY>jdwzWI>rK(y^NKz`I@-s)7AqzunHC-E;Bzyy|l%+qyhA2W^e> zy5bfV@arJ23G|nRskUJFE5Y-@j$o+@|Zrp1JfjeSU3N8;|6q6`w8Y{#0aMTGGi` zmvvbsHthc1>hjF%>*l_kwr>0U`hS*={h@0j3|||4N}pGG?8>Dp4cVus>H7Biyj77m z)tE75{o}%y+3&8do*uKm?ygPw?QOZf&sLiqx#ah;bLHEW&+{%V@mzLdOWNaC$r%TN z&$o&#xu*L0@2{`jVlvl?|6YsEKl$(P@1;dgPd!`Ky6kIA$f^*}P3h9rCz5oB; z_lU^V`g^}js{9)z^6T5%+sk|!?Uto=e|vH9aLxMlhO0o+*Sktz`v`<)&pJ2X{=UxR z>pHg>nb}SpYUQ5%;VP))?o&K_*ZNZCIg6DWs<)QD39GW7dG)cZWz?Ro*yn5v+nx#i z+z}d?XuQiO>hA7x{d<2)GCwSIZa;JVXt%ikCB26XbC~A~GcYW;-}81(ONiFxt)DMF z{H}lG{jcVtxc^VJbUtrA8Dtf|`yB6#Tg$Unbw57v?}ZmXs72i{`E+^F{w=&SG%}l- z*CexhU!7nd{bjlVzyI!YybNzzp`8@JHGkHHe!9{%|EQ_aA**lUcl|ak4U2x&$>ebr z+;3!Hc+e7~bZF_rQ!|4yuY0|YSh0KgORM@FE~X%3WEdMkB`5>KoSy4@9WwVOOcJr# zc;BkbI#zAw{mK zX?(LZkKus_%tn<@^Q;tdnfHmkuWr1y(OGrX$xC79y=Syf2L)Llcy57#fx&OVn|Y>} zDt`Ju5);gmy&bZ9Z_cXAaYv3`1zQQ8t^zGkIisrN^lJS))zGp(nX=ra-zTK%&Y$kQ zH0uV)$`ep4CpcBI-8c1}#wB|{U3T~5$$`(xrL@G0M7O=Z!*JlDAY{}^f%R0y<4GkS z{s(P}u}qiUJ;QcCONo?PxzP`h^Ct*F2e%YjPZs}*&y+TBymW7GvaEH?nl7E(zl&O` zE~RiX2sJ?iUejY{?dzo{H@&<#ODA{bO}Brmu6L?=Gfd!MaRasG89Wqyr@dPH*LPK3 zbe1f4@n=x%O>Iuix?P&bFhL0Fq5}sjS?*5_>)tn2$-O-KIMd~{2|wqyo%ngj^{tgT zgU3qH@-Ky*J9q4u5nYpZW=7(-mzS6Gi>q+HsJ!xdXW84R+4KEt{nmj8_dMIAr!W1j zpS+0GRX_EtwsCd8k_H!pe?t!>f@MP1ZEj!schAR3W-qptzR8%_wQ0#)2F|ZO$=7!> zI(WG!i1h2eIVHOD;d_0@+uOWd5*FV6{k`(#yr-_Gw`JzYFq!fYyJRS`?NECU0BW_U`=l}P*Wtem(M zS+4TZ$xn5Eow84TeXBH!;epQ&VPPRz5!=syxQiZtzc0_#71i2$ve&ZsiO>J%XaAi` zxVb6y(yCDHle0`$S5#JdE_7;ray2}D>gw?Ic3bkB*?4_=Pfu3&x7*@-ykzz};j1eG z7oXX2%?i|5-I8}V3N#dT?Ax20$#?T#Ut4==skivana0a2s;a!^*;Fp6|NpP(*O!;= z^R$hOg3`{-(F6?@zPY*C8?;s||K6TUI|`F$nq&qw#qU11(4mn@NJvQO{oe2MMD${A z*i4((JW<*G)LxgES^z_V){r~?-zc#G;_toabYwq9wzdv4_)uZ-( ztIwOt>wnYF&Qk4_GM(fz(`e>j?`b-j=bQrqE;#?bzq8og?$--t&G>zLPImcD*PFXj z?bp5^pU>MT*PdlyVDPZCaeC*uyE5LLyNj)I`E<*>_f#~v7(9CpXb8C)yEbpj_rI`j z*ZrgX_Ff;;e?Yq-panTgD?UEDv@JKfu)KV_{{BBftHRgoiR;JtYF~g-gAr8Z{oxzP|3{i;IhW z1o-<^f48ajciGB- zg-u&>ZU!+iGe7beUg=YJcbBjI{krlR!|Uk$y{iBJexJ{I>ebd06P4Tld^|3% zc7O}iJ=XracJ-$-`pHXPOq_ddqjqG`Y&GxapTxF<3JuAPQ{*_s%6@+O`}A{XLGnGD zlfO=#*4*}N1=~HlpHGA}gO~NNu&{VcRB~O@=ydkQ?+4BNDJLcM&xw|`@OH3!@ zZoIL!dH%gQD=IVHRK`Ju0B0I-FMpKRiUfT6!Xejg-n{o#`FLC{{J%@=CdUx zZ({M$Well~KYe80_w)Au@9Z(-EqJw;&0=cWb3Pf13o+5W6YBnaJbvxK&NSZewNY1V z*4|ty1{x4mcJH(Kc88IHAtB!KysWA3v>K-TsN;R&diveB`KAcy=Y#5qIiiw_S9Y*9 z9Lm32_2%~0nfs6Jt+CTfOnkOOy)tfYdC-N_^M!X!R!Gd=n0$OzHE&cTQ|7eeml9^B z{rLI&_vxwH;geGOQcq8tdOg1W@4`afp3H3zw%@Ol*40?`>+9=uBYD$=ZPnlNvM1Ue!1*_^!V}PEXlf#flHqe~dh39*}()HAsXwRUud{}sFmBd_EMLqw%4|tn?8R7 z=g!uXuYcGozKGRS{_K0iC_8|%XxGta*MUdk3V)3a=`+wAv+UO6}R6_qVp5W=WiFl9`k>@z|5MZ*!UEf@Y{@F4*-YzIl68l%sL? z)+LR4m#-IrM#eoBDk(4d*2b`MXQty8HE-=%Unl;3`ucWh7Q+N70SVVt3(wX*x-DjG zkd?V(vE#}a2T#qIq?K$EzprMa-8Qp38&ibTO62VS{aDPI_UcpN-ptrbppgK>wVP*3 zNd39;^x?*f$M@F#-LvfCiPTK$P*J+)dR};GQ=3iwqy44tE zZRx($J9F!__?UYYk9o7_?w?_@VA<)C(v|D4v0d?5cd(h=dwtyANq@E;EYmqXz0~sa zVj~XIA5&)>@9{qK^kQKD#qVqO)jtm2Rg(Goder}5<3w@&xE!mE+1tO(ulsfK&X>ZH zn>&;{U*E|H2$L4dj19=0wdA_fX8Zp?pUVel2XA(eeHo?pWlwb9_4BG{!+QO%thw;; zaJ%>Qb+M`c{`^#1u?sY)V({

h)*#Uh`ySU}#A8F8@7i%lH3YMKOE+A1^93E%uvv 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%0DZuQN7<}Fb9 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 W&zqN@6W)h{obT!C=d#Wzp$Py@9J??8 literal 0 HcmV?d00001 diff --git a/figures/seasonal/seasonal_boxplots.png b/figures/seasonal/seasonal_boxplots.png new file mode 100644 index 0000000000000000000000000000000000000000..94624d832e5e8d83fb648b9112839682b9a16598 GIT binary patch literal 92832 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 literal 0 HcmV?d00001 diff --git a/meteo/analysis.py b/meteo/analysis.py index d1debe3..01fdc38 100644 --- a/meteo/analysis.py +++ b/meteo/analysis.py @@ -8,6 +8,7 @@ import numpy as np import pandas as pd from .variables import Variable +from .season import SEASON_LABELS def compute_correlation_matrix( @@ -559,3 +560,42 @@ def compute_binned_statistics( quantile_low_level=q_low, quantile_high_level=q_high, ) + + +def compute_rainfall_by_season( + df: pd.DataFrame, + *, + rate_column: str = "rain_rate", + season_column: str = "season", +) -> pd.DataFrame: + """ + Calcule la pluie totale par saison (mm) ainsi que le nombre d'heures pluvieuses. + """ + _ensure_datetime_index(df) + + for col in (rate_column, season_column): + if col not in df.columns: + raise KeyError(f"Colonne absente : {col}") + + data = df[[rate_column, season_column]].copy() + data[rate_column] = data[rate_column].fillna(0.0) + data = data.dropna(subset=[season_column]) + if data.empty: + return pd.DataFrame(columns=["total_rain_mm", "rainy_hours"]).astype(float) + + time_step = _infer_time_step(data.index) + diffs = data.index.to_series().diff().fillna(time_step) + hours = diffs.dt.total_seconds() / 3600.0 + + rainfall_mm = data[rate_column].to_numpy(dtype=float) * hours.to_numpy(dtype=float) + data["rainfall_mm"] = rainfall_mm + data["rainy_hours"] = (rainfall_mm > 0).astype(float) * hours.to_numpy(dtype=float) + + agg = data.groupby(season_column).agg( + total_rain_mm=("rainfall_mm", "sum"), + rainy_hours=("rainy_hours", "sum"), + ) + + order = [season for season in SEASON_LABELS if season in agg.index] + agg = agg.loc[order] + return agg diff --git a/meteo/plots.py b/meteo/plots.py index 4b103b2..8909304 100644 --- a/meteo/plots.py +++ b/meteo/plots.py @@ -12,6 +12,7 @@ import numpy as np import pandas as pd from .analysis import DiurnalCycleStats, BinnedStatistics +from .season import SEASON_LABELS from .variables import Variable @@ -596,6 +597,81 @@ def plot_diurnal_cycle( return output_path.resolve() +def plot_seasonal_boxplots( + df: pd.DataFrame, + variables: Sequence[Variable], + output_path: str | Path, + *, + season_column: str = "season", + season_order: Sequence[str] | None = None, + title: str | None = None, +) -> Path: + """ + Trace des boxplots par saison pour une sélection de variables. + """ + output_path = Path(output_path) + output_path.parent.mkdir(parents=True, exist_ok=True) + + if season_column not in df.columns: + raise KeyError(f"Colonne saison absente : {season_column}") + + available = df[season_column].dropna().unique() + if season_order is None: + season_order = [season for season in SEASON_LABELS if season in available] + else: + season_order = [season for season in season_order if season in available] + + if not season_order: + fig, ax = plt.subplots() + ax.text(0.5, 0.5, "Aucune donnée saisonnière disponible.", ha="center", va="center") + ax.set_axis_off() + fig.savefig(output_path, dpi=150, bbox_inches="tight") + plt.close(fig) + return output_path.resolve() + + n_vars = len(variables) + fig, axes = plt.subplots(n_vars, 1, figsize=(10, 3 * n_vars), sharex=True) + if n_vars == 1: + axes = [axes] + + colors = plt.get_cmap("Set3")(np.linspace(0.2, 0.8, len(season_order))) + labels = [season.capitalize() for season in season_order] + + for ax, var in zip(axes, variables): + data = [ + df.loc[df[season_column] == season, var.column].dropna().to_numpy() + for season in season_order + ] + if not any(len(arr) > 0 for arr in data): + ax.text(0.5, 0.5, f"Aucune donnée pour {var.label}.", ha="center", va="center") + ax.set_axis_off() + continue + + box = ax.boxplot( + data, + labels=labels, + showfliers=False, + patch_artist=True, + ) + for patch, color in zip(box["boxes"], colors): + patch.set_facecolor(color) + patch.set_alpha(0.7) + + ylabel = f"{var.label} ({var.unit})" if var.unit else var.label + ax.set_ylabel(ylabel) + ax.grid(True, linestyle=":", alpha=0.5) + + axes[-1].set_xlabel("Saison") + if title: + fig.suptitle(title) + fig.tight_layout(rect=[0, 0, 1, 0.95]) + else: + fig.tight_layout() + fig.savefig(output_path, dpi=150) + plt.close(fig) + return output_path.resolve() + + def plot_binned_profiles( stats: BinnedStatistics, variables: Sequence[Variable], @@ -747,3 +823,69 @@ def plot_daily_rainfall_hyetograph( fig.savefig(output_path, dpi=150) plt.close(fig) return output_path.resolve() + + +def plot_rainfall_by_season( + rainfall_df: pd.DataFrame, + output_path: str | Path, + *, + title: str = "Pluie cumulée par saison", +) -> Path: + """ + Affiche la pluie cumulée par saison ainsi que le nombre d'heures pluvieuses. + """ + output_path = Path(output_path) + output_path.parent.mkdir(parents=True, exist_ok=True) + + if rainfall_df.empty: + fig, ax = plt.subplots() + ax.text(0.5, 0.5, "Pas de données de pluie saisonnière.", ha="center", va="center") + ax.set_axis_off() + fig.savefig(output_path, dpi=150, bbox_inches="tight") + plt.close(fig) + return output_path.resolve() + + seasons = rainfall_df.index.tolist() + x = np.arange(len(seasons)) + totals = rainfall_df["total_rain_mm"].to_numpy(dtype=float) + + fig, ax1 = plt.subplots(figsize=(9, 4)) + bars = ax1.bar(x, totals, color="tab:blue", alpha=0.7, label="Pluie cumulée") + ax1.set_ylabel("Pluie cumulée (mm)") + ax1.set_xlabel("Saison") + ax1.set_xticks(x) + ax1.set_xticklabels([season.capitalize() for season in seasons]) + ax1.grid(True, axis="y", linestyle=":", alpha=0.5) + + for rect, value in zip(bars, totals): + height = rect.get_height() + ax1.text(rect.get_x() + rect.get_width() / 2, height, f"{value:.0f}", ha="center", va="bottom", fontsize=8) + + lines = [] + labels = [] + + if "rainy_hours" in rainfall_df.columns: + ax2 = ax1.twinx() + rainy_hours = rainfall_df["rainy_hours"].to_numpy(dtype=float) + line = ax2.plot( + x, + rainy_hours, + color="tab:red", + marker="o", + label="Heures pluvieuses", + )[0] + ax2.set_ylabel("Heures pluvieuses") + lines.append(line) + labels.append("Heures pluvieuses") + + handles, lbls = ax1.get_legend_handles_labels() + handles.extend(lines) + lbls.extend(labels) + if handles: + ax1.legend(handles, lbls, loc="upper left") + + ax1.set_title(title) + fig.tight_layout() + fig.savefig(output_path, dpi=150) + plt.close(fig) + return output_path.resolve() diff --git a/meteo/season.py b/meteo/season.py new file mode 100644 index 0000000..0ec5310 --- /dev/null +++ b/meteo/season.py @@ -0,0 +1,84 @@ +# meteo/season.py +from __future__ import annotations + +from typing import Iterable, Sequence + +import numpy as np +import pandas as pd + + +SEASON_LABELS = np.array(["winter", "spring", "summer", "autumn"]) +MONTH_TO_SEASON_INDEX = { + 12: 0, + 1: 0, + 2: 0, + 3: 1, + 4: 1, + 5: 1, + 6: 2, + 7: 2, + 8: 2, + 9: 3, + 10: 3, + 11: 3, +} + + +def _ensure_datetime_index(index: pd.Index) -> pd.DatetimeIndex: + if not isinstance(index, pd.DatetimeIndex): + raise TypeError("Cette fonction nécessite un DatetimeIndex.") + return index + + +def _season_indices_for_month(months: np.ndarray, hemisphere: str) -> np.ndarray: + base_indices = np.vectorize(MONTH_TO_SEASON_INDEX.get)(months) + if hemisphere == "south": + return (base_indices + 2) % len(SEASON_LABELS) + return base_indices + + +def compute_season_series( + index: pd.Index, + *, + hemisphere: str = "north", + column_name: str = "season", +) -> pd.Series: + """ + Retourne une série catégorielle indiquant la saison météorologique pour chaque timestamp. + """ + hemisphere = hemisphere.lower() + if hemisphere not in {"north", "south"}: + raise ValueError("hemisphere doit valoir 'north' ou 'south'.") + + dt_index = _ensure_datetime_index(index) + month_array = dt_index.month.to_numpy() + season_indices = _season_indices_for_month(month_array, hemisphere) + labels = SEASON_LABELS[season_indices] + return pd.Series(labels, index=dt_index, name=column_name) + + +def add_season_column( + df: pd.DataFrame, + *, + hemisphere: str = "north", + column_name: str = "season", +) -> pd.DataFrame: + """ + Ajoute une colonne 'season' (winter/spring/summer/autumn) au DataFrame. + """ + series = compute_season_series(df.index, hemisphere=hemisphere, column_name=column_name) + df[column_name] = series + return df + + +def sort_season_labels( + labels: Iterable[str], + *, + order: Sequence[str] | None = None, +) -> list[str]: + """ + Trie la liste fournie en respectant l'ordre saisonnier par défaut. + """ + reference = [str(season) for season in (order if order is not None else SEASON_LABELS)] + label_set = {str(label) for label in labels if label} + return [season for season in reference if season in label_set] diff --git a/scripts/make_minutely_dataset.py b/scripts/make_minutely_dataset.py index ed51a20..2202e00 100644 --- a/scripts/make_minutely_dataset.py +++ b/scripts/make_minutely_dataset.py @@ -6,6 +6,7 @@ from pathlib import Path from meteo.dataset import load_raw_csv, resample_to_minutes from meteo.config import StationLocation from meteo.solar import add_solar_elevation_column +from meteo.season import add_season_column FORMATTED_CSV_PATH = Path("data/weather_filled_1s.csv") @@ -25,6 +26,7 @@ def main() -> None: df_min = resample_to_minutes(df_1s) print(f"Après resampling 60s : {len(df_min)} lignes") + hemisphere = "north" try: location = StationLocation.from_env(optional=True) except RuntimeError as exc: @@ -32,6 +34,7 @@ def main() -> None: location = None if location is not None: + hemisphere = "south" if location.latitude < 0 else "north" print( f"Ajout de l'élévation solaire (lat={location.latitude}, lon={location.longitude}, " f"alt={location.elevation_m} m)..." @@ -47,6 +50,9 @@ def main() -> None: "ℹ Coordonnées GPS non définies (STATION_LATITUDE / STATION_LONGITUDE). " "La colonne sun_elevation ne sera pas ajoutée." ) + print("ℹ Saison : hypothèse par défaut = hémisphère nord. Définissez STATION_LATITUDE pour adapter.") + + add_season_column(df_min, hemisphere=hemisphere) OUTPUT_CSV_PATH.parent.mkdir(parents=True, exist_ok=True) df_min.to_csv(OUTPUT_CSV_PATH, index_label="time") diff --git a/scripts/plot_seasonal_overview.py b/scripts/plot_seasonal_overview.py new file mode 100644 index 0000000..fe466a7 --- /dev/null +++ b/scripts/plot_seasonal_overview.py @@ -0,0 +1,66 @@ +# scripts/plot_seasonal_overview.py +from __future__ import annotations + +from pathlib import Path + +from meteo.dataset import load_raw_csv +from meteo.variables import VARIABLES_BY_KEY +from meteo.analysis import compute_rainfall_by_season +from meteo.plots import plot_seasonal_boxplots, plot_rainfall_by_season +from meteo.season import sort_season_labels, SEASON_LABELS + + +CSV_PATH = Path("data/weather_minutely.csv") +OUTPUT_DIR = Path("figures/seasonal") + +BOXPLOT_VARIABLES = ["temperature", "humidity", "pressure", "wind_speed"] + + +def infer_season_order(df) -> list[str]: + seasons = df["season"].dropna().unique() + order = sort_season_labels(seasons, order=SEASON_LABELS) + if not order: + order = list(SEASON_LABELS) + return order + + +def main() -> None: + if not CSV_PATH.exists(): + print(f"⚠ Fichier introuvable : {CSV_PATH}") + return + + df = load_raw_csv(CSV_PATH) + print(f"Dataset minuté chargé : {CSV_PATH}") + print(f" Lignes : {len(df)}") + print(f" Colonnes : {list(df.columns)}") + print() + + if "season" not in df.columns: + print("⚠ La colonne 'season' est absente. Relancez scripts.make_minutely_dataset.") + return + + OUTPUT_DIR.mkdir(parents=True, exist_ok=True) + season_order = infer_season_order(df) + print(f"Saisons détectées : {season_order}") + + variables = [VARIABLES_BY_KEY[key] for key in BOXPLOT_VARIABLES] + boxplot_path = OUTPUT_DIR / "seasonal_boxplots.png" + plot_seasonal_boxplots( + df=df, + variables=variables, + output_path=boxplot_path, + season_order=season_order, + title="Distribution des mesures par saison", + ) + print(f"✔ Boxplots saisonniers : {boxplot_path}") + + rainfall = compute_rainfall_by_season(df=df, rate_column="rain_rate", season_column="season") + rainfall_path = OUTPUT_DIR / "rainfall_by_season.png" + plot_rainfall_by_season(rainfall_df=rainfall, output_path=rainfall_path) + print(f"✔ Pluie saisonnière : {rainfall_path}") + + print("✔ Tous les graphiques saisonniers ont été générés.") + + +if __name__ == "__main__": + main()