Levier (a): le forecast passe en sous-horaire pour capter les ombres courtes.
Le forecast suit maintenant ton slider "détail graphique" (15 min par défaut). Avant il était calculé une fois par heure puis interpolé, donc un arbre (ou une cheminée, un mât) qui coupe la production 30-45 min était enjambé: le point horaire tombait dans l'ombre ou la ratait, et le creux ne se dessinait jamais proprement. Maintenant l'ombrage LiDAR + la position du soleil sont échantillonnés à chaque bucket, donc une ombre courte est résolue. La météo Open-Meteo (horaire) et le GTI sont interpolés entre les points pour que la magnitude reste lisse (pas de marches). Slider plus fin = ombres plus nettes ; plus grossier = ancien comportement horaire.
L'apprentissage 60 jours évalue son modèle à 4 instants par heure pour rester cohérent. Le recorder ne garde que des stats horaires sur 60 jours, mais en sous-échantillonnant le modèle on fait en sorte que le résidu appris voie la même fraction-d'heure ombragée que le forecast résout, sans recompter en double une ombre que le forecast dessine déjà géométriquement.
Combiné à beta.12 (la carte apprise atteint maintenant les positions de soleil futures), ton creux d'arbre de 15h30-17h devrait apparaître net sur les jours futurs aussi.
Suite de la ligne forecast (beta.7-12). S'applique à toutes les courbes, CoverFlow inclus.