def test_deprecated_position_subpoint_method(ts, angle): t = ts.utc(2018, 1, 19, 14, 37, 55) top = iers2010.latlon(angle, angle, elevation_m=0.0) b = top.at(t).subpoint() error_degrees = abs(b.latitude.degrees - angle) error_mas = 60.0 * 60.0 * 1000.0 * error_degrees assert error_mas < 0.1 error_degrees = abs(b.longitude.degrees - angle) error_mas = 60.0 * 60.0 * 1000.0 * error_degrees assert error_mas < 0.1
def test_polar_motion_when_computing_topos_position(ts): xp_arcseconds = 11.0 yp_arcseconds = 22.0 ts.polar_motion_table = [0.0], [xp_arcseconds], [yp_arcseconds] top = iers2010.latlon(wms(42, 21, 24.1), wms(-71, 3, 24.8), 43.0) t = ts.utc(2005, 11, 12, 22, 2) # "expected" comes from: # from novas.compat import ter2cel # print(ter2cel(t.whole, t.ut1_fraction, t.delta_t, xp_arcseconds, # yp_arcseconds, top.itrs_xyz.km, method=1)) expected = (3129.530248036487, -3535.1665884086683, 4273.94957733827) assert max(abs(top.at(t).position.km - expected)) < 3e-11
def test_iers2010_subpoint(ts, angle): t = ts.utc(2018, 1, 19, 14, 37, 55) # An elevation of 0 is more difficult for the routine's accuracy # than a very large elevation. top = iers2010.latlon(angle, angle, elevation_m=0.0) p = top.at(t) b = iers2010.subpoint(p) error_degrees = abs(b.latitude.degrees - angle) error_mas = 60.0 * 60.0 * 1000.0 * error_degrees assert error_mas < 0.1 error_degrees = abs(b.longitude.degrees - angle) error_mas = 60.0 * 60.0 * 1000.0 * error_degrees assert error_mas < 0.1
def test_polar_motion_when_computing_topos_position(ts): xp_arcseconds = 11.0 yp_arcseconds = 22.0 ts.polar_motion_table = [0.0], [xp_arcseconds], [yp_arcseconds] top = iers2010.latlon(wms(42, 21, 24.1), wms(-71, 3, 24.8), 43.0) t = ts.utc(2020, 11, 12, 22, 2) # "expected" comes from: # from novas.compat import ter2cel # print(ter2cel(t.whole, t.ut1_fraction, t.delta_t, xp_arcseconds, # yp_arcseconds, top.itrs_position.km, method=1)) expected = (3146.221313017412, -3525.955228249315, 4269.301880718039) assert max(abs(top.at(t).position.km - expected)) < 6e-11