Re: sexagesimal

From: Alberto Micol <Alberto.Micol-at-eso.org>
Date: Sun, 17 Sep 2006 01:38:30 +0200

Williams:
>
> Examples of valid IVOA sexagsimal positions, these parse to the
> same thing:
> 5h 23m 0s, 35d 12m 23.23s
> 5h 23m 0s, 35° 12' 23.23"
> 5 23 0 35 12 23.22
> 5 23 0 35 +12 23.22
> 5dfds23,,, ,,,,0;;;;;35kjdshhgf-12, 23.22
>
>
> California Institute of Technology
> 626 395 3670
>

Seaman:
> Not all sexigesimal values have three fields, many have two fields,
> hh:mm.mmm, for instance.

Let me suggest the following 2 definitions:

1.- A (one) sexagesimal number is a sequence of up to 3 (minimum 1) groups of numbers
separated (followed) by an indefinite number of whatever characters except 0-9 + -
Only one group, ***the last one***, can be a float. If none of the groups is a float, the sequence must contain 3 groups. Only one group, the first one, can have a sign (+-). The second and third groups are base-60.

2.- A pair of sexagesimal numbers is a sequence of two sexagesimal numbers.

The parser for this is quite easy to write (see perl attachement).

> We can allow the minutes to be float, but ask IRAF to add seconds:
> hh:mm.mmm:00.
> There could be a translation in the XML to add the :00.

No need to support very weird and unused forms (hh:mm.mmm:00). My definition allows only the last group to be float!

You'll get an error if you try my perl code:

% sexagesimal.pl "12h 53.22m 00s"

While it works fine with:

% sexagesimal.pl "+2<sup>o</sup>:45.<sup>m</sup>"

Though, both Roy's and my definitions could be quite misleading:

% sexagesimal.pl "+2E2<sup>o</sup>:45.<sup>m</sup>"

returns: 2:2:45. (2E2 != 200)

Alberto

Received on 2006-09-17Z01:38:59