Coverage for tests/testDePrecession.py : 28%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from builtins import zip
2from builtins import range
3import numpy as np
4import unittest
5import lsst.utils.tests
7from lsst.sims.utils import ObservationMetaData, _observedFromICRS
8from lsst.sims.utils import haversine, arcsecFromRadians
9from lsst.sims.catUtils.mixins import PhoSimAstrometryBase
12def setup_module(module):
13 lsst.utils.tests.init()
16class DePrecessionTest(unittest.TestCase):
18 def test_de_precession(self):
19 """
20 test de-precession by de-precessing a list of RA, Dec
21 and verifying that the distance between the de-precessed
22 points is the same as the distance between the input points.
24 Also verify that the observed boresite gets de-precessed correctly
25 """
26 rng = np.random.RandomState(12)
27 n_samples = 5
28 pra = 34.0
29 pdec = 65.0
30 obs = ObservationMetaData(pointingRA=pra,
31 pointingDec=pdec,
32 mjd=58324.1)
34 raObs, decObs = _observedFromICRS(np.array([np.radians(pra)]),
35 np.array([np.radians(pdec)]),
36 obs_metadata=obs, epoch=2000.0,
37 includeRefraction=False)
39 ra_list = []
40 dec_list = []
41 ra_list.append(raObs[0])
42 dec_list.append(decObs[0])
43 for rr, dd in zip(rng.random_sample(n_samples)*2.0*np.pi,
44 (rng.random_sample(n_samples)-0.5)*np.pi):
46 ra_list.append(rr)
47 dec_list.append(dd)
49 ra_list = np.array(ra_list)
50 dec_list = np.array(dec_list)
52 raDecTransformed = PhoSimAstrometryBase()._dePrecess(ra_list, dec_list, obs)
53 dd = arcsecFromRadians(haversine(np.radians(pra), np.radians(pdec),
54 raDecTransformed[0][0], raDecTransformed[1][0]))
55 self.assertLess(dd, 1.0e-6)
56 dd0 = arcsecFromRadians(haversine(raObs[0], decObs[0], np.radians(pra), np.radians(pdec)))
57 self.assertLess(dd, dd0)
59 for ix in range(n_samples+1):
60 for iy in range(n_samples+1):
61 if ix != iy:
62 dd1 = arcsecFromRadians(haversine(ra_list[ix], dec_list[ix], ra_list[iy], dec_list[iy]))
63 dd2 = arcsecFromRadians(haversine(raDecTransformed[0][ix], raDecTransformed[1][ix],
64 raDecTransformed[0][iy], raDecTransformed[1][iy]))
66 self.assertAlmostEqual(dd1, dd2, delta=6)
69class MemoryTestClass(lsst.utils.tests.MemoryTestCase):
70 pass
72if __name__ == "__main__": 72 ↛ 73line 72 didn't jump to line 73, because the condition on line 72 was never true
73 lsst.utils.tests.init()
74 unittest.main()