Ejemplo n.º 1
0
    def test_array(self):
        # Do a simple test of transit_RA in an array. Use the fact that the RA
        # advances predictably to predict the answers

        from skyfield import earthlib

        epoch = datetime(2000, 1, 1, 11, 58, 56)

        # Create an observer at an arbitrary location
        obs = ctime.Observer(118.3, 36.1)

        # Calculate LST
        t = ctime.unix_to_skyfield_time(ctime.datetime_to_unix(epoch))
        gst = earthlib.sidereal_time(t)
        lst = (360.0 * gst / 24.0 + obs.longitude) % 360.0

        # Drift rate should be very close to 1 degree/4minutes.
        # Fetch times calculated by ephem
        delta_deg = np.arange(20)
        delta_deg.shape = (5, 4)
        lst = lst + delta_deg

        # Calculate RA using transit_RA
        unix_epoch = ctime.datetime_to_unix(epoch)
        unix_times = unix_epoch + (delta_deg * 60 * 4 * ctime.SIDEREAL_S)
        TRA = obs.transit_RA(unix_times)

        # Compare
        self.assertTrue(np.allclose(lst, TRA, atol=0.02, rtol=1e-10))
Ejemplo n.º 2
0
    def test_array(self):
        # Do a simple test of transit_RA in an array. Use the fact that the RA
        # advances predictably to predict the answers

        from skyfield import earthlib

        epoch = datetime(2000, 1, 1, 11, 58, 56)

        # Create an observer at an arbitrary location
        obs = ctime.Observer(118.3, 36.1)

        # Calculate LST
        t = ctime.unix_to_skyfield_time(ctime.datetime_to_unix(epoch))
        gst = earthlib.sidereal_time(t)
        lst = (360.0 * gst / 24.0 + obs.longitude) % 360.0

        # Drift rate should be very close to 1 degree/4minutes.
        # Fetch times calculated by ephem
        delta_deg = np.arange(20)
        delta_deg.shape = (5, 4)
        lst = lst + delta_deg

        # Calculate RA using transit_RA
        unix_epoch = ctime.datetime_to_unix(epoch)
        unix_times = unix_epoch + (delta_deg * 60 * 4 * ctime.SIDEREAL_S)
        TRA = obs.transit_RA(unix_times)

        # Compare
        self.assertTrue(np.allclose(lst, TRA, atol=0.02, rtol=1e-10))
Ejemplo n.º 3
0
def test_sidereal_time_with_nonzero_delta_t():
    epsilon = 1e-13

    st0 = c.sidereal_time(T0, 0.0, D0, False, True)
    stA = c.sidereal_time(TA, 0.0, DA, False, True)
    stB = c.sidereal_time(TB, 0.0, DB, False, True)

    jd = JulianDate(ut1=[T0, TA, TB], delta_t=[D0, DA, DB])
    v = earthlib.sidereal_time(jd)
    eq(v, [st0, stA, stB], epsilon)
Ejemplo n.º 4
0
def test_sidereal_time_with_zero_delta_t():
    epsilon = 1e-13

    delta_t = 0.0

    st0 = c.sidereal_time(T0, 0.0, delta_t, False, True)
    stA = c.sidereal_time(TA, 0.0, delta_t, False, True)
    stB = c.sidereal_time(TB, 0.0, delta_t, False, True)

    jd = JulianDate(ut1=[T0, TA, TB], delta_t=delta_t)
    v = earthlib.sidereal_time(jd)
    eq(v, [st0, stA, stB], epsilon)
Ejemplo n.º 5
0
    def test_epoch(self):

        from skyfield import earthlib

        # At the J2000 epoch, sidereal time and transit RA should be the same.
        epoch = datetime(2000, 1, 1, 11, 58, 56)

        # Create an observer at an arbitrary location
        obs = ctime.Observer(118.3, 36.1)

        # Calculate the transit_RA
        unix_epoch = ctime.datetime_to_unix(epoch)
        TRA = obs.transit_RA(unix_epoch)

        # Calculate LST
        t = ctime.unix_to_skyfield_time(unix_epoch)
        gst = earthlib.sidereal_time(t)
        lst = (360.0 * gst / 24.0 + obs.longitude) % 360.0

        # Tolerance limited by stellar aberation
        self.assertTrue(np.allclose(lst, TRA, atol=0.01, rtol=1e-10))
Ejemplo n.º 6
0
    def test_epoch(self):

        from skyfield import earthlib

        # At the J2000 epoch, sidereal time and transit RA should be the same.
        epoch = datetime(2000, 1, 1, 11, 58, 56)

        # Create an observer at an arbitrary location
        obs = ctime.Observer(118.3, 36.1)

        # Calculate the transit_RA
        unix_epoch = ctime.datetime_to_unix(epoch)
        TRA = obs.transit_RA(unix_epoch)

        # Calculate LST
        t = ctime.unix_to_skyfield_time(unix_epoch)
        gst = earthlib.sidereal_time(t)
        lst = (360.0 * gst / 24.0 + obs.longitude) % 360.0

        # Tolerance limited by stellar aberation
        self.assertTrue(np.allclose(lst, TRA, atol=0.01, rtol=1e-10))
Ejemplo n.º 7
0
def test_sidereal_time_with_nonzero_delta_t(jd):
    u = c.sidereal_time(jd.ut1, 0.0, jd.delta_t, False, True)
    v = earthlib.sidereal_time(jd)
    epsilon = 1e-13  # days; 14 digits of agreement
    eq(u, v, epsilon)