From: Andres Ruiz (no email)
Date: Thu Aug 21 2003 - 10:46:37 EDT
The Sun, approximate coordinates: (RA, Dec)
Sun's right ascension and declination
// D: the number of days and fraction (+ or -) from the epoch referred
to as J2000.0,
// which is 2000 January 1.5, Julian date 2451545.0:
// JD: the Julian date
day = day + (hour+min/60.0+sec/3600.0)/24.0;
JD = JulianDate( day, month, year );
D = JD-2451545.0;
// all the constants (therefore g, q, and L) are in degrees.
g = 357.529+0.98560028*D;
q = 280.459+0.98564736*D;
// L: approximation to the Sun's geocentric apparent ecliptic longitude
(adjusted for aberration).
L = q+1.915*SIN( g )+ 0.020* SIN( 2.0*g );
// Reduce g, q, and L to the range 0º to 360º
g = ang_0_360( g );
q = ang_0_360( q );
L = ang_0_360( L );
// Sun's ecliptic latitude, b, can be approximated by
b = 0.0;
// The distance of the Sun from the Earth, R, in astronomical units (AU)
R = 1.00014-0.01671*COS( g )-0.00014*COS( 2.0*g );
// mean obliquity of the ecliptic, in degrees:
e = 23.439-0.00000036*D;
// right ascension in degrees
// RA is always in the same quadrant as L.
// RA = ATAN( COS( e )*SIN( L )/COS( L ) );
// the proper quadrant will be obtained.
RA = ATAN2( COS( e )*SIN( L ), COS( L ) );
// right ascension in hours
RA = RA/15.0;
// Reduced to the range 0h to 24h
RA = time_0_24( RA );
// declination
Dec = ASIN( SIN( e )*SIN( L ) );
// The Equation of Time, apparent solar time minus mean solar time
// Eqt and RA are in hours and q is in degrees.
EqT = q/15.0 - RA;
// angular semidiameter of the Sun in degrees
SD = 0.2666/R;
See at: http://www.geocities.com/andresruizgonzalez/
More accurate algorithm: Astronomical Algorithms. by Jean Meeus, 2 Ed
edition (December 1998). ISBN: 0943396638
|