stud

study spacejunk
Log | Files | Refs | LICENSE

blob 7b2f9a2b (670B) - Raw


      1 from collections import namedtuple
      2 
      3 from decimal import Decimal as Dec
      4 
      5 class Deg(namedtuple('Deg', ['deg', 'mm', 'ss'])):
      6     def __str__(self):
      7         return "%03d-%02d-%.1f" % (self.deg, self.mm, self.ss)
      8 
      9 def guess(inp):
     10     if isinstance(inp, Dec):
     11         return inp
     12 
     13     if isinstance(inp, str) and '-' in inp:
     14         deg, mm, ss = inp.split('-')
     15         ddeg, dmm, dss = Dec(deg), Dec(mm), Dec(ss)
     16         return deg + dmm/60 + dss/3600
     17     else:
     18         return Dec(instr)
     19 
     20 def hms(deg):
     21     assert isinstance(deg, Dec)
     22     pdeg, pmm = divmod(deg, 1)
     23     pmm = pmm * Dec(60)
     24     pmm, pss = divmod(pmm, 1)
     25     pss = pss * Dec(60)
     26     return Deg(pdeg, pmm, pss)