The standard two line element (TLE) format contains times as 2-digit year plus decimal days, so 16012.375
would be January 12, 2016 at 09:00. Using python's time
or datatime
modules, how can I convert this to seconds after epoch? I think I should use structured time but I am not sure how. seconds_of
is a fictitious function - need to replace with something real.
EDIT: It will be most helpful if the answer is long (verbose) - like one step per line or so, so I can understand what is happening.
EDIT 2: After seeing the comments from @J.F.Sebastian I looked at the link for TLE and found it nowhere states "UTC". So I should point out the initial information and final information are UTC. There is no reference to local time, time zone, or system time.
e.g.
tim = "16012.375"
year = 2000 + int(tim[0:2])
decimal_days = float(tim[2:])
print year, decimal_days
2016, 12.375
# seconds_of is a fictitious function - need to replace with something real
seconds_after_epoch = seconds_of(2016,1,1) + (3600. * 24.) * decimal_days
It is easy to get
datetime
object givenyear
anddecimal_days
:How to convert the
datetime
object into "seconds since epoch" depends on the timezone (local, utc, etc). See Converting datetime.date to UTC timestamp in Python e.g., if your input is in UTC then it is simple to get "seconds since the Epoch":You could try something like this [EDIT according to the comments].