Source code for pyacs.lib.astrotime.uts2hmsmicros

"""
Convert seconds since 00:00:00.0 (0-86400) to hours, minutes, seconds, microseconds.
"""

[docs] def uts2hmsmicros(uts): """ Convert seconds since 00:00:00.0 (0-86400) to hours, minutes, seconds, microseconds. Parameters ---------- uts : float or array-like Seconds since 00:00:00.0, in [0., 86400.[. Returns ------- h : int or ndarray Hours. mn : int or ndarray Minutes. s : int or ndarray Seconds. microsecond : float or ndarray Microseconds. Examples -------- >>> import pyacs >>> pyacs.uts2hmsmicros(86399.999999) >>> (23, 59, 59, 999999.0000069374) >>> pyacs.uts2hmsmicros(86400) >>> !!! 86400 uts out of range [0- 86400.0 [ """ from ._common import __utsOK import numpy as np if isinstance(uts, list): uts=np.array(uts) if isinstance(uts, np.ndarray): [h,mn,s,microsecond]=np.array(list(map(uts2hmsmicros,uts))).T else: __utsOK(uts) nsec_hour= 60 * 60 nsec_min= 60 int_sec=int(uts) h = int_sec // nsec_hour r = int_sec % nsec_hour mn = r // nsec_min s = r % nsec_min microsecond= (uts - float(int_sec)) * 1.E6 return( np.array(h, dtype=int)+0,\ np.array(mn, dtype=int)+0,\ np.array(s,dtype=int)+0,\ microsecond)