Gracias por tus felicitaciones y, sobre todo, por recordarme que tenía por ahí un programilla a medio hacer. Te envío algo que he encontrado por ahí sobre las efemérides solares. Acabaré haciendo un artículo sobre ello, pero hasta entonces creo que con eso te servirá. Infórmame sobre cómo van los progresos con tu programa. Un saludo, Anselmo

back to "Positional Astronomy"   "Sun, Moon & Earth Applet"

Astronomical Algorithms

The motions of Earth and planets are usually computed in ecliptic coordinates, based on the plane of the ecliptic. The position of an object is defined by the ecliptic latitude (=0 for the sun), the ecliptic longitude, and the distance.

The figure represents the elliptical orbit of a body K, the Sun situated in the focus S:

We consider a fictitious body K' describing a circular orbit around S with constant velocity, with the same period as the real body K, and situated at P' at the instance when the real body is at the perihelion P. The angle PSK' is called mean anomaly M, increasing linearly with time. The problem consists in finding the true anomaly (angle PSK) at a given instant, when the mean anomaly M and the eccentricity of the ellipse are known.


Julian Day (valid from 1900/3/1 to 2100/2/28)

Julian day: 86400 s, Julian year: 365.25 d, Julian Century: 36525 d

double JulianDay (int date, int month, int year, double UT)
{

if (month<=2) {month=month+12; year=year-1;}
return (int)(365.25*year) + (int)(30.6001*(month+1)) - 15 + 1720996.5 + date + UT/24.0;

}


Solar Coordinates (according to: Jean Meeus: Astronomical Algorithms), accuracy of 0.01 degree

k = 2*PI/360;

M = 357.52910 + 35999.05030*T - 0.0001559*T*T - 0.00000048*T*T*T; // mean anomaly, degree

L0 = 280.46645 + 36000.76983*T + 0.0003032*T*T; // mean longitude, degree

DL = (1.914600 - 0.004817*T - 0.000014*T*T)*sin(k*M)
+ (0.019993 - 0.000101*T)*sin(k*2*M) + 0.000290*sin(k*3*M);

L = L0 + DL; // true longitude, degree


convert ecliptic longitude L to right ascension RA and declination delta

X = cos(L); Y = cos(eps)*sin(L); Z = sin(eps)*sin(L); R = Math.sqrt(1.0-Z*Z);

eps = 23.43999; // obliquity of ecliptic

delta = (180/PI)*arctan(Z/R); // in degrees

RA = (24/PI)*arctan(Y/(X+R)); // in hours


compute sidereal time at Greenwich (according to: Jean Meeus: Astronomical Algorithms)

T = (JD - 2451545.0 ) / 36525;

theta0 = 280.46061837 + 360.98564736629*(JD-2451545.0) + 0.000387933*T*T - T*T*T/38710000.0;


convert tau, delta to horizon coordinates of the observer (altitude h, azimuth az)

sin h = sin beta   sin delta   + cos beta   cos delta   cos tau

tan az = (- sin tau) / (cos beta   tan delta   -   sin beta   cos tau)


Home    back to "Positional Astronomy"   "Sun, Moon & Earth Applet"

Last update: 11/01/2001

Attachment converted: Macintosh HD:anomaly.gif (GIFf/JVWR) (0007D7C1)

Reply via email to