def test_GeocentricSolarEcliptic_raises_error_nonscalar_obstime(): with pytest.raises(ValueError) as excinfo: gcrs = GCRS(ra="02h31m49.09s", dec="+89d15m50.8s", distance=200 * u.km) gcrs.transform_to( GeocentricSolarEcliptic(obstime=Time(["J3200", "J2000"]))) assert ("To perform this transformation the " "obstime Attribute must be a scalar." in str(excinfo.value))
def test_GeocentricSolarEcliptic_against_data(): gcrs = GCRS(ra="02h31m49.09s", dec="+89d15m50.8s", distance=200 * u.km) gse = gcrs.transform_to(GeocentricSolarEcliptic(obstime=J2000)) lon = 233.11691362602866 lat = 48.64606410986667 assert_quantity_allclose(gse.lat.value, lat, atol=1e-7) assert_quantity_allclose(gse.lon.value, lon, atol=1e-7)
def test_GeocentricSolarEcliptic_against_data(): gcrs = GCRS(ra="02h31m49.09s", dec="+89d15m50.8s", distance=200 * u.km) gse = gcrs.transform_to(GeocentricSolarEcliptic(obstime=Time("J2000"))) lon = 233.11663895663975 lat = 48.64652559835358 assert_quantity_allclose(gse.lat.value, lat, atol=1e-7) assert_quantity_allclose(gse.lon.value, lon, atol=1e-7)
def test_from_coord_if_coord_is_not_of_shape_zero(): pos = [0, 1, 0] vel = [1, 0, 0] cartdiff = CartesianDifferential([vel] * u.km / u.s, xyz_axis=1) cartrep = CartesianRepresentation([pos] * u.km, differentials=cartdiff, xyz_axis=1) coords = GCRS(cartrep, representation_type=CartesianRepresentation, obstime=J2000) ss = Orbit.from_coords(Earth, coords) assert_quantity_allclose(ss.r, pos * u.km, rtol=1e-5) assert_quantity_allclose(ss.v, vel * u.km / u.s, rtol=1e-5)
def test_from_coord_fails_for_multiple_positions(obstime): cartdiff = CartesianDifferential([[0, 1, 0], [-0.1, 0.9, 0]] * u.km / u.s, xyz_axis=1) cartrep = CartesianRepresentation([[1, 0, 0], [0.9, 0.1, 0]] * u.km, differentials=cartdiff, xyz_axis=1) coords = GCRS(cartrep, representation_type=CartesianRepresentation, obstime=obstime) with pytest.raises(ValueError) as excinfo: Orbit.from_coords(Earth, coords) assert ( "ValueError: Coordinate instance must represents exactly 1 position, found: 2" in excinfo.exconly())
def test_round_trip_from_GeocentricSolarEcliptic_gives_same_results(): gcrs = GCRS(ra="02h31m49.09s", dec="+89d15m50.8s", distance=200 * u.km) gse = gcrs.transform_to(GeocentricSolarEcliptic(obstime=Time("J2000"))) gcrs_back = gse.transform_to(GCRS(obstime=Time("J2000"))) assert_quantity_allclose(gcrs_back.dec.value, gcrs.dec.value, atol=1e-7) assert_quantity_allclose(gcrs_back.ra.value, gcrs.ra.value, atol=1e-7)