Comment calculer la durée en heure d’une journée ? 🕒
Lors d’un développement récent sur des analyses des 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] $$
avec $D$ the durée de la journée, en heures, $L$ la latitude exprimée en degrés, $J$ le jour de l’année 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] $$
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°.