Coverage for tests/testMaps.py : 22%

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 str
3import matplotlib
4matplotlib.use("Agg")
5import numpy as np
6import unittest
7import warnings
8import os
9import lsst.sims.maf.slicers as slicers
10import lsst.sims.maf.maps as maps
11import lsst.utils.tests
14def makeDataValues(size=100, min=0., max=1., random=-1):
15 """Generate a simple array of numbers, evenly arranged between min/max, but (optional) random order."""
16 datavalues = np.arange(0, size, dtype='float')
17 datavalues *= (float(max) - float(min)) / (datavalues.max() - datavalues.min())
18 datavalues += min
19 if random > 0:
20 rng = np.random.RandomState(random)
21 randorder = rng.rand(size)
22 randind = np.argsort(randorder)
23 datavalues = datavalues[randind]
24 ids = np.arange(size)
25 datavalues = np.array(list(zip(datavalues, datavalues, ids)),
26 dtype=[('fieldRA', 'float'),
27 ('fieldDec', 'float'), ('fieldId', 'int')])
28 return datavalues
31def makeFieldData(seed):
32 rng = np.random.RandomState(seed)
33 names = ['fieldId', 'fieldRA', 'fieldDec']
34 types = [int, float, float]
35 fieldData = np.zeros(100, dtype=list(zip(names, types)))
36 fieldData['fieldId'] = np.arange(100)
37 fieldData['fieldRA'] = rng.rand(100)
38 fieldData['fieldDec'] = rng.rand(100)
39 return fieldData
42class TestMaps(unittest.TestCase):
44 def testDustMap(self):
46 mapPath = os.environ['SIMS_MAPS_DIR']
48 if os.path.isfile(os.path.join(mapPath, 'DustMaps/dust_nside_128.npz')):
50 data = makeDataValues(random=981)
51 dustmap = maps.DustMap()
53 slicer1 = slicers.HealpixSlicer(latLonDeg=False)
54 slicer1.setupSlicer(data)
55 result1 = dustmap.run(slicer1.slicePoints)
56 assert('ebv' in list(result1.keys()))
58 fieldData = makeFieldData(2234)
60 slicer2 = slicers.OpsimFieldSlicer(latLonDeg=False)
61 slicer2.setupSlicer(data, fieldData)
62 result2 = dustmap.run(slicer2.slicePoints)
63 assert('ebv' in list(result2.keys()))
65 # Check interpolation works
66 dustmap = maps.DustMap(interp=True)
67 result3 = dustmap.run(slicer2.slicePoints)
68 assert('ebv' in list(result3.keys()))
70 # Check warning gets raised
71 dustmap = maps.DustMap(nside=4)
72 with warnings.catch_warnings(record=True) as w:
73 warnings.simplefilter("always")
74 dustmap.run(slicer1.slicePoints)
75 self.assertIn("nside", str(w[-1].message))
76 else:
77 warnings.warn('Did not find dustmaps, not running testMaps.py')
79 def testStarMap(self):
80 mapPath = os.environ['SIMS_MAPS_DIR']
82 if os.path.isfile(os.path.join(mapPath, 'StarMaps/starDensity_r_nside_64.npz')):
83 data = makeDataValues(random=887)
84 # check that it works if nside does not match map nside of 64
85 nsides = [32, 64, 128]
86 for nside in nsides:
87 starmap = maps.StellarDensityMap()
88 slicer1 = slicers.HealpixSlicer(nside=nside, latLonDeg=False)
89 slicer1.setupSlicer(data)
90 result1 = starmap.run(slicer1.slicePoints)
91 assert('starMapBins_r' in list(result1.keys()))
92 assert('starLumFunc_r' in list(result1.keys()))
93 assert(np.max(result1['starLumFunc_r'] > 0))
95 fieldData = makeFieldData(22)
97 slicer2 = slicers.OpsimFieldSlicer(latLonDeg=False)
98 slicer2.setupSlicer(data, fieldData)
99 result2 = starmap.run(slicer2.slicePoints)
100 assert('starMapBins_r' in list(result2.keys()))
101 assert('starLumFunc_r' in list(result2.keys()))
102 assert(np.max(result2['starLumFunc_r'] > 0))
104 else:
105 warnings.warn('Did not find stellar density map, skipping test.')
108class TestMemory(lsst.utils.tests.MemoryTestCase):
109 pass
112def setup_module(module):
113 lsst.utils.tests.init()
116if __name__ == "__main__": 116 ↛ 117line 116 didn't jump to line 117, because the condition on line 116 was never true
117 lsst.utils.tests.init()
118 unittest.main()