Lever et coucher du soleil...

Aller en bas

Lever et coucher du soleil...

Message par Olivier le Dim 22 Fév - 12:28

Voilà le code, j'explique dedans, en rouge les variables.


IF ($fh == "") {$fh = date("H") - gmdate("H") ;}$fh est le décalage entre l'heure locale et l'heure TU automatique si non renseigné.
IF ($La == "") { $La = 48.833;}
IF ($Lo == "") { $Lo = -2.333;}
Latitude et longitude, si non renseignées = PARIS
IF ($ville == "") { $ville = "Paris";}
IF ($mois == "") {$mois = date("m") ;}
IF ($jour == "") {$jour = date("d") ;}
Idem pour la date, par défaut = aujourd'hui.
// Fuseau horaire et coordonnées géographiques
$k = 0.0172024;
$jm = 308.67;
$jl = 21.55;
$e = 0.0167;
$ob = 0.4091;
$PI= 3.1415926536;
//Hauteur du soleil au lever et au coucher
$dr = $PI/ 180; Conversion Degrés Radians
$hr = $PI/ 12;
$ht = (-40 / 60);corection de la réfraction
$ht = $ht * $dr;
$La = $La * $dr;
$Lo = $Lo * $dr;Coordonnées en radians
//Date
IF ($mois < 3) {
$mois = $mois + 12;
}Pour ne pas être géné en cas d'année bissextile
//Heure TU du milieu de la journée
$h = 12 + ($Lo / $hr);
//Nombre de jours écoulés depuis le 1 Mars O h TU
$J = floor(30.61 * ($mois + 1)) + $jour + ($h / 24) - 123;
//Anomalie et longitude moyenne
$M = $k * ($J - $jm);
$L = $k * ($J - $jl);
//Longitude vraie
$S =$L + 2 * $e * Sin($M) + 1.25 * $e * $e * Sin(2 * $M);
//Coordonnées rectangulaires du soleil dans le repère équatorial
$X = Cos($S);
$Y = Cos($ob) * Sin($S);
$Z = Sin($ob) * Sin($S);
//Equation du temps et déclinaison
$R = $L;
$rx = Cos($R) * $X + Sin($R) * $Y;
$ry = -Sin($R) * $X + Cos($R) * $Y;
$X = $rx;
$Y = $ry;
$ET = atan($Y / $X); Equation du temps
$DC = atan($Z / Sqrt(1 - $Z * $Z));Déclinaison du soleil
//Angle horaire au lever et au coucher
$cs = (Sin($ht) - Sin($La) * Sin($DC)) / Cos($La) / Cos($DC);
IF ($cs > 1) { $CalculSol = "Ne se lève pas";}
IF ($cs < -1) { $CalculSol = "Ne se couche pas";}
IF ($cs == 0) {
$ah = $PI / 2;
En fonction de la latitude (> 66°) le soleil peut ne pas se lever ou se coucher, ce test pour eviter l'erreur.
}ELSE{
$ah = atan(Sqrt(1 - $cs * $cs) / $cs);
situation normale
}
IF ($cs < 0) { $ah = $ah + $PI;}
//Lever du soleil
$Pm = $h + $fh + ($ET - $ah) / $hr;
Au dessus la formule qui explique tout:
heure du milieu de journée
+ décalage avec TU
+ equation du temps
- la moitié de la durée d'ensoleillement du jour.

IF ($Pm < 0) { $Pm = $Pm + 24;}
IF ($Pm > 24) { $Pm = $Pm - 24;}
$hs = floor($Pm);
$Pm = floor(60 * ($Pm - $hs));
IF (strlen($hs)<2) {$hs = "0".$hs;}
IF (strlen($Pm)<2) {$Pm = "0".$Pm;}
IF ($CalculSol ==""){
$lev = $hs. ":" .$Pm;
}ELSE{
$lev = "---";}
//Coucher du soleil
$Pm = $h + $fh + ($ET + $ah) /$hr;
Pareil...:
heure du milieu de journée
+ décalage avec TU
+ equation du temps
+ la moitié de la durée d'ensoleillement du jour.

IF ($Pm > 24) { $Pm = $Pm - 24;}
IF ($Pm < 0) { $Pm = $Pm + 24;}
$hs = floor($Pm);
$Pm = floor(60 * ($Pm - $hs));
IF (strlen($hs)<2) {$hs = "0".$hs;}
IF (strlen($Pm)<2) {$Pm = "0".$Pm;}
Ca comme en haut pour sortir en heure et minutes
IF ($CalculSol ==""){
$couch = $hs. ":" .$Pm;
}ELSE{
$couch = "---";}
Affichage
ECHO "Horaires du Soleil à ".$ville."
";
ECHO "Lever = " .$lev ;
ECHO "
";
ECHO "Coucher = ". $couch;
?>

