Welcome to the NavList Message Boards.


A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding

Compose Your Message

Add Images & Files
    Re: Unexpected USNO height correction precepts
    From: Paul Hirose
    Date: 2018 Dec 20, 13:44 -0800

    On 2018-12-18 12:45, Mehmet Guzey wrote:
    > Could you please help me on howto find the azimuth correction to be applied 
    to venus phase correction value and what other steps, if any, to follow for 
    general venus phase correction procedure?
    The next version of my Lunar program (in test, to be released early next
    year) has a general solution for the center of light correction. This C#
    source code is tested and returns the correct result. It requires my
    SofaJpl astronomy DLL:
    Input data are heliocentric and topocentric vectors to the body, and a
    topocentric vector to the Sun. All vectors must be in the same
    coordinate system. (The topocentric vectors can be geocentric if you
    want a geocentric result.)
    Output is a vector to the center of light. This is identical to the
    center of the body if the body is a star or the Sun.
         /// Get the center of light of a body.
         /// the body to adjust
         /// topocentric or geocentric vector to
         /// heliocentric vector to body
         /// topocentric or geocentric vector to
         /// vector to center of light
         /// Has no effect if the body is a star or the Sun. All
    vectors must be in the
         /// same coordinate system, such as the ICRS.
         private static SofaJpl.Vector centerOfLight(SofaJpl.Body body,
    SofaJpl.Vector bodyVec,
         SofaJpl.Vector helioVec, SofaJpl.Vector sunVec) {
             if (!body.IsSolarSystemBody || body.IsSun)
                 return bodyVec;
             // Phase angle, position angle, semidiameter.
             double phaseAngle = bodyVec.SeparationAngle(helioVec);
             double positionAngle = bodyVec.PositionAngle(sunVec);
             double sd = SofaJpl.Angle.Semidiameter(bodyVec.Modulus(),
             // Center of light.
             double sinHalfPhi = Math.Sin(phaseAngle / 2.0);
             // Formula for offset derived by George Huxtable.
             double offset = 8.0 / (3.0 * Math.PI) * sinHalfPhi * sinHalfPhi
    * sd;
             return new SofaJpl.Vector(bodyVec, positionAngle, offset);

    Browse Files

    Drop Files


    What is NavList?

    Join NavList

    (please, no nicknames or handles)
    Do you want to receive all group messages by email?
    Yes No

    You can also join by posting. Your first on-topic post automatically makes you a member.

    Posting Code

    Enter the email address associated with your NavList messages. Your posting code will be emailed to you immediately.

    Email Settings

    Posting Code:

    Custom Index

    Start date: (yyyymm dd)
    End date: (yyyymm dd)

    Visit this site
    Visit this site
    Visit this site
    Visit this site
    Visit this site
    Visit this site