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: POL and arctan2
    From: George Huxtable
    Date: 2005 Nov 4, 12:05 -0000

    ----- Original Message -----
    From: "Bill" 
    Sent: Thursday, November 03, 2005 1:39 AM
    Subject: [NAV-L] POL and arctan2
    > Thanks to George et al for working me through the similarities/differences
    > of two tangent-based azimuth formulas.
    > That, and the methods HO229 use to create the tables being digested,
    > George's post offered another calculator method of determining azimuth
    > that
    > has stayed under the list radar.
    > George wrote:
    > "If a calculator or computer offers a POL or arctan2 function then you
    > don't
    > even need to apply those rules; the azimuth comes out straightaway in its
    > correct quadrant, from 0 to 360.
    > For example, the correct angle results from applying-
    > POL((tan dec cos lat - cos (hour angle)sin lat, -sin (hour angle)).
    > Before applying this formula, however, check whether the term before the
    > comma and the term after the comma do not both happen to be zero. If they
    > do, the angle is indeterminate, and an error may result."
    > George
    > These terms are new to me.  I wonder if they might be the same as or
    > similar
    > to the rectangular-to-polar and polar-to-rectangular functions on my
    > TI-30XA?  With the TI-30XA, I enter two figures and get two back.
    Presumably yes, though I'm unfamiliar with TI calculators.
    > With those functions I can convert difference in Lat 1 and Lat 2, and Lon
    > 1
    > and Lon 2 to miles, and properly signed, it will give me course and
    > distance
    > for short trips (under 300 nm) plenty good enough for a sailing vessel. As
    > you stated, no rules need to be applied to the course value--unless it is
    > negative,  then add 360.  The only trick is to enter latitude as the x
    > value
    > and longitude as the y value to account for the differences in cardinal
    > vs.
    > trig coordinate systems.  Also can enter course and distance and calculate
    > Lat and Lon differences from departure point.
    Yes; the "properly signed" part is important. And for short distances, such
    a flat-Earth approximation is good enough.
    > If POL and arctan2 are the same as my P to R and  R to P functions, would
    > you please go into a bit more detail on how to use them with your method?
    > I
    > am also confused by the "," after sin lat in your formula.
    What you are doing when you use the POL function and the arctan2 (which is
    usually stated as atan2 or atn2) is to enter two quantities, and that comma
    separates them. Before the comma is the y-value, or northing, and after it
    is the x-value, or Easting, both in miles, of the destination from the
    departure point. That's similar to what you are doing with your TI
    calculator. The old HP21 calculator (mine still works, after 30 years!) does
    something similar , using a button marked with a right-arrow and P. In each
    case, what you do is to put Northing and Easting into the x and y registers,
    and the contents of those registers get replaced with the distance d and the
    angle A.
    What they are doing is converting from rectangular to polar coordinates. The
    conventional way of representing this is best shown if you draw a little
    diagram. From an origin point draw a horizontal line to the right, and mark
    that the x axis. Mark on it a point 3 units (inches, say) from the origin
    and draw a line upwards from it. Draw another line vertically upward from
    the origin (that's the y axis)  mark a point 1 inch up from the origin, and
    draw a line to the right.. The two lines cross at a point (x = 3, y = 1),
    which we can name P.
    What I've described above is called "Cartesian coordinates", named after the
    French philosopher Descartes. Anyone who has drawn a graph will be familiar
    with Cartesian coordinates.
    Now draw a straight line between that point (3,1) and the origin. The length
    of that line (by Pythagoras) is the square root of (x squared + y squared).
    Call that R, which equals 3.162 inches in this case. And the angle A (often
    named "theta", but A is easier in ASCII text) is arctan (y/x), from the
    definition of a tangent).
    So A = arctan (1/3), or 18.4 degrees, measured anticlockwise from the x
    axis. R and A are the polar coordinates of the point, in distance and angle
    from the origin, of which the rectangular coordinates were x and y. They are
    just two different ways of defining the positions of points in a plane. Most
    scientific calculators and computing programs have a way to make it easy to
    convert from one to the other.
    There's a snag, though. X and Y can each take negative values, on the
    opposite side of the origin.Compare our point P, at (3,1) rectangular, or
    (3.162, 18.4 deg) polar, with another point exactly opposite across the
    origin, at x=-3, y=-1. Now our polar conversion, if it worked exactly as
    described above, would calculate the correct value for R, for that new
    However, if it relied on calculating A from arctan (y/x), it would get
    exactly the same result, 18.4 deg, as before, because (y/x) is exactly the
    same when y=1, x=3, as when y=-1,  x=-3. That's the same as saying that the
    tan of an angle repeats twice as you go right round a circle, and if you add
    180 degrees to an angle its tan is unaltered. So, just knowing the tan, you
    can't be sure which of two possible angles is returned by arctan (y/x). A
    calculator or computer will return an angle between -90 deg, through zero,
    to +90 deg. If the angle is between +90, through 180, to +270 (same as -90),
    there's no way of telling, just knowing its tan.
    The polar conversion is clever enough, not just to divide x by y to get
    arctan (y/x), but to note the signs of x and y, and to put the angle A into
    the right quadrant (0 to 360 measured anticlockwise from the x axis)
    accordingly. It's written arctan2 (x,y) or POL (x,y)
    Sorry about all that excruciating detail, which I'm sure is quite
    unnecessary for most readers. It's for the others.
    Well, that's the "conventional" way to measure the angle A, and it's what
    all the polar conversion functions do. But you can see that the conventional
    angle A differs greatly from the azimuth that we use for bearings at sea,
    which is measured clockwise from North, not anticlockwise from East. We can
    put that right by interchanging the x and y coordinates, so that the
    expression for the true azimuth becomes arctan (x/y) or, to get it into the
    range 0 to 360 deg,  arctan2 (y,x) or POL (y,x). That's probably what Bill's
    polar function on his TI gives him if he enters Northing and Easting for his
    flat-Earth calculation.
    Now lets see how all that affects the round-Earth spherical-trig formula for
    azimuth which we discussed earlier. It applies to any observation, or
    great-circle track, around the Earth, not just for short distances like the
    formula Bill has used, and it would be exact if the Earth was a perfect
    sphere (which it isn't, quite, but near enough for our purposes).
    We adapt it from Meeus, equation 13.5, which gives-
    az = arctan ( sin LHA / (cos LHA sin lat - tan dec cos lat))
    Lat and dec are both positive North, negative South, and LHA is measured
    Westwards from the observer. Compare it with our earlier expression
    arctan(x/y), and note the similarity. However, LHA is now measured in the
    opposite direction to x, which was conventionally Eastward. That changes the
    sign of sin LHA, but not of cos LHA. Also, Meeus uses an astronomers'
    convention of measuring his azimuths clockwise from South, not from North as
    navigators do. To allow for those, we reverse the sign of the numerator,
    from sin LHA to -sin LHA, and also the denominator, from (cos LHA sin lat -
    tan dec cos lat) to ( tan dec cos lat -cos LHA sin lat )
    so now, to get azimuth in the range 0 to 360, we can write, just like we did
    for atan2(y , x), the final formula for az, as-
    az = arctan2 ( tan dec cos lat - cos LHA sin lat  , - sin LHA)
    Really, you don't need to know any of the stuff above, except for that final
    formula for az. But Bill asked...
    It will give a true result, for all azimuths, even when the body is actually
    out of sight around the curve of the Earth, below the horizon, with a
    negative altitude.
    Bill can also use an equivalent expression for great-circle course (0 to
    360) to any destination, no matter how far away, from a point (lat 1, long
    1) to (lat 2, long 2), where the longitudes are measured Westerly (i.e. East
    is negative). Some navigators, texts, and programs measure longitudes the
    opposite way, but to me, it's illogical to measure LHA one way, and
    longitude the other..
    He will need dlong, which is long 2 - long 1
    course = ATAN2 (or POL, as appropriate) ( tan lat 2 cos lat 1 - cos dlong
    sin lat 1 , -sin dlong)
    If Bill does that , using the equivalent function on his TI calculator
    whatever that is, he will no longer have to calculate departure, in miles,
    from the change in long, as was necessary before.
    Of course, most computer programs work in radians rather that degrees, in
    which case some conversions will be required.
    One tripup that may need looking out for is when lat 2 = lat 1 and long 2 =
    long 1, looking for a course to the same spot as the observer. Another is
    when lat 2 = -lat 1 and long 2 = - long 1, looking for a course to the
    antipode. In either case, the result is indeterminate, and the computer may
    stop with an error, depending on its level of sophistication.
    I do hope there are no silly errors in the text above. If there are, no
    doubt some kind soul will pick them up.

    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