[Kstars-devel] Aberration for planets

James Bowlin bowlin at mindspring.com
Sun Nov 20 06:03:17 CET 2005


I poked around a little.  There might be existing code that already
takes care of this.  If so, doing it again would be a mistake.  The
code I found was in ksplanets.cpp.  

Inside of KSPlanet::findGeocentricPosition() is a loop that iterates to 
refine its estimate of (I assume) Geocentric Position.  The loop includes
the following code:

   //distance from Earth
   dst = sqrt(x*x + y*y + z*z);

   double delay = (.0057755183 * dst) / 365250.0;

   jm = num->julianMillenia() - delay;

The value of jm is used in a call near the top of the loop to 
calcEcliptic(jm, trialpos).

I don't claim to fully understand the above but it looks like "delay"
is calculating the time it takes for light to get from the planet to
Earth and this delay is considered when re-calculating the position
of the planet.  If so, then this calculation takes care of the aberration 
due to the motion of the non-Earth planets.

The only thing I am uncertain about is the constant 0.0057755183.
But it also appears in jupitermoons.cpp with a comment that says
the light-travel delay time is being calculated.  So I am now fairly 
certain that the aberration due to the motion of the planets (and 
Jupiter's moons) is already taken care of.

The iterative solution in the code can be very precise.  It can be
approximated by computing an aberration of -v_perp / c, where v_perp
is the planet's velocity perpendicular to the direction of Earth and
c is the speed of light.


PS:  I am slowly working on adding missing star names to hip001.dat
from the Sky Atlas 2000.0.


--
James Bowlin


On Saturday 19 November 2005 03:48 pm, Bernard GODARD wrote:
>
> From the code, it seems the computation of the aberration of light
> doesn't take into account the speed of the source of light, only that
> of the observer. It is OK for stars, because stars are assumed to have
> a constant (both in magnitude and orientation) velocity relative to
> "inertial" space, but it is not the case for the planets.  I may be
> wrong but shouldn't the aberration take into account the velocity of
> the Earth relative to the planet, not that of the earth relative to
> the sun? In that case the aberrate() method should be overloaded in
> the KSPlanet class (and for most of the solar system bodies like
> asteroids).


More information about the Kstars-devel mailing list