Comment calculer la durée en heure d’une journée ? 🕒
Lors d’un développement récent sur des analyses de séries temporelles énergétiques, nous avons eu besoin de déterminer la durée d’une journée, en heures.
Nous avons donc commencer à utiliser des librairies Python telles que pvlib
et son
module solar_position
ou suntime
pour obtenir les heures de levé et couché du soleil.
Cependant, pour éviter des dépendances, nous avons continué à fouiller et sommes tombé sur une méthode originale dans un post sur Stackoverflow , qui propose une méthode simple pour estimer la durée de la journée, basée sur la latitude et le jour de l’année. Cette méthode a été développé par [Forsythe et al.]1 en 1995 !
Cette durée est décrite par la fonction suivante : $$ D = 24 - \frac{24}{\pi} \times \arccos \left[ \frac{\sin(0.8333 \times \frac{\pi}{180}) + \sin(L \times \frac{\pi}{180})\times\sin(P)}{\cos(L \times \frac{\pi}{180} \times \cos(P))} \right] $$
où $D$ est la durée de la journée, en heures, $L$ la latitude exprimée en degrés, et $P$ :
$$ P = \arcsin \left[ 0.39795 \times \cos\left( 0.2163108 + 2 \times \arctan\left( 0.9671396 \times \tan\left(0.00860\times(J-186)\right)\right)\right)\right] $$
avec $J$ le jour de l’année. La valeur 0.8333
peut être modifiée pour prendre en compte différentes définitions de la durée d’une journée (voir article).
Les auteurs proposent des comparaisons, et montrent que leur approche a une erreur inférieure à 1 minute pour des latitudes inférieures à 40° Nord / Sud et une erreur maximale de 7 minutes pour une latitude de 60°.