Hide keyboard shortcuts

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

1import unittest 

2import matplotlib 

3matplotlib.use("Agg") 

4 

5import lsst.sims.maf.metrics as metrics 

6import lsst.sims.maf.slicers as slicers 

7import lsst.sims.maf.stackers as stackers 

8import lsst.sims.maf.maps as maps 

9import lsst.sims.maf.metricBundles as metricBundles 

10import lsst.sims.maf.db as db 

11import glob 

12import os 

13import tempfile 

14import shutil 

15import lsst.utils.tests 

16from lsst.utils import getPackageDir 

17from lsst.sims.utils.CodeUtilities import sims_clean_up 

18 

19 

20class TestMetricBundle(unittest.TestCase): 

21 

22 @classmethod 

23 def tearDownClass(cls): 

24 sims_clean_up() 

25 

26 def setUp(self): 

27 self.outDir = tempfile.mkdtemp(prefix='TMB') 

28 

29 def testOut(self): 

30 """ 

31 Check that the metric bundle can generate the expected output 

32 """ 

33 nside = 8 

34 slicer = slicers.HealpixSlicer(nside=nside) 

35 metric = metrics.MeanMetric(col='airmass') 

36 sql = 'filter="r"' 

37 stacker1 = stackers.RandomDitherFieldPerVisitStacker() 

38 stacker2 = stackers.GalacticStacker() 

39 map1 = maps.GalCoordsMap() 

40 map2 = maps.StellarDensityMap() 

41 

42 metricB = metricBundles.MetricBundle(metric, slicer, sql, 

43 stackerList=[stacker1, stacker2], 

44 mapsList=[map1, map2]) 

45 database = os.path.join(getPackageDir('sims_data'), 'OpSimData', 'astro-lsst-01_2014.db') 

46 

47 opsdb = db.OpsimDatabaseV4(database=database) 

48 resultsDb = db.ResultsDb(outDir=self.outDir) 

49 

50 bgroup = metricBundles.MetricBundleGroup({0: metricB}, opsdb, outDir=self.outDir, resultsDb=resultsDb) 

51 bgroup.runAll() 

52 bgroup.plotAll() 

53 bgroup.writeAll() 

54 

55 opsdb.close() 

56 

57 outThumbs = glob.glob(os.path.join(self.outDir, 'thumb*')) 

58 outNpz = glob.glob(os.path.join(self.outDir, '*.npz')) 

59 outPdf = glob.glob(os.path.join(self.outDir, '*.pdf')) 

60 

61 # By default, make 3 plots for healpix 

62 assert(len(outThumbs) == 3) 

63 assert(len(outPdf) == 3) 

64 assert(len(outNpz) == 1) 

65 

66 def tearDown(self): 

67 if os.path.isdir(self.outDir): 

68 shutil.rmtree(self.outDir) 

69 

70 

71class TestMemory(lsst.utils.tests.MemoryTestCase): 

72 pass 

73 

74 

75def setup_module(module): 

76 lsst.utils.tests.init() 

77 

78 

79if __name__ == "__main__": 79 ↛ 80line 79 didn't jump to line 80, because the condition on line 79 was never true

80 lsst.utils.tests.init() 

81 unittest.main()