Estimation des angles solaires – Programme Python
Ce rapport présente un programme Python général permettant d’estimer les principaux
angles solaires. Les valeurs d’entrée (latitude, jour de l’année, heure solaire, inclinaison et
orientation) sont laissées entièrement libres afin de permettre une utilisation flexible pour
différents sites et applications solaires.
1. Objectifs
Le programme a pour objectifs :
- Calculer la déclinaison solaire
- Calculer l’angle horaire
- Déterminer l’angle zénithal et l’élévation solaire
- Calculer l’azimut solaire
- Estimer l’angle d’incidence sur une surface inclinée
- Étendre le calcul à toutes les heures d’une journée donnée
2. Données d’entrée
Les paramètres d’entrée du programme sont :
- Latitude φ (degrés)
- Jour de l’année J (1–365)
- Temps solaire vrai TSV (heures)
- Inclinaison du plan β (degrés)
- Orientation du plan γ (0° = Sud)
3. Programme Python – Calcul instantané
import numpy as np
def angles_solaires(latitude, jour_annee, temps_solaire, beta, gamma):
delta = 23.45 * [Link](np.deg2rad((360/365)*(jour_annee + 284)))
omega = 15 * (12 - temps_solaire)
cos_tz = ([Link](np.deg2rad(latitude)) * [Link](np.deg2rad(delta)) +
[Link](np.deg2rad(latitude)) * [Link](np.deg2rad(delta)) *
[Link](np.deg2rad(omega)))
theta_z = np.rad2deg([Link](cos_tz))
h = 90 - theta_z
if h > 0:
psi = np.rad2deg([Link](
([Link](np.deg2rad(delta)) * [Link](np.deg2rad(omega))) /
[Link](np.deg2rad(h))
))
else:
psi = [Link]
if h > 0:
theta = np.rad2deg([Link](
[Link](np.deg2rad(beta)) * [Link](np.deg2rad(psi - gamma)) *
[Link](np.deg2rad(theta_z)) +
[Link](np.deg2rad(theta_z)) * [Link](np.deg2rad(beta))
))
else:
theta = [Link]
return delta, omega, theta_z, h, psi, theta
4. Programme Python – Calcul sur toute une journée
def angles_journee(latitude, jour_annee, beta, gamma, pas=1):
import numpy as np
heures = [Link](0, 24 + pas, pas)
h_list = []
theta_list = []
for t in heures:
_, _, _, h, _, theta = angles_solaires(
latitude, jour_annee, t, beta, gamma
)
h_list.append(h)
theta_list.append(theta)
return heures, [Link](h_list), [Link](theta_list)