CALCUL DE LA POSITION DU SOLEIL (DÉCLINAISON, ANGLE HORAIRE, ALTITUDE ET AZIMUT)
gamemonde
Messages postés336Date d'inscriptionsamedi 9 août 2003StatutMembreDernière intervention 9 juillet 2011
-
2 juin 2005 à 17:04
mtkb -
7 juin 2017 à 08:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Fantastique, conversion en langage Monkey C pour portage sur montre Garmin réussie.
JLO68
Messages postés3Date d'inscriptionmercredi 26 août 2009StatutMembreDernière intervention18 octobre 2012 18 oct. 2012 à 11:58
Bonjour,
Ce développement est génial, mais pourriez-vous me dire où je pourrais trouver son équivalent en VBA.
J'essaie depuis un moment et je bloque quant à la compréhension de certaines manip.
En regardant votre code je ne sais pas si cela est possible de le transcrire en VBA.
Merci d'avance.
CesiSharp
Messages postés1Date d'inscriptionjeudi 24 décembre 2009StatutMembreDernière intervention 8 février 2011 8 févr. 2011 à 11:02
tkandel
Messages postés1Date d'inscriptionjeudi 22 juillet 2010StatutMembreDernière intervention 6 octobre 2010 6 oct. 2010 à 18:22
Bonjour,
Je sais que c'est peux être un peu loin maintenant mais est-ce que tu pourrais citer tes sources par hasard ? Notamment pour le calcul précis de calcul de la position du soleil ... Merci !
fandeWampas
Messages postés4Date d'inscriptionvendredi 22 mai 2009StatutMembreDernière intervention 3 mars 2010 3 mars 2010 à 20:12
J'ai fait une petite amélioration au programme:
Actuellement le programme demande si on est en heure d'été ou d'hiver.
Mon module supplémentaire prend la date du jour, calcul la date des changements d'horaire automatiquement et compare les dates de changements avec la date du jour.
En code sa donne:
//---------------------Recuperation date du jour-------------------------------
//-----------------------------------------------------------------------------
//---------------Calculer date heure d'été ou heure d'hiver--------------------
//-----------------------------------------------------------------------------
int a = Today.tm_year + 1900;
int y1; //Jour entre 0 et 6 du 31 mars
int z1; //date dernier dimanche de mars
int y2; //Jour entre 0 et 6 du 31 octobre
int z2; //date dernier dimanche de octobre
//Deux lignes permettant de verifier si la date calculé correspond bien a la réalité
//cout << "Date de l'heure d'été: " << z1 << " mars " << a << "\n";
//cout << "Date de l'heure d'hiver: "<< z2 <<" octobre " << a <<"\n";
struct tm Hiver; //Enregistrement des dates calculés dans structure pour les comparés
//-----------------------------heure d'hiver ou d'été---------------------------
//------------------------------------------------------------------------------
cout << "Appuyer sur une Y pour continuer";
cin >> continuer;
}
fandeWampas
Messages postés4Date d'inscriptionvendredi 22 mai 2009StatutMembreDernière intervention 3 mars 2010 2 mars 2010 à 15:11
Merci, j'ai besoin de faire ce genre de chose pour mon projet de 2eme année d'IRIS, j'ai du faire des modification pour qu'il fonctionne sous visual:
D'abord, un soucis avec M_PI donc voici la solution:
#define M_PI 3.14159265358979323846
Ensuite un probleme du a time(&start) m'a fait changer
long start, courante;
en
time_t start, courante;
RaphAstronome
Messages postés104Date d'inscriptionsamedi 7 décembre 2002StatutMembreDernière intervention17 août 2009 15 juil. 2009 à 13:40
Utilise plutôt un logiciel d'astronomie déjà tout fait.
Il y en à des quantités et souvent gratuits comme SkyChart.
Sinon fait attention à l'heure : elle peut être locale ou TU.
dailledrime
Messages postés1Date d'inscriptionmercredi 15 juillet 2009StatutMembreDernière intervention15 juillet 2009 15 juil. 2009 à 12:53
Bonjour, absolument pas programmatrice, j'ai besoin de calculer la position du soleil pour préparation d'un tournage...
Que fait-on du fichier pour pouvoir l'utiliser, une fois téléchargé? (je suis sous windows vista :(
RodrigueC
Messages postés2Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention27 août 2007 27 août 2007 à 17:07
Très instructif comme code :)
Néanmoins, est-ce que tu ne devrais pas tenir compte de la hauteur du lieu géographique?
RemyFR
Messages postés5Date d'inscriptiondimanche 3 novembre 2002StatutMembreDernière intervention 4 mars 2007 4 mars 2007 à 13:54
Très bon code, je m'en suis servi comme base pour une application en développée en Qt.
sdurand84
Messages postés2Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention19 février 2006 19 févr. 2006 à 05:50
J'ai trouvé d'où venait le problème, PHP utilise les angles en radians.
Merci pour votre script, à bientôt.
sdurand84
Messages postés2Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention19 février 2006 18 févr. 2006 à 01:42
Bonjour,
Je cherchais justement un script à ce sujet... En effet, je cherche à calculer automatiquement la déclinaison du soleil.
J'ai donc essayé d'adapter votre script au langage PHP, cependant, le résultat est erronné... Peut-être pourriez-vous m'aider ?
Le résultat du calcul de la déclinaison est faux, cependant la conversion en jour julien se fait correctement.
Est-ce que vous voyez où se situe l'erreur ? Merci beaucoup, à bientôt.
koaber
Messages postés5Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention 6 juin 2005 6 juin 2005 à 13:58
merci, j'essaierai si j'ai le temps et de ces 4. en ce moment, je suis overbooké!
à bientôt!
RaphAstronome
Messages postés104Date d'inscriptionsamedi 7 décembre 2002StatutMembreDernière intervention17 août 2009 6 juin 2005 à 13:08
Bon code mais au lieu de void wait(long sec) utilise plutôt sleep ça évitera d'utiliser tout le temps CPU.
Sinon j'ai comparé ton programme avec Redshift 4 il est bien précis il n'y avait que 1.5" d'arc d'écart sur l'AD et 3" sur la déclinaison.
koaber
Messages postés5Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention 6 juin 2005 3 juin 2005 à 10:45
merci. j'ai fait les modifications...
à plus!
gamemonde
Messages postés336Date d'inscriptionsamedi 9 août 2003StatutMembreDernière intervention 9 juillet 20112 2 juin 2005 à 17:04
bon code cela peux être plus ou moin utile mais ne le met pas en .txt
7 juin 2017 à 08:09
18 oct. 2012 à 11:58
Ce développement est génial, mais pourriez-vous me dire où je pourrais trouver son équivalent en VBA.
J'essaie depuis un moment et je bloque quant à la compréhension de certaines manip.
En regardant votre code je ne sais pas si cela est possible de le transcrire en VBA.
Merci d'avance.
8 févr. 2011 à 11:02
6 oct. 2010 à 18:22
Je sais que c'est peux être un peu loin maintenant mais est-ce que tu pourrais citer tes sources par hasard ? Notamment pour le calcul précis de calcul de la position du soleil ... Merci !
3 mars 2010 à 20:12
Actuellement le programme demande si on est en heure d'été ou d'hiver.
Mon module supplémentaire prend la date du jour, calcul la date des changements d'horaire automatiquement et compare les dates de changements avec la date du jour.
En code sa donne:
//---------------------Recuperation date du jour-------------------------------
//-----------------------------------------------------------------------------
struct tm Today;
time_t now;
time(&now);
Today = *localtime(&now);
printf("%4.4d/%2.2d/%2.2d\n",Today.tm_year + 1900, Today.tm_mon + 1, Today.tm_mday);
//---------------Calculer date heure d'été ou heure d'hiver--------------------
//-----------------------------------------------------------------------------
int a = Today.tm_year + 1900;
int y1; //Jour entre 0 et 6 du 31 mars
int z1; //date dernier dimanche de mars
int y2; //Jour entre 0 et 6 du 31 octobre
int z2; //date dernier dimanche de octobre
y1 = (5+ a+ int(a/4)- int(a/100)+ int(a/400))%7;
y2 = (2+ a+ int(a/4)- int(a/100)+ int(a/400))%7;
z1 = 31-y1;
z2 = 31-y2;
//Deux lignes permettant de verifier si la date calculé correspond bien a la réalité
//cout << "Date de l'heure d'été: " << z1 << " mars " << a << "\n";
//cout << "Date de l'heure d'hiver: "<< z2 <<" octobre " << a <<"\n";
struct tm Hiver; //Enregistrement des dates calculés dans structure pour les comparés
Hiver.tm_year = a;
Hiver.tm_mon = 10;
Hiver.tm_mday = z2;
struct tm Ete;
Ete.tm_year = a;
Ete.tm_mon = 3;
Ete.tm_mday = z1;
//-----------------------------heure d'hiver ou d'été---------------------------
//------------------------------------------------------------------------------
correction_heure=0;
while(correction_heure!=1 && correction_heure!=2)
{
CouleurTexte(FOREGROUND_GREEN);
if ((Today.tm_mon<=3 && Today.tm_mday<=Ete.tm_mday)||(11<=Today.tm_mon && Hiver.tm_mday<=Today.tm_mday))
{
cout << "vous etes a l'heure d'hiver\n";
correction_heure = 1;
}
else if ((3<=Today.tm_mon && Ete.tm_mday<=Today.tm_mday)||(Today.tm_mon<=11 && Today.tm_mday<=Hiver.tm_mday))
{
cout << "Vous etes a l'heure d'été\n";
correction_heure = 2;
Today.
}
else
{
cout << "Vous avez un probleme";
}
char continuer;
cout << "Appuyer sur une Y pour continuer";
cin >> continuer;
}
2 mars 2010 à 15:11
D'abord, un soucis avec M_PI donc voici la solution:
#define M_PI 3.14159265358979323846
Ensuite un probleme du a time(&start) m'a fait changer
long start, courante;
en
time_t start, courante;
15 juil. 2009 à 13:40
Il y en à des quantités et souvent gratuits comme SkyChart.
Sinon fait attention à l'heure : elle peut être locale ou TU.
15 juil. 2009 à 12:53
Que fait-on du fichier pour pouvoir l'utiliser, une fois téléchargé? (je suis sous windows vista :(
27 août 2007 à 17:07
Néanmoins, est-ce que tu ne devrais pas tenir compte de la hauteur du lieu géographique?
4 mars 2007 à 13:54
19 févr. 2006 à 05:50
Merci pour votre script, à bientôt.
18 févr. 2006 à 01:42
Je cherchais justement un script à ce sujet... En effet, je cherche à calculer automatiquement la déclinaison du soleil.
J'ai donc essayé d'adapter votre script au langage PHP, cependant, le résultat est erronné... Peut-être pourriez-vous m'aider ?
Voici mon code :
// DEBUT CODE.
<?php
$seconde = date("s");
$minute = date("i");
$heure = date("G");
$jour = date("j");
$mois = date("n");
$annee = date("Y");
$jourJulien = calculJourJulien($jour, $mois, $annee, $heure, $minute, $seconde);
// Calcul jour julien. <- Résultat correct.
function calculJourJulien($jour, $mois, $annee, $heure, $minute, $seconde) {
$jour = $jour + $heure / 24.0 + $minute / 1440.0 + $seconde / 86400.0;
$i = round($annee / 100.0);
$j = 2.0 - $i + round($i / 4.0);
return round(365.25 * ($annee + 4716.0)) + round(30.6001 * ($mois + 1.0)) + $jour + $j - 1524.5;
}
// Calcul de la déclinaison du Soleil. <- Résultat incorrect.
function declinaison($jourJulien) {
$jourJulienNouveau = $jourJulien - 2.0 / 24.0 - 2451545.0; // Ici, le 2.0 correspond à la correction de l'heure.
$e= 23.439 - 0.00000036 * $jourJulienNouveau;
$declinaison = asin(sin($e * M_PI / 180.0) * sin(1 * M_PI /180.0)) * 180.0 / M_PI;
return $declinaison;
}
echo calculJourJulien($jour, $mois, $annee, $heure, $minute, $seconde); // <- Résultat correct.
echo "
";
echo declinaison($jourJulien); // <- Erreur.
?>
// FIN CODE.
Le résultat du calcul de la déclinaison est faux, cependant la conversion en jour julien se fait correctement.
Est-ce que vous voyez où se situe l'erreur ? Merci beaucoup, à bientôt.
6 juin 2005 à 13:58
à bientôt!
6 juin 2005 à 13:08
Sinon j'ai comparé ton programme avec Redshift 4 il est bien précis il n'y avait que 1.5" d'arc d'écart sur l'AD et 3" sur la déclinaison.
3 juin 2005 à 10:45
à plus!
2 juin 2005 à 17:04