Пример #1
0
def test_speed_matchVisitComputeDistance(n=5000):
    # Explicitly convert n to int to ensure consistent behavior in indexing and numpy
    n = int(n)
    visits = np.arange(2*n)

    np.random.shuffle(visits)
    visit_obj1 = visits[:n]
    np.random.shuffle(visits)
    visit_obj2 = visits[:n]

    mu, sigma = 0, 3e-4  # mean 0, ~1 arcsec width
    mean_ra = 10  # degrees
    mean_dec = 20  # degrees

    ra_obj1 = mean_ra + np.random.normal(mu, sigma, n) * np.cos(np.deg2rad(mean_dec))
    ra_obj2 = mean_ra + np.random.normal(mu, sigma, n) * np.cos(np.deg2rad(mean_dec))
    dec_obj1 = mean_dec + np.random.normal(mu, sigma, n)
    dec_obj2 = mean_dec + np.random.normal(mu, sigma, n)

    matchVisitComputeDistance(visit_obj1, ra_obj1, dec_obj1,
                              visit_obj2, ra_obj2, dec_obj2)
Пример #2
0
def test_missing_matchVisitComputeDistance():
    visit_obj1 = [1, 2, 3, 4]
    visit_obj2 = [4, 1]
    ra_obj1 = np.deg2rad(np.array([10.0010, 10.0005, 10.0000, 10.0005]))
    ra_obj2 = np.deg2rad(np.array([10.0006, 10.0008]))
    dec_obj1 = np.deg2rad(np.array([20.001, 20.006, 20.002, 20.004]))
    dec_obj2 = np.deg2rad(np.array([20.003, 20.010]))

    exp = [1.75301e-05, 0.0001571138]
    obs = matchVisitComputeDistance(visit_obj1, ra_obj1, dec_obj1,
                                    visit_obj2, ra_obj2, dec_obj2)

    # matchVisitComputeDistance doesn't preserve order
    # Sort to compare
    exp = np.sort(exp)
    obs = np.sort(obs)
    assert_allclose(exp, obs, atol=1e-7)  # 1e-7 rad == 5.73e-6 deg == 0.00036 arcsec