Le reste est expliqué derrière les // demander là si vs avez une autre question...
avatar
Olivier
Admin
Admin

Nombre de messages : 1277
Date d'inscription : 16/02/2006

Voir le profil de l'utilisateur http://olravet.fr

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par louis3d le Lun 19 Mar - 17:06

Bonjour,
Merci beaucoup pour ces éléments. Le script fonctionne très bien mais sauf erreur de ma part, les paramètres ne sont pas pris en compte. Par exemple :
http://olravet.fr/petitsoleil.php?Lo=6.15&La=47.63&ville=Vesoul donne toujours Paris.
Merci et bonne journée

louis3d
Membre Participant
Membre Participant

Nombre de messages : 8
Age : 36
Date d'inscription : 17/10/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par louis3d le Lun 19 Mar - 17:33

Par ailleurs, comme j'ai toujours une erreur avec la fonction include :
Code:
Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_include=0
Pourrais-je vous demander le code de http://olravet.fr/petitsoleil.php, ou un workaround pour faire un "include", sans altérer la sécurité de mon site ?
Merci

louis3d
Membre Participant
Membre Participant

Nombre de messages : 8
Age : 36
Date d'inscription : 17/10/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par Olivier le Lun 19 Mar - 18:02

Bonjour,
en effet il manquait quelques "GET" depuis le passage à un PHP supérieur, c'est corrigé.
Le coup de l'include doit en effet être de plus en plus problématique... c'est quoi un workarround ?
avatar
Olivier
Admin
Admin

Nombre de messages : 1277
Date d'inscription : 16/02/2006

Voir le profil de l'utilisateur http://olravet.fr

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par Olivier le Lun 19 Mar - 18:03

(le code c'est celui qui est au dessus)
avatar
Olivier
Admin
Admin

Nombre de messages : 1277
Date d'inscription : 16/02/2006

Voir le profil de l'utilisateur http://olravet.fr

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par louis3d le Lun 19 Mar - 22:30

Super merci !

Pardon, un workaround, c'est une solution alternative, un palliatif, un contournement du problème.

Et pour le code, j'aimerais bien comprendre celui qui donne aussi le saint du jour (une autre paire de manche !)

Si possible, sinon c'est déjà super avec les heures de lever coucher, l'équation de temps et tout.

louis3d
Membre Participant
Membre Participant

Nombre de messages : 8
Age : 36
Date d'inscription : 17/10/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par louis3d le Lun 19 Mar - 22:50

Olivier a écrit:Bonjour,
en effet il manquait quelques "GET" depuis le passage à un PHP supérieur, c'est corrigé.

Pourriez-vous préciser, car sur mon site distant ça fonctionne, mais sur mon "localhost" ça ne marche pas non plus...

louis3d
Membre Participant
Membre Participant

Nombre de messages : 8
Age : 36
Date d'inscription : 17/10/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par Olivier le Mar 20 Mar - 1:28

Pour le code des saints il s’agit d’une simple base de données.
Pour le codage qu8 marchait avec les versions précédentes de php.... c’est le problème des versions qui évoluent... par sécurité maintenant il faut d3clarer les variables qui peuvent passer de pages en pages, ce n’était pas nécessaire avant et votr3 local host n’est peut être pas compat8ble...
avatar
Olivier
Admin
Admin

Nombre de messages : 1277
Date d'inscription : 16/02/2006

Voir le profil de l'utilisateur http://olravet.fr

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par louis3d le Mar 20 Mar - 12:02

Merci. J'ai trouvé ici les éléments pour corriger et mettre les GET où il faut.
Bonne journée,
et encore merci pour vos scripts / utilitaires d'astronome et de gnomoniste.

louis3d
Membre Participant
Membre Participant

Nombre de messages : 8
Age : 36
Date d'inscription : 17/10/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par louis3d le Ven 30 Mar - 18:55

Bon pour le saint du jour je me suis passé de base de données :
Code:
<?php
$date = date('md');
echo "<strong><a href='http://nominis.cef.fr/'>Nous fêtons</a> : </strong> " ;

if ($date == '0101') { echo 'Sainte Marie, mère de Dieu - (1<sup>er</sup> s.)'; }
if ($date == '0102') { echo 'Saint Basile le Grand - (+ 379) - '; }
if ($date == '0102') { echo 'Saint Grégoire de Nazianze - (+ 390)'; }
if ($date == '0103') { echo 'Sainte Geneviève - (+ 500)'; }
if ($date == '0104') { echo 'Sainte Angèle de Foligno - (+ 1310)'; }
etc...
Un peu brutal mais ça fonctionne !

louis3d
Membre Participant
Membre Participant

Nombre de messages : 8
Age : 36
Date d'inscription : 17/10/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Lever et coucher du soleil...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum