Original article: http://www.naughter.com/aa.html

AA+

Naughter Software Logo

AA + v1.60 un cadre de classe pour les computs astronomiques
AA + est une application C++ pour les algorithmes tels que présentés dans le livre « Astronomical Algorithms » par Jean Meeus. Le code source est fourni avec le livre, mais il comprend (selon moi) une licence restrictive, ainsi que de ne pas avoir été mis à jour pour la 2ème révision du livre qui comprend des chapitres nouveaux et intéressants, sur des domaines comme les lunes de Saturne et les calendriers juif et de musulman. Pour profiter au maximum de mon code, vous aurez vraiment besoin une copie du livre. Cela peut être acheté sur Amazon ou directement chez l’éditeur Willman-Bell.
Exemple de domaines couverts comprennent les positions des planètes, des comètes, des astéroïdes et la lune, calcul des temps de montée, de réglage et de Transit, calcul du temps des équinoxes et Solstices plus calcul des positions des lunes de Jupiter et de Saturne, mais aussi beaucoup d’autres algorithmes présentés dans le livre. C’est un des cadres plus grands que jamais, j’ai développé et comprend c. 18 mille lignes de code qui j’ai travaillé sur pendant plus d’un an!.

Droit d’auteur
Vous êtes autorisé à inclure le code source dans n’importe quel produit (commercial, shareware, freeware ou autre) quand votre produit est libéré sous forme binaire.
Vous êtes autorisé à modifier le code source en quelque sorte que vous voulez sauf que vous ne pouvez pas modifier les détails du droit d’auteur au sommet de chaque module.
Si vous voulez distribuer le code source avec votre application, vous êtes seulement autorisé à distribuer des versions publiées par l’auteur. Il s’agit de maintenir un seul endroit pour obtenir le code source.

Mises à jour
v1.0 (6 février 2004)
Première version publique.

V1.01 (9 février 2004)
Mis à jour les valeurs utilisées dans le calcul des constantes a1 et a2 pour une lune de Saturne Rhea (satellite V) suite à un email de Jean Meeus confirmant que ces constantes sont en effet incorrects comme publiées dans le livre.

V1.02 (9 février 2004)
Remplacé tous les appels à la macro « INT » avec la fonction CAADate::INT qui est ce qu’ils auraient dû être. La seule classe touchée pour cela était CAAMoslemCalendar.
Fixe un certain nombre d’avertissements de niveau 4 dans la classe de CAAStellarMagnitudes lorsque le code est compilé en VC.Net 2003.

V1.03 (14 février 2004)
Correction d’un bug “moins zéro” dans la fonction
CAACoordinateTransformation::DMSToDegrees. Le signe de la valeur est désormais pris explicitement depuis le nouveau paramètre booléen bPositive. Merci à Patrick Wallace pour avoir signalé ce problème.

V1.04 (21 février 2004)
L’optique libration en longitude de la lune est maintenant de retour dans la gamme-180-180 degrés

V1.05 (22 février 2004)
Correction d’un bug dans le calcul du type phase à partir de la valeur de k en CAAMoonPhases::TruePhase.

V1.06 (22 février 2004)
Calcul des durées de semi pour éclipses dans CAAEclipses est maintenant calculé uniquement lorsque requis

27 avril 2004
Mise à jour mineure de la documentation décrivant les CAAElliptical::MeanMotionFromSemiMajorAxis

v1.07 (24 mai 2004)
Correction d’une instruction break manquant dans CAAElliptical::Calculate. Merci à Carsten A. Arnholm pour avoir signalé ce bug.
Correction d’un problème aussi avec le calcul de la distance apparente du soleil.

v1.08 (31 mai 2004)
Ajoute un coefficient manquant g_L1JupiterCoefficients arrau tel qu’utilisé par CAAJupiter::EclipticLongitude. Merci à Brian Orme pour avoir signalé ce problème.
Ajouté disparus [] g_B5JupiterCoefficients en CAAJupiter::EclipticLatitude. Encore une fois Merci à Brian Orme pour avoir signalé ce problème.
En CAASaturn::EclipticLongitude que le [g_L5SaturnCoefficients] n’ont pas été inclus. Merci à Brian Orme pour avoir signalé ce problème.
En CAASaturn::EclipticLatitude que le [g_B5SaturnCoefficients] n’ont pas été inclus. Merci à Brian Orme pour avoir signalé ce problème.
En CAASaturn::RadiusVector que le [g_R5SaturnCoefficients] n’ont pas été inclus. Merci à Brian Orme pour avoir signalé ce problème.

v1.09 (15 juin 2004)
Correction d’une faute dans le calcul de SunLongDash dans CAAPhysicalSun::Calculate. Merci à Brian Orme pour repérer ce problème.

6 septembre 2004
Mise à jour mineure à la documentation plus une vérification orthographique complet!!

6 septembre 2004
Mise à jour mineure de la documentation.

v1.10 (17 septembre 2004)
Fixe un certain nombre d’avertissements dans le code lorsqu’il est compilé dans l’option du compilateur VC .net 2003 avec la « forcer la conformité à pour la portée de la boucle » est défini.

v1.11 (15 octobre 2004)
bValid variable est maintenant correctement définie dans CAARiseTransitSet::Rise si les objets effectivement augmenter et définit.

v1.12 (10 novembre 2004)
Difficulté pour CAADate::Get pour qu’il fonctionne correctement pour les dates propalactive. L’implémentation de Meeus suppose automatiquement le calendrier grégorien est entré en vigueur le 15 octobre 1582 (JD: 2299161), alors que la mise en œuvre de la CAADate a une valeur de « m_bGregorianCalendar » de décider si la date a été spécifiée dans le grégorien ou Julian calendriers. Cette différence signifie en effet que CAADate soutient pleinement les versions propalactive des deux systèmes de calendrier. Ce problème a été découvert lors de l’essai le code calendrier musulman qui implique un aller-retour entre musulmans-> Julian-> calendriers grégoriens.

v1.13 (31 décembre 2004)
Difficulté pour CAAElliptical::MinorPlanetMagnitude où l’angle de phase a été incorrectement transformé de Radians en degrés quand il était déjà en degrés. Merci à Martin Burri pour avoir signalé ce problème.

v1.14 (21 janvier 2005)
Correction d’une erreur de petite mais importante dans la fonction PhaseAngle (r, R, Delta). Le code a été produisant des erreurs de domaine acos incorrects des résultats et des relances et floating point exceptions lors du calcul des angles de phase pour les planètes intérieures. Merci à MICHAEL R. MEYER pour avoir signalé ce problème.

v1.15 (30 janvier 2005)
Toute utilisation de BOOL a remplacé par bool pour aider à traverser la compatibilité du compilateur. Cela signifie également que toutes les occurrences de TRUE et FALSE sont respectivement remplacés avec true et false. Merci à Mika Heiskanen pour avoir signalé ce problème.
fichier d’en-tête cmath est maintenant utilisé au lieu de math.h. Aussi si maintenant ne pas utiliser le texte du message #pragma basé sur une définition qui est MS C spécifique. Encore Merci à Mika Heiskanen pour avoir signalé ce problème.
Utilise désormais asssert au lieu de l’assertion spécifique de MFC. Encore Merci à Mika Heiskanen pour avoir signalé ce problème.
Ajout d’un nouveau fichier d’en-tête global « AA + .h » qui vous permet d’inclure tout le cadre de AA + à travers un en-tête.
Code maintenant d’utiliser static_cast plutôt qu’effectue un cast de style C vieux. Encore Merci à Mika Heiskanen pour avoir signalé ce problème.
Optimisation du code en affirmer les de qui évitent les variables unitialized lors de build en mode release. Encore Merci à Mika Heiskanen pour avoir signalé ce problème.

v1.16 (31 janvier 2005)
Correction d’un bug dans CAAParabolic::Calculate où la valeur de JD est utilisée incorrectement dans la boucle. Merci à Mika Heiskanen pour avoir signalé ce problème.
Correction d’un avertissement de la GCC dans CAADynamicalTime::DeltaT. Merci à Mika Heiskanen pour avoir signalé ce problème.
Fixe une erreur de compilation GCC liée manquantes comprennent pour memset dans AAEclipses.cpp. Merci à Mika Heiskanen pour avoir signalé ce problème.

v1.17 (1er février 2005)
Correction d’un problème de respect de la casse (au moins sur les systèmes Unix) associés aux fichiers stdafx.h/cpp. Maintenant le nom de fichier est tout en minuscules. Merci à Mika Heiskanen pour avoir signalé ce problème.
Changer l’ordre des éléments dans le fichier stdafx.h pour que vous obteniez une compilation propre sur gcc. Merci à Mika Heiskanen pour avoir signalé ce problème.
Correction d’un problème avec la déclaration de la variable « Index » dans la fonction CAADynamicalTime::DeltaT. Merci à Mika Heiskanen pour avoir signalé ce problème.
Retirés utilisation des MFC exemple d’application qu’ils ne sont pas requis.
Verfied la construction du code sur GCC thro l’utilisation du port de GCC de Cygwin.

v1.18 (21 avril 2005)
Rebaptisé “AAAberation.cpp” à « AAAberration.cpp » afin que tous les noms de fichiers source code correspondent à leur fichier d’en-tête correspondant. Merci à J rgen Schuck pour avoir suggéré cette mise à jour.

v1.19 (13 mai 2005)
Difficulté pour CAADate::Set (double JD, bool bGregorianCalendar) ne pas de définir la variable de membre m_bGregorianCalendar correctement.

v1.20 (2 juin 2005)
Semble que la question de la distinction majuscules/minuscules fixée v1.17 n’était pas fixée, parce que j’ai oublié de mettre à jour les fichiers dans le téléchargement zip. Merci à Andrew Maclean pour avoir signalé ce problème.
Un fichier « CMakeLists.txt » est maintenant inclus dans le téléchargement. Ce fichier est utilisé par CMake (http://www.cmake.org/HTML/Index.html) qui est un générateur de makefile multi-plateforme. Cela permet le code AA + à facilement compiler sous Cygwin, Linux et les compilateurs MSVC habituels. Merci à Andrew Maclean pour cette belle addition.
Certaines fonctions dans la classe « CAACoordinateTransformation » ont été faites en ligne pour améliorer les performances.
Faites toutes les structures utilisées par les classes AA +. Il s’agit d’un mineur tidy question plus que tout. Également assurée que tous les membres de la classe sont initialisées aux valeurs par défaut sain d’esprit.

v1.21 (3 juin 2005)
Mise à jour mineure « CMakeLists.txt » fichier à corriger un problème de respect de la casse. Merci à Andrew Maclean pour avoir signalé ce problème.

v1.22 (5 juillet 2005)
Correction d’un bug pour s’assurer que les valeurs retournées par CAAEquationOfTime::Calculate ne retourne pas de discontinuités. Au contraire, elle retourne maintenant des valeurs négatives lorsque requis.

v1.23 (16 novembre 2005)
Correction d’une erreur de transcription dans le second coefficient utilisé pour calculer la longitude du mercure. Grâce à “Maurizio” pour avoir signalé ce bug.

1er mai 2006
Tout en testant la version 3.01 de DTime +, j’ai découvert quelques bugs dans la classe CAAMoslemCalendar. Essais spécifiquement certaines dates en créant une date musulmane, puis conversion d’une date de Julian et puis en convertissant vers le calendrier musulman a mis en évidence quelques dates qui ne sont pas cet essai aller-retour. Si vous êtes sérieux au sujet de développer pour le calendrier musulman, alors s’il vous plaît utiliser le soutien du calendrier musulman dans DTime + qui utilise un algorithme indépendant pour le calendrier musulman qui n’a pas ce problème. Je vais signaler ce problème à Jean Meeus et éventuellement avoir un correctif pour cela dans la prochaine mise à jour à AA +.

v1.24 (12 mai 2006)
Mise à jour de la documentation pour utiliser le même style que le site web.
Correction d’une erreur de transcription dans le troisième coefficient utilisé pour calculer le terme R0 pour le rayon-vecteur de mercure. Merci à John Kruso pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le troisième coefficient utilisé pour calculer le terme R1 pour le rayon-vecteur de mercure. Merci à John Kruso pour avoir signalé ce problème.
Mis à jour les détails du droit d’auteur.

18 mai 2006
Jean Meeus a confirmé qu’il y a certainement un bug dans les calendrier musulman des algorithmes qui composent la classe CAAMoslemCalendar. Il n’est pas l’auteur original de ces algorithmes, donc il n’a pu expliquer pourquoi ils ne parviennent pas à certaines dates. Tel que mentionné s’il vous plaît utiliser les classes DTime + pour éviter ce problème.

v1.25 (5 juin 2006)
Correction d’un bug dans CAAElliptical::Calculate (double JD, EllipticalObject objet) où la correction pour la nutation a été incorrectement en utilisant la moyenne obliquité de l’écliptique au lieu de la vraie valeur. Les résultats du programme de test d’accord maintenant beaucoup plus étroitement avec l’exemple que Meeus fournit et qui est la position de Vénus le 1992 20 décembre à 0h temps dynamiques. J’ai aussi vérifié les positions contre le site web de JPL Horizons et l’accord est beaucoup mieux. Parce que la vraie obliquité de l’écliptique est définie comme la moyenne obliquité de l’écliptique et la nutation en obliquité, il est relativement facile de déterminer l’ampleur de l’erreur, que c’était à l’origine. Dans le chapitre sur la Nutation dans le livre et plus précisément le tableau qui donne les coefficients de cosinus de nutation en obliquité, vous pouvez voir que l’erreur absolue de cas pire serait la somme des valeurs absolues de tous les coefficients et aurait été c. 10 secondes d’arc de degré, ce qui n’est pas une petite quantité!. Cette valeur serait le pire des cas un absolu et je m’attends la valeur de l’erreur moyenne être beaucoup beaucoup plus petite (probablement beaucoup moins qu’un arc second). En tout cas le bogue a maintenant été corrigé. Merci à Patrick Wong d’avoir signalé ce bug assez important.

23 octobre 2006
Mise à jour mineure de fixer quelques liens de marque livre incorrect dans la documentation.

v1.26 (29 novembre 2006)
Correction d’un bug où CAAEclipticalElements::Calculate et
CAAEclipticalElements::FK4B1950ToFK5J2000 retournerait la valeur incorrecte pour l’inclinaison réduite lorsque la valeur de l’inclinaison initiale était > 90 degrés.
Ajout d’un nouveau module appelé CAANearParabolic. Cette nouvelle classe fournit des fonctionnalités pour les orbites qui peut être le meilleur modélisé comme quasi parabolique, c’est-à-dire où l’excentricité est entre 0,98 et 1,02. Chapitre 35 du livre inclut le support pour le calcul des orbites près-parabolique, mais le code est fourni en BASIC et l’algorithme présenté a des problèmes de convergence lorsque l’excentricité est proche de 1. Au lieu de cela, les algorithmes utilisés dans ce nouveau module reposent sur les exemples dont Paul Schlyter a fourni à http://stjarnhimlen.se/comp/tutorial.html#16.

v1.27 (17 janvier 2007)
Mis à jour les détails du droit d’auteur.
Ajout d’une macro préprocesseur AAPLUS_EXT_CLASS permettent au code d’être plus facilement ajouté à une DLL d’extension. Merci à Mathieu Peyr ga pour avoir suggéré cette mise à jour.
Changé de nom de CAASun::ApparentEclipticLongtitude à CAASun::ApparentEclipticLongitude. Merci à Mathieu Peyr ga pour avoir signalé cette faute de frappe!.

v1.28 (25 janvier 2007)
Correction d’un problème de conformité mineur avec GCC dans le AACoordinateTransformation.h à voir avec la déclaration de méthodes différentes. Merci à Mathieu Peyr ga pour avoir signalé ce problème.

v1.29 (26 janvier 2007)
Après un rapport de bogue de Ing. Taras Kapuszczak qu’un aller-retour de la date du 25 janvier 100 comme spécifié dans le calendrier grégorien, le nombre de jour de Julian et puis retour produit encore une fois la date incorrecte 26 janvier 100, j’ai passé quelque temps à la recherche dans les 2 principaux algorithmes de Meeus Julian Day. Il semble que les algorithmes qui convertit à partir d’une date de calendrier à JD fonctionne ok pour propalactive date, mais l’algorithme inverse qui convertit une date du calendrier un JD n’est pas. Depuis que j’ai fait le changement de comportement à l’appui des dates du calendrier grégorien propalactive pour traiter des questions avec le calendrier musulman (et depuis lors, j’ai découvert encore non résolus bugs dans les algorithmes du calendrier musulman et a informé les personnes à consulter ma bibliothèque DTime + au lieu de cela), je suis maintenant revenir ces changements afin que les algorithmes de date sont maintenant présentées dans le livre de Meeus. Cela signifie que les dates postérieures au 15 octobre 1582 sont supposés pour être dans le calendrier grégorien et les dates avant sont supposés pour être dans le calendrier de Julian. Ce changement signifie aussi que certaines des méthodes classe CAADate ne nécessitent plus le paramètre de la défunte « bool » pour spécifier quel calendrier la date représente. Dans le cadre de l’essai pour cette version code de vérification a été ajouté à AATest.cpp pour tester toutes les dates de JD 0 (c’est-à-dire 1 janvier-4712) à une date de longtemps à l’avenir. J’espère que grâce à ce code de vérification, nous devrions ont non plus signalé des problèmes avec la classe CAADate. Encore une fois si vous préférez un cadre beaucoup plus solide et complet Date heure classe, n’oubliez pas de consulter la bibliothèque DTime + auteurs.
Code de constructeur CAADate optimisé
Fourni une version statique de la méthode CAADate::DaysInMonth()
Découvert un problème dans CAADate::JulianToGregorian. Il semble que l’algorithme présenté dans le livre pour faire la conversion de la Julian au calendrier grégorien échoue pour des dates de Julian avant la réforme du calendrier grégorien en 1582. J’ai envoyé un email à Jean Meeus pour savoir si c’est un bug dans mon code ou une carence dans l’algorithme présenté. Actuellement le code affirmera dans cette fonction si elle est appelée pour une date antérieure à la réforme grégorienne.
Changé de nom de CAAMoonIlluminatedFraction::IluminatedFraction à CAAMoonIlluminatedFraction::IlluminatedFraction. Grâce à Ing. Taras Kapuszczak pour avoir signalé cette faute de frappe!.

v1.30 (29 janvier 2007)
La version statique de la méthode CAADate::Set a été renommée en DateToJD pour éviter toute confusion avec les autres méthodes de définition. Grâce à Ing. Taras Kapuszczak pour avoir signalé ce problème.
La méthode CAADate::InGregorianCalendar a aussi été rebaptisée à la CAADate::AfterPapalReform plus approprié.
Le paramètre bGregorianCalendar a rétabli pour les constructeurs de CAADate et les méthodes Set.
Changé la disposition de paramètre pour la version statique de CAADate::DaysInMonth
Ajout d’une méthode CAADate::InGregorianCalendar.
Ajout d’une méthode CAADate::SetInGregorianCalendar.
Retravaillé d’implémentation de la méthode GregorianToJulian.
Retravaillé d’implémentation de la méthode JulianToGregorian.

v1.31 (26 juillet 2008)
Changé de nom de CAASun::EclipticRectangularCoordinatesMeanEquinox à CAASun::EquatorialRectangularCoordinatesMeanEquinox pour désigner le fait qu’elle retourne les coordonnées équatoriales au lieu de Coordonnées écliptiques. Merci à Frank Trautmann pour avoir signalé ce problème
Mis à jour les détails du droit d’auteur.
fichier zip est maintenant livré avec une solution de VC 2005 au lieu d’un fichier de solution 6 VC.
Maintenant, code compile proprement à l’aide de l’analyse du Code (/ analyze)

v1.32 (11 novembre 2008)
Correction d’un bug dans CAAElliptical::Calculate (double JD, const CAAEllipticalObjectElements & éléments) dans le calcul de l’héliocentrique rectangulaire essaim, la latitude héliocentrique essaim et les coordonnées de longitude essaim héliocentrique. Le code utilisé incorrectement la valeur “oméga” au lieu de “w” dans son calcul de la valeur “u”. Malheureusement, il n’y a aucun exemples dans le livre de Jean Meeus pour ces valeurs particulières, entraînant par conséquent mes erreurs de codage. Merci à Carsten A. Arnholm pour avoir signalé ce bug.

v1.33 (7 février 2009)
Fixe un apparemment copier et coller des bug dans CAAMoonPerigeeApogee::TruePerigee. La mise en page du code afin de cumuler la valeur « Sigma » était erronée. Les termes impliquant le T (p. ex. + 0,00019 * T, - 0.00013 * T etc. étaient ajoutant ces termes à l’argument du NAS incorrectement. Avec le bogue fixe l’exemple solutionné 50.a du livre donne : 2447442.3543003569 JDE ou 1988 le 7 octobre à 20:00 m: 11,5 secondes. Le code précédent buggy donnait la même valeur de 2447442.3543003569, mais ce serait le cas parce que T était une petite valeur dans l’exemple. Vous attendez l’erreur dans le calcul soit plus grand que la date s’écarte de l’époque 2000.0. Grâce à Neoklis Kyriazis pour avoir signalé ce bug.
Optimisé la disposition de la structure MoonCoefficient1 dans le module AAMoon.cpp en faisant tous les entiers d’éléments au lieu de doubles.
Optimisé la disposition de la structure PlutoCoefficient1 dans le module AAPluto.cpp en faisant tous les entiers d’éléments au lieu de doubles.
Mis à jour la version statique de CAADate::DaysInMonth pour compiler proprement à l’aide de l’analyse du code.
Mis à jour les détails du droit d’auteur.

v1.34 (12 février 2009)
Fixe un apparemment copier et coller des bug dans CAAMoon::EclipticLongitude. La mise en page du code pour calculer la valeur de « ThisSigma » était erronée. Les termes impliquant n’importe quelle valeur de M était en multipliant par E. C’était incorrecte, comme indiqué au bas de la page 338 de la deuxième édition du livre de Meeus. La logique correcte est de plusieurs termes seuls impliquent la M + 1 ou -1 M de E et de multiples toutes modalités qui supposaient 2 M ou -2 M par E * E. Avec le bogue fixe l’exemple solutionné 47.a du livre donne maintenant : 133.16726428105474 degrés. Il s’agit d’un résultat beaucoup plus proche de la valeur tel que rapporté dans le livre qui est 133.167265. Le code précédent buggy donnait la valeur de 133.16726382897039 degrés pour la Longitude apparente de lunes. L’erreur dans cet exemple est 0,001627 secondes d’arc d’un degré. Cette valeur d’erreur est bien dans la précision réelle signalée de 10 secondes d’arc pour le code, mais vous vous en doutez cette erreur augmenteront à mesure que l’excentricité de terres orbite augmente. Grâce à Neoklis Kyriazis pour avoir signalé ce bug.

v1.35 (16 mars 2009)
Correction d’un bug dans CAAParabolic::Calculate (double JD, const CAAParabolicObjectElements & éléments) dans le calcul de l’héliocentrique rectangulaire essaim, la latitude héliocentrique essaim et les coordonnées de longitude essaim héliocentrique. Le code utilisé incorrectement la valeur “oméga” au lieu de “w” dans son calcul de la valeur “u”. Malheureusement, il n’y a aucun exemples dans le livre de Jean Meeus pour ces valeurs particulières, entraînant par conséquent mes erreurs de codage. Merci à Jay Borseth pour avoir signalé ce bug.
Correction d’un bug dans CAANearParabolic::Calculate (double JD, const CAANearParabolicObjectElements & éléments) dans le calcul de l’héliocentrique rectangulaire essaim, la latitude héliocentrique essaim et les coordonnées de longitude essaim héliocentrique. Le code utilisé incorrectement la valeur “oméga” au lieu de “w” dans son calcul de la valeur “u”. Malheureusement, il n’y a aucun exemples dans le livre de Jean Meeus pour ces valeurs particulières, entraînant par conséquent mes erreurs de codage. Merci à Jay Borseth pour avoir signalé ce bug.

v1.36 (28 mars 2009)
Correction d’un bug dans CAARiseTransitSet::Rise où la nature cyclique d’une valeur de RA n’était pas prise en compte pendant l’interpolation. En fait Meeus dans le livre même qualifie cette question « Remarques importantes, 2. » à la page 30 de la deuxième édition. Essentiellement lorsque l’interpolation RA, nous devons faire attention que les 3 valeurs sont conformes à l’égard de l’autre lorsque l’un d’entre eux enroule autour de 23 H 59 M 59 s autour de 0 H 0 M 0 s. Dans ce cas, l’AR a augmenté de 0H 0M 1 s de RA au lieu de diminuer de 23 H 59 M 59 s. Merci à Corky Corcoran et Danny Flippo tant pour avoir signalé ce problème.
Correction d’un bug dans le calcul du paramètre « H » en CAARiseTransitSet::Rise lors du calcul de l’angle horaire local du corps pendant le temps de transit.

v1.37 (30 avril 2009)
Correction d’un bug où les valeurs de M dans CAARiseTransitSet::Rise n’étaient pas être contraint à entre 0 et 1. Merci à Matthew Yager pour avoir signalé ce problème.

v1. 38 (3 octobre 2009)
Fixe un gremlin copier et coller dans la méthode de CAAEarth::EclipticLatitude où il incorrectement utilisé les termes de coefficient de B2, B3 & B4 pour Vénus. En raison de comment ce bug est survenu, l’ampleur de l’erreur de lui augmenterait, car la date dévié de l’an 2000. Grâce à Isaac Salzman pour avoir signalé ce bug.

v1. 39 (24 novembre 2009)
Mise à jour de l’exemple d’application et la documentation pour mieux encadrer sur comment calculer les temps de la lune se lever, transit et définir. Grâce à Mehmet Rauf Geden pour avoir signalé ce bug.

v1.40 (30 décembre 2009)
Mise à jour de l’exemple d’application pour tirer dans cstdio au lieu de cstdio.h. Merci à Hugo Mildenberger pour avoir suggéré cette mise à jour.
Fixe un certain nombre d’avertissements du compilateur GCC AATest.cpp. Merci à Hugo Mildenberger pour avoir suggéré cette mise à jour.
Le fichier de CMake « CMakeLists.txt » inclus dans le téléchargement a été actualisé pour fonctionner correctement sur Gentoo Linux. Encore une fois Merci à Hugo Mildenberger pour cette mise à jour.

v1.41 (10 mai 2010)
Mis à jour les détails du droit d’auteur.
Mise à jour mineure CAAPhysicalMoon::CalculateTopocentric d’insérer une valeur dans une variable pour le débogage plus facile
Répara les avertissements variables inutilisées dans AATest.cpp
Fautes d’orthographe fixe en AATest.cpp pour « Palomor Observatoire »
La valeur de CAAEllipticalObjectDetails::AstrometricGeocenticRA est maintenant connue comme AstrometricGeocentricRA. Grâce à Scott Marley pour avoir signalé cette faute d’orthographe
La valeur de CAANearParabolicObjectDetails::AstrometricGeocenticRA est maintenant connue comme AstrometricGeocentricRA. Grâce à Scott Marley pour avoir signalé cette faute d’orthographe
Retiré le paramètre inutilisé du Delta de la méthode CAANutation::NutationInDeclination. Merci à Thomas Meyer pour avoir signalé ce problème.

v1.42 (21 mai 2010)
Correction fautes d’orthographe dans AATest.cpp pour « Observatoire du Mont Palomar ». Merci à Paul Leighton pour avoir signalé le fait que le changement pour v1.41 était encore mal orthographié.

v1.43 (3 juillet 2010)
Correction d’un bug dans la table g_MoonPerigeeApogeeCoefficients3. Le “+ 0,013 * cos (4D - 2F)” était une utilisation incorrecte des terme “+ 0,013 * cos (4D - 20F)”. L’erreur dans la distance lunaire à cause de cette erreur de codage est de l’ordre de 1 à 2 KM. Merci à Thomas Meyer pour avoir signalé ce bug.
Correction d’un bug dans la table g_MoonPerigeeApogeeCoefficients1. Le terme de « J + 2M-0,0010 » utilisait incorrectement « D + 2M-0,0011 ». Merci à Thomas Meyer pour avoir signalé ce bug.

v1.44 (4 juillet 2010)
Correction de diverses erreurs et avertissements du compilateur lorsque le code est compilé à l’aide de C++ Builder. Merci à Neil Bingham pour avoir signalé ces problèmes.
Paramètre inutile de « Longitude » retirés de la méthode CAAParallax::Ecliptic2Topocentric.

v1.45 (26 novembre 2010)
CAARefraction::RefractionFromApparent retourne maintenant une valeur de réfraction constant pour toutes les altitudes inférieures à une certaine limite. Merci à mehrzad khoddam pour demander cette mise à jour.
CAARefraction::RefractionFromTrue retourne maintenant une valeur de réfraction constant pour toutes les altitudes inférieures à une certaine limite. Merci à mehrzad khoddam pour demander cette mise à jour.

v1.46 (8 mai 2011)
Mis à jour les détails du droit d’auteur.
Correction d’un problème de compilation sur GCC où size_t est indéfini dans diverses méthodes. Merci à Carsten A. Arnholm et Andrew Hammond pour avoir signalé ce bug.
Mise à jour de la méthode CAARiseTransitSet::Rise pour retourner les informations d’objet circumpolaire, plutôt que de retourner bValid = false pour ce type d’objet. Dans le cas d’un objet circumpolaire, l’objet ne pas augmenter ou définir le jour en question, mais bien sûr transit à un moment précis. Cette modification signifie que vous n’avez pas besoin de rappeler la méthode avec une valeur de déclinaison pour obtenir le temps de transit. En outre si un objet jamais se lève ou définit, la méthode toujours retourne le temps de transit même s’il se produit au-dessous de l’horizon en définissant la valeur bTransitAboveHorizon à false. Notez que cela signifie que la valeur de « Transit » maintenant inclut toujours une valeur valide. Aussi, la méthode a été renommée à calculer. Merci à Andrew Hood pour demander cette mise à jour
Correction d’un bug dans CAAGalileanMoons::CalculateHelper où les termes périodiques en longitude pour les quatre satellites (Sigma1 à Sigma4) n’étaient pas étant converti en radians avant certains calculs trigonométriques. Merci à Thomas Meyer pour avoir signalé ce bug.

v1.47 (10 septembre 2011)
Correction d’un bug dans le calcul de la variable locale « F », qui représente l’argument de la lune de latitude dans la méthode CAAMoonPhases::TruePhase. Merci à Andrew Hammond pour avoir signalé ce bug.

v1.48 (18 mars 2012)
Mis à jour les détails du droit d’auteur.
Tous les tableaux « g_ * » global sont maintenant const. grâce à Roger Dahl pour avoir signalé ce problème lors de la compilation AA + sur les bras.

v1.49 (1er mai 2012)
Mise à jour CAADynamicalTime::DeltaT pour utiliser des expressions de polynomical nouvelles de Espenak & Meeus 2006. Références utilisées :
http://eclipse.gsfc.nasa.gov/SEcat5/deltatpoly.html et http://www.staff.science.uu.nl/~gent0113/deltat/deltat_old.htm (section Espenak & Meeus 2006). Merci à Murphy Chesney pour demander cette mise à jour.

v1.50 (2 mai 2012)
Afin d’améliorer la précision de la méthode CAADynamicalTime::DeltaT, le code utilise maintenant une table de correspondance entre les dates du 1er février 1973 au 1er avril 2012 (pour les valeurs observées) et les valeurs prédites d’avril 2012 à avril 2015. Ces valeurs sont celles fournies par l’IERS rapide Service/Prediction Center à http://maia.usno.navy.mil/ser7/deltat.data et http://maia.usno.navy.mil/ser7/deltat.preds. Cette table de recherche devront bien sûr être mis à jour comme IERS mettre à jour ces informations. Comme actuellement codé il y a une discontinuité unique de c. une seconde en début avril 2015. À ce stade http://maia.usno.navy.mil/ser7/deltat.preds indique une valeur d’erreur pour DeltaT d’environ 0,9 secondes en tout cas.
Un nouveau CAADynamicalTime::CumulativeLeapSeconds a été fourni. Cette méthode prend en entrée la valeur de Julian Day et retourne le nombre total de secondes intercalaires, qui ont été appliqués à ce point. Pour plus d’informations sur les secondes intercalaires, veuillez consulter http://en.wikipedia.org/wiki/Leap_second. En utilisant cette méthode, que vous pouvez maintenant implémenter le code qui convertit de l’heure de terrestres au temps universel coordonné comme suit :

double TerrestialTime = certains de calcul à l’aide de AA + algorithms(JD) ;
double DeltaT = CAADynamicalTime::DeltaT(JD) ;
double UniversalTime1 = TerrestialTime - DeltaT/86400.0 ; L’heure de l’événement à l’aide de l’échelle de temps UT1
double TerrestialAtomicTime = TerrestialTime - (32.184/86400.0) ; L’heure de l’événement à l’aide de la TAI time scale
double CumulativeLeapSeconds = CAADynamicalTime::CumulativeLeapSeconds(JD) ;
double CoordinatedUniversalTime = (DeltaT - CumulativeLeapSeconds - 32.184)/86400.0 + UniversalTime1 ; L’heure de l’événement à l’aide de l’échelle de temps UTC

v1.51 (5 mai 2012)
Mise à jour de l’exemple d’application pour imprimer le transit de montée et de programmer des horaires pour la lune et de soleil, mais aussi un graphique ASCII de la phase de lune pour le mois d’avril 2012 pour l’emplacement de Wexford, Irlande. Merci à Roger Dahl pour offrir cette belle addition à AA +.

v1.52 (12 octobre 2012)
Refactoriser le code dans CAARiseTransitSet::Calculate.
Commentaires ajoutés à la documentation de CAARiseTransitSet::Calculate sur le potentiel pour le retour des fois en dehors de la date de l’UTC a demandé. Merci à Rob Phillips pour avoir signalé ce problème.

v1.53 (13 octobre 2012)
Mise à jour de l’exemple d’application pour afficher l’élévation, de transit et de définir détails pour la lune et du soleil au pôle Nord pour 31 octobre 2012. Cela montre que le soleil ne relever ni définir ce jour-là et transite au-dessous de l’horizon à 11:43:36 UTC et la lune fait aussi pas lieu ou ensemble et transits au-dessus de l’horizon à 00:35:12 UTC. Merci à Michael Iverson pour demander cette vérification.
Nécessité enlevée pour classe std::string du module AATest.cpp.
Correction d’une petite faute de frappe dans les commentaires de l’histoire de AARiseTransitSet.cpp. Merci à Michael Iverson pour avoir signalé ce problème.
Correction d’une faute dans l’orthographe du Coefficient dans le module AADynamicalTime.cpp. Merci à Michael Iverson pour avoir signalé ce problème.

v1.54 (27 octobre 2012)
Correction d’un bug d’initialisation de tampon dans la fonction PrintMoonPhase dans AAAtest.cpp. Cela a été traduit par les diagrammes de ASCII de phase de lune à n’affichent ne pas correctement sur des terminaux Unix.
J’ai maintenant une installation de Ubuntu 12.10 VM qui permet au code d’être complètement testé sur un système d’exploitation Unix à aller de l’avant. J’utilise l’IDE Code::Blocks pour offrir une expérience de développement familier pour ce vétéran de Visual Studio !
Correction d’un bug de transcription en
CAAElementsPlanetaryOrbit::SaturnLongitudePerihelion. Multipliant par T le coefficient correct aurait dû être 1.9637613 au lieu de 1.19637613. Dans l’exemple de 31.a du livre de Meeus, il utilise la date 24 juin 2065. Avec ce bug maintenant éliminé la valeur retournée est maintenant 94,34 degrés au lieu de 93,84 degrés pour cette date. Fondamentalement le coefficient incorrect aurait retourné une valeur trop petite de 0,77 degrés pour chaque siècle de Julian après l’époque J2000.0 = janvier 2000 1.5 TD = JDE 2451545.0. Merci à Sudhakar Gumparthi pour avoir signalé ce bug.

v1.55 (4 août 2013)
Mis à jour les détails du droit d’auteur
Mis à jour les valeurs observées de DeltaT de http://maia.usno.navy.mil/ser7/deltat.data au 1er avril 2013
Mis à jour les valeurs prédites de DeltaT de http://maia.usno.navy.mil/ser7/deltat.preds au 1er janvier 2023
Correction d’une erreur de transcription dans le troisième coefficient utilisé pour calculer le terme de L0 pour la longitude écliptique du mercure. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le cinquième coefficient utilisé pour calculer le terme de L2 pour la longitude écliptique du mercure. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le second coefficient utilisé pour calculer le terme L4 pour la longitude écliptique du mercure. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le neuvième coefficient utilisé pour calculer le terme B0 pour la latitude écliptique de mercure.
Gâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le troisième coefficient utilisé pour calculer le terme B0 pour la latitude écliptique de Vénus. Grâce à Isaac Clark pour avoir signalé ce problème. Spots tests indiquent que cette modification a seulement affecté la latitude écliptique dans la sixième décimale.
Correction d’une erreur de transcription dans le vingt et unième coefficient permettant de calculer le terme de L0 pour la longitude écliptique de la terre. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le seizième coefficient utilisé pour calculer le terme de L1 pour la longitude écliptique de la terre. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le second coefficient utilisé pour calculer le terme B2 pour la latitude écliptique de Mars. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le troisième coefficient utilisé pour calculer le terme B2 pour la latitude écliptique de Mars. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans la trente neuvième coefficient utilisé pour calculer le terme de L0 pour la longitude écliptique de Jupiter. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le seizième coefficient utilisé pour calculer le terme R1 pour l’écliptique rayon-vecteur de Jupiter. Grâce à Isaac Clark pour avoir signalé ce problème.
Correction d’une erreur de transcription dans le vingt neuvième coefficient permettant de calculer le terme B2 pour la latitude écliptique de Saturne. Grâce à Isaac Clark pour avoir signalé ce problème. Spots tests indiquent que cette modification a seulement affecté la latitude écliptique dans la douzième décimale.
Correction d’une erreur de transcription dans le second coefficient utilisé pour calculer le terme B0 pour la latitude écliptique de Neptune. Grâce à Isaac Clark pour avoir signalé ce problème. Spots tests indiquent que cette modification a seulement affecté la latitude écliptique dans la sixième décimale.

v1.56 (8 septembre 2013)
Correction d’un bug dans le calcul de HeliocentricEclipticLongitude et HeliocentricEclipticLatitude en CAAParabolic::Calculate. Merci à Joe Novak pour avoir signalé ce problème.
Correction d’un bug dans le calcul de HeliocentricEclipticLongitude et HeliocentricEclipticLatitude en CAANearParabolic::Calculate. Merci à Joe Novak pour avoir signalé ce problème.

v1.57 (28 octobre 2013)
Renommé NorthwardEquinox pour éviter le biais de l’hémisphère Nord dans le nom de la méthode CAAEquinoxesAndSolstices::SpringEquinox. Merci à Marius Gleeson pour demander cette mise à jour.
Renommé SouthwardEquinox pour éviter le biais de l’hémisphère Nord dans le nom de la méthode CAAEquinoxesAndSolstices::AutumnEquinox. Merci à Marius Gleeson pour demander cette mise à jour.
Renommé NorthernSolstice pour éviter le biais de l’hémisphère Nord dans le nom de la méthode CAAEquinoxesAndSolstices::SummerSolstice. Merci à Marius Gleeson pour demander cette mise à jour.
Renommé SouthernSolstice pour éviter le biais de l’hémisphère Nord dans le nom de la méthode CAAEquinoxesAndSolstices::WinterSolstice. Merci à Marius Gleeson pour demander cette mise à jour.
La méthode CAAEquinoxesAndSolstices::LengthOfSpring prend maintenant une valeur booléenne pour indiquer quel hémisphère l’observateur se trouve dans. Le code prévu un biais de l’hémisphère Nord. Merci à Marius Gleeson pour demander cette mise à jour.
La méthode CAAEquinoxesAndSolstices::LengthOfSummer prend maintenant une valeur booléenne pour indiquer quel hémisphère l’observateur se trouve dans. Le code prévu un biais de l’hémisphère Nord. Merci à Marius Gleeson pour demander cette mise à jour.
La méthode CAAEquinoxesAndSolstices::LengthOfAutumn prend maintenant une valeur booléenne pour indiquer quel hémisphère l’observateur se trouve dans. Le code prévu un biais de l’hémisphère Nord. Merci à Marius Gleeson pour demander cette mise à jour.
La méthode CAAEquinoxesAndSolstices::LengthOfWinter prend maintenant une valeur booléenne pour indiquer quel hémisphère l’observateur se trouve dans. Le code prévu un biais de l’hémisphère Nord. Merci à Marius Gleeson pour demander cette mise à jour.
Mise à jour de l’exemple d’application pour imprimer une table d’information relie aux équinoxes et Solstices.
Ajout d’une méthode CAADynamicalTime::TT2UTC qui convertit de TT en heure UTC.
Ajout d’une méthode CAADynamicalTime::UTC2TT qui convertit à l’heure UTC en TT.
Ajout d’une méthode CAADynamicalTime::TT2TAI qui se transforme de TT TAI.
Ajout d’une méthode CAADynamicalTime::TAI2TT qui se transforme de TAI TT.
Ajout d’une méthode CAADynamicalTime::TT2UT1 qui se transforme de TT UT1.
Ajout d’une méthode CAADynamicalTime::UT12TT qui convertit d’UT1 en TT.
Mis à jour les valeurs observées de DeltaT de http://maia.usno.navy.mil/ser7/deltat.data au 1er septembre 2013.
Ajout d’une méthode CAADynamicalTime::UT1MinusUTC qui retourne UT1 - UTC.
Fixe un certain nombre d’avertissements du compilateur GCC AATest.cpp.

v1.58 (12 novembre 2014)
Mis à jour les détails du droit d’auteur.
Fixe deux bugs de transcription dans la méthode CAAPrecession::PrecessEquatorial. Le “0.000344 * T” terme a été incorrectement à l’aide “0.0000344 * T » lors du calcul“sigma”et le” 0.000139 * Tsquared “terme a été incorrectement à l’aide” 0.000138 * Tsquared “lors du calcul“zeta”. Grâce à Erik Grosse pour avoir signalé ce bug. Les erreurs étaient si petites que les valeurs de l’exemple de 21.b tiré du livre fini par donner les mêmes résultats. Si un timespan plus longs a été utilisé pour l’exemple au lieu des 28 ans puis les erreurs auraient été plus faciles à repérer avec les termes incorrects.
Mis à jour les valeurs observées de DeltaT de http://maia.usno.navy.mil/ser7/deltat.data au 1er octobre 2014.
Mis à jour les valeurs prédites de DeltaT de http://maia.usno.navy.mil/ser7/deltat.preds au 1er janvier 2024.

v1.59 (15 février 2015)
Mis à jour les détails du droit d’auteur.
Mis à jour les valeurs observées de DeltaT de http://maia.usno.navy.mil/ser7/deltat.data au 1er janvier 2015
Mis à jour les valeurs prédites de DeltaT de http://maia.usno.navy.mil/ser7/deltat.preds au 1er janvier 2024
Mis à jour le tableau de CumulativeLeapSeconds de http://maia.usno.navy.mil/ser7/tai-utc.dat au 1er juillet 2015

v1.60 (29 mars 2015)
Mis à jour les détails du droit d’auteur.
Mises à jour de la documentation html pour clarifier les unités utilisées dans certaines des méthodes CAACoordinateTransaction. Grâce à “Forrest” d’avoir signalé ces problèmes.
Répara quelques initialisations variables autour de l’utilisation de modf. Merci à Arnaud Cueille pour avoir signalé ce problème.