def test_angle_ops(): sign, idmsf = erfa.a2af(6, -np.pi) assert sign == b'-' assert idmsf.item() == (180, 0, 0, 0) sign, ihmsf = erfa.a2tf(6, np.pi) assert sign == b'+' assert ihmsf.item() == (12, 0, 0, 0) rad = erfa.af2a('-', 180, 0, 0.0) np.testing.assert_allclose(rad, -np.pi) rad = erfa.tf2a('+', 12, 0, 0.0) np.testing.assert_allclose(rad, np.pi) rad = erfa.anp(3. * np.pi) np.testing.assert_allclose(rad, np.pi) rad = erfa.anpm(3. * np.pi) np.testing.assert_allclose(rad, -np.pi) sign, ihmsf = erfa.d2tf(1, -1.5) assert sign == b'-' assert ihmsf.item() == (36, 0, 0, 0) days = erfa.tf2d('+', 3, 0, 0.0) np.testing.assert_allclose(days, 0.125)
def d2tf_nice(ndp, days): sgn, hmsf = erfa.d2tf(ndp, days) if sgn == b"+": sgn = "+" elif sgn == b"-": sgn = "-" else: raise ValueError("Mysterious sign found: {!r}".format(sgn)) if not hmsf.dtype.names: hmsf = hmsf.view(_new_ihmsfs_dtype) h = hmsf["h"] m = hmsf["m"] s = hmsf["s"] + hmsf["f"] / 10.0**ndp return sgn, h, m, s
print('convert time interval') # The time ih = 23 im = 5 s = 11.63079 print("%2d:%2.2d:%9.6f\n" % (ih, im, s)) print('Express as a fraction of 1 day:') f = erfa.tf2d(ih, im, s) print("%14.12f\n" % f) print('Six hours earlier:') f -= 0.25 #Report to 1 ms precision. ihmsf = erfa.d2tf(3, f) print("%s%2d:%2.2d:%2.2d.%3.3d\n" % ihmsf) print('=====') print(''' Date and time.''') iy = 2008 im = 2 id = 29 ihour = 23 imin = 59 sec = 59.9 print("%4d/%2.2d/%2.2d%3d:%2.2d:%4.1f\n" % (iy, im, id, ihour, imin, sec)) print('Express as 2-part JD.') d1, d2 = erfa.cal2jd(iy, im, id) d = erfa.tf2d(ihour, imin, sec)
print('convert time interval') # The time ih = 23 im = 5 s = 11.63079 print( "%2d:%2.2d:%9.6f\n"%(ih, im, s)) print('Express as a fraction of 1 day:') f = erfa.tf2d(ih, im, s) print ( "%14.12f\n"%f ) print('Six hours earlier:') f -= 0.25 #Report to 1 ms precision. ihmsf = erfa.d2tf(3, f) print ( "%s%2d:%2.2d:%2.2d.%3.3d\n"%ihmsf) print('=====') print(''' Date and time.''') iy = 2008; im = 2; id = 29; ihour = 23; imin = 59; sec = 59.9; print("%4d/%2.2d/%2.2d%3d:%2.2d:%4.1f\n"% (iy, im, id, ihour, imin, sec)) print('Express as 2-part JD.') d1, d2 = erfa.cal2jd ( iy, im, id) d = erfa.tf2d (ihour, imin, sec) d2 += d print("%9.1f +%13.6f =%15.6f\n"%( d1, d2, d1 + d)) print('Express as calendar date and fraction of a day.')