Welcome to the NavList Message Boards.

NavList:

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

Compose Your Message

Message:αβγ
Message:abc
Add Images & Files
    or...
       
    Reply
    Re: Why do we still use this terrible Babylonian hexadecimal system
    From: Michael Dorl
    Date: 2004 Nov 19, 07:48 -0600

    George:
    
    Thanks for pointing out these problems.  I did this because I inherited a
    db with 10,000 stars with the angles in a single column.
    
    Here's the code with the DECtoDMS fixed up but not the other -0 problem.  I
    don't know enough vb to fix that but I'll find out and
    post the code when I find out what needs to be done.  Also should decide
    what should be done when there is only one or two fields.
    Eg. 12 or 12 34.
    
    Michael
    
    Function DMStoDEC(s As String) As Double
    
    Dim parts() As String
    
    Dim Degrees As Integer
    Dim Minutes As Integer
    Dim Seconds As Integer
    Dim sign    As Integer
    
    parts = Split(s, , , vbBinaryCompare)
    
    Degrees = parts(0)
    If Degrees < 0 Then
      sign = -1
      Degrees = -Degrees
    Else
      sign = 1
    End If
    
    Minutes = parts(1)
    Seconds = parts(2)
    
    DMStoDEC = sign * (Degrees + Minutes / 60# + Seconds / 3600#)
    
    End Function
    
    
    Function DECtoDMS(A As Double) As String
    
    Dim Degrees As Integer
    Dim Minutes As Integer
    Dim Seconds As Double
    Dim sign As String
    
    If A < 0 Then
      A = -A
      sign = "-"
    Else
      sign = ""
    End If
    
    Degrees = Int(A)
    A = 60 * (A - Degrees)
    Minutes = Int(A)
    Seconds = 60# * (A - Minutes)
    Seconds = Round(Seconds, 3)
    Seconds = Int(Seconds * 1000#)
    Seconds = Seconds / 1000#
    
    DECtoDMS = sign & Degrees & " " & Minutes & " " & Seconds
    
    End Function
    
    
    
    At 10:15 AM 11/19/04 +0000, you wrote:
    >Comment from George-
    >
    >Cliff Sojourner responded to my comments about a possible weakness in Chuck
    >Taylor's angle conversion-
    >
    >"that's the first thing I checked in the VB code posted earlier; that one
    >got it right too." I presume Cliff is referring to Mike Dorl's routine,
    >quoted above
    >
    >But does Mike's routine get it right in all cases? I think I can see where
    >it might break down.
    >
    >How will it cope with an angle that's -0deg 30'?
    >
    >The test for negative angle is made only on the degrees, not minutes or
    >seconds.
    >
    >So, in that example, it has to make the test as to whether -0 is less than
    >zero.
    >
    >I am unfamiliar with the Visual Basic that's in use here (my pocket
    >calculator uses a much more rudimentary form of Bsic) but I suspect most
    >computing programs will answer that it isn't less than zero, in which case
    >Mike Dorl's program will fall down, treating an angle of -0deg 30' exactly
    >the same as +0deg 30', to give +0.5 deg where it should have been -0.5 deg.
    >
    >
    >A safer test for negativity might be to search for a "minus" character,
    >somewhere in the string.
    >
    >Mike may have checked this aspect already, but if not he would be wise to
    >try out his routine on an angle that's negative, and less than 1 degree.
    >
    >What's more, I have a strong suspicion that Mike's converse routine for
    >degrees-to-dms will go wrong for any negative angle: I certainly recommend
    >that he checks it out. Try converting -0.25deg, wich ought to give a result
    >of -15'; I suspect that it will give -45'.
    >
    >I have become aware of such possible waywardness in angle conversion only
    >by experience; in making such mistakes myself, then (the hard part)
    >uncovering them, then (the easy part) correcting them.
    >
    >George.
    
    
    

       
    Reply
    Browse Files

    Drop Files

    NavList

    What is NavList?

    Join NavList

    Name:
    (please, no nicknames or handles)
    Email:
    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:

    Email Settings

    Posting Code:

    Custom Index

    Subject:
    Author:
    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