Example #1
0
    def testActualCatalog(self):
        """
        Make sure that the values written to catalogs that are instantiated using
        setupPhotometryCatalog are correct
        """
        msgroot = ['failed on stars; ', 'failed on galaxies; ']

        testCatClasses = [testStarCatalog, testGalaxyCatalog]
        testCatDBs = [self.starDBObj, self.galaxyDBObj]
        baselineCats = []
        baselineCats.append(baselineStarCatalog(self.starDBObj, obs_metadata=self.obs_metadata_compound,
                                                column_outputs=['lsst_g', 'sigma_lsst_g',
                                                                'lsst_i', 'sigma_lsst_i']))

        baselineCats.append(baselineGalaxyCatalog(self.galaxyDBObj, obs_metadata=self.obs_metadata_compound,
                                                  column_outputs=['lsst_g', 'sigma_lsst_g',
                                                                  'lsst_i', 'sigma_lsst_i']))

        testName = os.path.join(getPackageDir('sims_catUtils'), 'tests', 'scratchSpace',
                                'testSetUp_testActual_testSetupCat.txt')

        baseName = os.path.join(getPackageDir('sims_catUtils'), 'tests', 'scratchSpace',
                                'testSetUp_testActual_baseSetupCat.txt')

        if os.path.exists(testName):
            os.unlink(testName)

        if os.path.exists(baseName):
            os.unlink(baseName)

        basedtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                              ('lsst_g', np.float), ('sigma_lsst_g', np.float),
                              ('lsst_i', np.float), ('sigma_lsst_i', np.float)])

        for (testCatClass, dbo, baselineCat, msgr) in zip(testCatClasses, testCatDBs, baselineCats, msgroot):

            testdtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                                 ('lsst_g', np.float)])

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass)

            testCat.write_catalog(testName)
            baselineCat.write_catalog(baseName)

            testData = np.genfromtxt(testName, dtype=testdtype, delimiter=',')
            baseData = np.genfromtxt(baseName, dtype=basedtype, delimiter=',')
            self.assertGreater(len(testData), 0)
            self.assertGreater(len(baseData), 0)

            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s single column; %.12e != %.12e' %
                                       (msgr, b['lsst_g'], t['lsst_g']))
                ct += 1

            self.assertGreater(ct, 0)

            testdtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                                  ('lsst_g', np.float), ('lsst_i', np.float)])

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass)
            testCat.write_catalog(testName)
            testData = np.genfromtxt(testName, dtype=testdtype, delimiter=',')
            self.assertGreater(len(testData), 0)
            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['lsst_i'], t['lsst_i'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['lsst_i'], t['lsst_i']))
                ct += 1

            self.assertGreater(ct, 0)

            if os.path.exists(testName):
                os.unlink(testName)
            if os.path.exists(baseName):
                os.unlink(baseName)
Example #2
0
    def testActualCatalogWithUncertainty(self):
        """
        Make sure that the values written to catalogs that are instantiated using
        setupPhotometryCatalog are correct (include photometric uncertainty)
        """

        msgroot = ['failed on stars; ', 'failed on galaxies; ']

        testCatClasses = [testStarCatalog, testGalaxyCatalog]
        testCatDBs = [self.starDBObj, self.galaxyDBObj]
        baselineCats = []

        # need to set up the baseline catalogs with the compound obs_metadata so that they get the
        # correct m5 values for both magnitudes (otherwise, they will use LSST defaults, which
        # disagree with our cartoon test case)
        baselineCats.append(baselineStarCatalog(self.starDBObj, obs_metadata=self.obs_metadata_compound,
                                                column_outputs=['lsst_g', 'lsst_i',
                                                                'sigma_lsst_g', 'sigma_lsst_i']))

        baselineCats.append(baselineGalaxyCatalog(self.galaxyDBObj, obs_metadata=self.obs_metadata_compound,
                                                  column_outputs=['lsst_g', 'lsst_i',
                                                                  'sigma_lsst_g', 'sigma_lsst_i']))

        testName = os.path.join(getPackageDir('sims_catUtils'), 'tests', 'scratchSpace',
                                'testSetup_testSetupCatUncertainty.txt')

        baseName = os.path.join(getPackageDir('sims_catUtils'), 'tests', 'scratchSpace',
                                'testSetup_baseSetupCatUncertainty.txt')

        if os.path.exists(testName):
            os.unlink(testName)

        if os.path.exists(baseName):
            os.unlink(baseName)

        basedtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                              ('lsst_g', np.float), ('lsst_i', np.float),
                              ('sigma_lsst_g', np.float), ('sigma_lsst_i', np.float)])

        for (testCatClass, dbo, baselineCat, msgr) in zip(testCatClasses, testCatDBs, baselineCats, msgroot):

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass,
                                             uncertainty=True)

            testdtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                                  ('lsst_g', np.float), ('sigma_lsst_g', np.float)])

            testCat.write_catalog(testName)
            baselineCat.write_catalog(baseName)

            testData = np.genfromtxt(testName, dtype=testdtype, delimiter=',')
            baseData = np.genfromtxt(baseName, dtype=basedtype, delimiter=',')
            self.assertGreater(len(testData), 0)
            self.assertGreater(len(baseData), 0)

            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s single column; %.12e != %.12e ' %
                                       (msgr, b['lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['sigma_lsst_g'], t['sigma_lsst_g'], 12,
                                       msg = '%s sigle column; %.12e != %.12e ' %
                                       (msgr, b['sigma_lsst_i'], t['sigma_lsst_g']))
                ct += 1

            self.assertGreater(ct, 0)

            testdtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                                  ('lsst_g', np.float), ('sigma_lsst_g', np.float),
                                  ('lsst_i', np.float), ('sigma_lsst_i', np.float)])

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass,
                                             uncertainty=True)
            testCat.write_catalog(testName)
            testData = np.genfromtxt(testName, dtype=testdtype, delimiter=',')
            self.assertGreater(len(testData), 0)
            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['lsst_i'], t['lsst_i'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['lsst_i'], t['lsst_i']))
                self.assertAlmostEqual(b['sigma_lsst_g'], t['sigma_lsst_g'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['sigma_lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['sigma_lsst_i'], t['sigma_lsst_i'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['sigma_lsst_i'], t['sigma_lsst_i']))
                ct += 1

            self.assertGreater(ct, 0)

            if os.path.exists(testName):
                os.unlink(testName)
            if os.path.exists(baseName):
                os.unlink(baseName)
Example #3
0
    def testSetupPhotometry(self):
        """
        Make sure that catalogs instantiated by setupPhotometryCatalog contain the
        correct columns.
        """

        # test case with a single bandpass
        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata, dbConnection=self.starDBObj,
                                     catalogClass=testStarCatalog)

        self.assertIn('lsst_g', cat.iter_column_names())
        self.assertNotIn('lsst_u', cat.iter_column_names())
        self.assertNotIn('lsst_r', cat.iter_column_names())
        self.assertNotIn('lsst_i', cat.iter_column_names())
        self.assertNotIn('lsst_z', cat.iter_column_names())
        self.assertNotIn('lsst_y', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_g', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_u', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_r', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_i', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_z', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_y', cat.iter_column_names())

        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata, dbConnection=self.starDBObj,
                                     catalogClass=testStarCatalog, uncertainty=True)

        self.assertIn('lsst_g', cat.iter_column_names())
        self.assertNotIn('lsst_u', cat.iter_column_names())
        self.assertNotIn('lsst_r', cat.iter_column_names())
        self.assertNotIn('lsst_i', cat.iter_column_names())
        self.assertNotIn('lsst_z', cat.iter_column_names())
        self.assertNotIn('lsst_y', cat.iter_column_names())
        self.assertIn('sigma_lsst_g', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_u', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_r', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_i', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_z', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_y', cat.iter_column_names())

        # test case with two bandpasses
        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                     dbConnection=self.starDBObj, catalogClass=testStarCatalog)

        self.assertIn('lsst_g', cat.iter_column_names())
        self.assertIn('lsst_i', cat.iter_column_names())
        self.assertNotIn('lsst_u', cat.iter_column_names())
        self.assertNotIn('lsst_r', cat.iter_column_names())
        self.assertNotIn('lsst_z', cat.iter_column_names())
        self.assertNotIn('lsst_y', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_g', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_u', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_r', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_i', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_z', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_y', cat.iter_column_names())

        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                     dbConnection=self.starDBObj, catalogClass=testStarCatalog,
                                     uncertainty=True)

        self.assertIn('lsst_g', cat.iter_column_names())
        self.assertIn('lsst_i', cat.iter_column_names())
        self.assertNotIn('lsst_u', cat.iter_column_names())
        self.assertNotIn('lsst_r', cat.iter_column_names())
        self.assertNotIn('lsst_z', cat.iter_column_names())
        self.assertNotIn('lsst_y', cat.iter_column_names())
        self.assertIn('sigma_lsst_g', cat.iter_column_names())
        self.assertIn('sigma_lsst_i', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_u', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_r', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_z', cat.iter_column_names())
        self.assertNotIn('sigma_lsst_y', cat.iter_column_names())

        # make sure that class default columns did not get overwritten
        cat = testStarCatalog(self.starDBObj, obs_metadata=self.obs_metadata)

        self.assertNotIn('lsst_u', cat.iter_column_names())
        self.assertNotIn('lsst_g', cat.iter_column_names())
        self.assertNotIn('lsst_r', cat.iter_column_names())
        self.assertNotIn('lsst_i', cat.iter_column_names())
        self.assertNotIn('lsst_z', cat.iter_column_names())
        self.assertNotIn('lsst_y', cat.iter_column_names())
    def testActualCatalogWithUncertainty(self):
        """
        Make sure that the values written to catalogs that are instantiated using
        setupPhotometryCatalog are correct (include photometric uncertainty)
        """

        msgroot = ['failed on stars; ', 'failed on galaxies; ']

        testCatClasses = [testStarCatalog, testGalaxyCatalog]
        testCatDBs = [self.starDBObj, self.galaxyDBObj]
        baselineCats = []

        #need to set up the baseline catalogs with the compound obs_metadata so that they get the
        #correct m5 values for both magnitudes (otherwise, they will use LSST defaults, which
        #disagree with our cartoon test case)
        baselineCats.append(baselineStarCatalog(self.starDBObj, obs_metadata=self.obs_metadata_compound))
        baselineCats.append(baselineGalaxyCatalog(self.galaxyDBObj, obs_metadata=self.obs_metadata_compound))

        testName = 'testSetupCatUncertainty.txt'
        baseName = 'baseSetupCatUncertainty.txt'

        basedtype = numpy.dtype([('raObserved', numpy.float), ('decObserved', numpy.float),
                                 ('lsst_u', numpy.float), ('lsst_g', numpy.float),
                                 ('lsst_r', numpy.float), ('lsst_i', numpy.float),
                                 ('lsst_z', numpy.float), ('lsst_y', numpy.float),
                                 ('sigma_lsst_u', numpy.float), ('sigma_lsst_g',numpy.float),
                                 ('sigma_lsst_r', numpy.float), ('sigma_lsst_i', numpy.float),
                                 ('sigma_lsst_z', numpy.float), ('sigma_lsst_y', numpy.float)])

        for (testCatClass, dbo, baselineCat, msgr) in zip(testCatClasses, testCatDBs, baselineCats, msgroot):

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass,
                                             uncertainty=True)

            testdtype = numpy.dtype([('raObserved', numpy.float), ('decObserved', numpy.float),
                                     ('lsst_g', numpy.float), ('sigma_lsst_g', numpy.float)])


            testCat.write_catalog(testName)
            baselineCat.write_catalog(baseName)

            testData = numpy.genfromtxt(testName, dtype=testdtype, delimiter=',')
            baseData = numpy.genfromtxt(baseName, dtype=basedtype, delimiter=',')

            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s single column; %.12e != %.12e ' % (msgr, b['lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['sigma_lsst_g'], t['sigma_lsst_g'], 12,
                                       msg = '%s sigle column; %.12e != %.12e ' % (msgr, b['sigma_lsst_i'], t['sigma_lsst_g']))
                ct +=1

            self.assertTrue(ct>0)

            testdtype = numpy.dtype([('raObserved', numpy.float), ('decObserved', numpy.float),
                                     ('lsst_g', numpy.float), ('sigma_lsst_g', numpy.float),
                                     ('lsst_i', numpy.float), ('sigma_lsst_i', numpy.float)])

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass,
                                             uncertainty=True)
            testCat.write_catalog(testName)
            testData = numpy.genfromtxt(testName, dtype=testdtype, delimiter=',')
            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s double column; %.12e != %.12e ' % (msgr, b['lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['lsst_i'], t['lsst_i'], 12,
                                       msg = '%s double column; %.12e != %.12e ' % (msgr, b['lsst_i'], t['lsst_i']))
                self.assertAlmostEqual(b['sigma_lsst_g'], t['sigma_lsst_g'], 12,
                                       msg = '%s double column; %.12e != %.12e ' % (msgr, b['sigma_lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['sigma_lsst_i'], t['sigma_lsst_i'], 12,
                                       msg = '%s double column; %.12e != %.12e ' % (msgr, b['sigma_lsst_i'], t['sigma_lsst_i']))
                ct +=1

            self.assertTrue(ct>0)

            if os.path.exists(testName):
                os.unlink(testName)
            if os.path.exists(baseName):
                os.unlink(baseName)
    def testActualCatalog(self):
        """
        Make sure that the values written to catalogs that are instantiated using
        setupPhotometryCatalog are correct
        """
        msgroot = ['failed on stars; ', 'failed on galaxies; ']

        testCatClasses = [testStarCatalog, testGalaxyCatalog]
        testCatDBs = [self.starDBObj, self.galaxyDBObj]
        baselineCats = []
        baselineCats.append(baselineStarCatalog(self.starDBObj, obs_metadata=self.obs_metadata))
        baselineCats.append(baselineGalaxyCatalog(self.galaxyDBObj, obs_metadata=self.obs_metadata))

        testName = 'testSetupCat.txt'
        baseName = 'baseSetupCat.txt'


        basedtype = numpy.dtype([('raObserved', numpy.float), ('decObserved', numpy.float),
                                 ('lsst_u', numpy.float), ('lsst_g', numpy.float),
                                 ('lsst_r', numpy.float), ('lsst_i', numpy.float),
                                 ('lsst_z', numpy.float), ('lsst_y', numpy.float),
                                 ('sigma_lsst_u', numpy.float), ('sigma_lsst_g',numpy.float),
                                 ('sigma_lsst_r', numpy.float), ('sigma_lsst_i', numpy.float),
                                 ('sigma_lsst_z', numpy.float), ('sigma_lsst_y', numpy.float)])

        for (testCatClass, dbo, baselineCat, msgr) in zip(testCatClasses, testCatDBs, baselineCats, msgroot):

            testdtype = numpy.dtype([('raObserved', numpy.float), ('decObserved', numpy.float),
                                 ('lsst_g', numpy.float)])


            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata,
                                              dbConnection=dbo,
                                              catalogClass=testCatClass)

            testCat.write_catalog(testName)
            baselineCat.write_catalog(baseName)

            testData = numpy.genfromtxt(testName, dtype=testdtype, delimiter=',')
            baseData = numpy.genfromtxt(baseName, dtype=basedtype, delimiter=',')

            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s single column; %.12e != %.12e' % (msgr, b['lsst_g'], t['lsst_g']))
                ct +=1

            self.assertTrue(ct>0)

            testdtype = numpy.dtype([('raObserved', numpy.float), ('decObserved', numpy.float),
                                     ('lsst_g', numpy.float), ('lsst_i', numpy.float)])

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass)
            testCat.write_catalog(testName)
            testData = numpy.genfromtxt(testName, dtype=testdtype, delimiter=',')
            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s double column; %.12e != %.12e ' % (msgr, b['lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['lsst_i'], t['lsst_i'], 12,
                                       msg = '%s double column; %.12e != %.12e ' % (msgr, b['lsst_i'], t['lsst_i']))
                ct += 1

            self.assertTrue(ct>0)

            if os.path.exists(testName):
                os.unlink(testName)
            if os.path.exists(baseName):
                os.unlink(baseName)
    def testSetupPhotometry(self):
        """
        Make sure that catalogs instantiated by setupPhotometryCatalog contain the
        correct columns.
        """

        #test case with a single bandpass
        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata, dbConnection=self.starDBObj,
                                     catalogClass=testStarCatalog)

        self.assertTrue('lsst_g' in cat.iter_column_names())
        self.assertFalse('lsst_u' in cat.iter_column_names())
        self.assertFalse('lsst_r' in cat.iter_column_names())
        self.assertFalse('lsst_i' in cat.iter_column_names())
        self.assertFalse('lsst_z' in cat.iter_column_names())
        self.assertFalse('lsst_y' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_g' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_u' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_r' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_i' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_z' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_y' in cat.iter_column_names())

        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata, dbConnection=self.starDBObj,
                                     catalogClass=testStarCatalog, uncertainty=True)

        self.assertTrue('lsst_g' in cat.iter_column_names())
        self.assertFalse('lsst_u' in cat.iter_column_names())
        self.assertFalse('lsst_r' in cat.iter_column_names())
        self.assertFalse('lsst_i' in cat.iter_column_names())
        self.assertFalse('lsst_z' in cat.iter_column_names())
        self.assertFalse('lsst_y' in cat.iter_column_names())
        self.assertTrue('sigma_lsst_g' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_u' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_r' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_i' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_z' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_y' in cat.iter_column_names())

        #test case with two bandpasses
        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                     dbConnection=self.starDBObj, catalogClass=testStarCatalog)

        self.assertTrue('lsst_g' in cat.iter_column_names())
        self.assertTrue('lsst_i' in cat.iter_column_names())
        self.assertFalse('lsst_u' in cat.iter_column_names())
        self.assertFalse('lsst_r' in cat.iter_column_names())
        self.assertFalse('lsst_z' in cat.iter_column_names())
        self.assertFalse('lsst_y' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_g' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_u' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_r' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_i' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_z' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_y' in cat.iter_column_names())

        cat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                     dbConnection=self.starDBObj, catalogClass=testStarCatalog,
                                     uncertainty=True)

        self.assertTrue('lsst_g' in cat.iter_column_names())
        self.assertTrue('lsst_i' in cat.iter_column_names())
        self.assertFalse('lsst_u' in cat.iter_column_names())
        self.assertFalse('lsst_r' in cat.iter_column_names())
        self.assertFalse('lsst_z' in cat.iter_column_names())
        self.assertFalse('lsst_y' in cat.iter_column_names())
        self.assertTrue('sigma_lsst_g' in cat.iter_column_names())
        self.assertTrue('sigma_lsst_i' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_u' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_r' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_z' in cat.iter_column_names())
        self.assertFalse('sigma_lsst_y' in cat.iter_column_names())

        #make sure that class default columns did not get overwritten
        cat = testStarCatalog(self.starDBObj, obs_metadata=self.obs_metadata)

        self.assertFalse('lsst_u' in cat.iter_column_names())
        self.assertFalse('lsst_g' in cat.iter_column_names())
        self.assertFalse('lsst_r' in cat.iter_column_names())
        self.assertFalse('lsst_i' in cat.iter_column_names())
        self.assertFalse('lsst_z' in cat.iter_column_names())
        self.assertFalse('lsst_y' in cat.iter_column_names())
Example #7
0
    def testActualCatalog(self):
        """
        Make sure that the values written to catalogs that are instantiated using
        setupPhotometryCatalog are correct
        """
        msgroot = ['failed on stars; ', 'failed on galaxies; ']

        testCatClasses = [testStarCatalog, testGalaxyCatalog]
        testCatDBs = [self.starDBObj, self.galaxyDBObj]
        baselineCats = []
        baselineCats.append(baselineStarCatalog(self.starDBObj, obs_metadata=self.obs_metadata_compound,
                                                column_outputs=['lsst_g', 'sigma_lsst_g',
                                                                'lsst_i', 'sigma_lsst_i']))

        baselineCats.append(baselineGalaxyCatalog(self.galaxyDBObj, obs_metadata=self.obs_metadata_compound,
                                                  column_outputs=['lsst_g', 'sigma_lsst_g',
                                                                  'lsst_i', 'sigma_lsst_i']))

        basedtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                              ('lsst_g', np.float), ('sigma_lsst_g', np.float),
                              ('lsst_i', np.float), ('sigma_lsst_i', np.float)])

        for (testCatClass, dbo, baselineCat, msgr) in zip(testCatClasses, testCatDBs, baselineCats, msgroot):

            testdtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                                 ('lsst_g', np.float)])

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass)

            with lsst.utils.tests.getTempFilePath('.txt') as testName:
                testCat.write_catalog(testName)
                testData = np.genfromtxt(testName, dtype=testdtype, delimiter=',')

            with lsst.utils.tests.getTempFilePath('.txt') as baseName:
                baselineCat.write_catalog(baseName)
                baseData = np.genfromtxt(baseName, dtype=basedtype, delimiter=',')

            self.assertGreater(len(testData), 0)
            self.assertGreater(len(baseData), 0)

            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s single column; %.12e != %.12e' %
                                       (msgr, b['lsst_g'], t['lsst_g']))
                ct += 1

            self.assertGreater(ct, 0)

            testdtype = np.dtype([('raObserved', np.float), ('decObserved', np.float),
                                  ('lsst_g', np.float), ('lsst_i', np.float)])

            testCat = setupPhotometryCatalog(obs_metadata=self.obs_metadata_compound,
                                             dbConnection=dbo,
                                             catalogClass=testCatClass)
            with lsst.utils.tests.getTempFilePath('.txt') as testName:
                testCat.write_catalog(testName)
                testData = np.genfromtxt(testName, dtype=testdtype, delimiter=',')
            self.assertGreater(len(testData), 0)
            ct = 0
            for b, t in zip(baseData, testData):
                self.assertAlmostEqual(b['lsst_g'], t['lsst_g'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['lsst_g'], t['lsst_g']))
                self.assertAlmostEqual(b['lsst_i'], t['lsst_i'], 12,
                                       msg = '%s double column; %.12e != %.12e ' %
                                       (msgr, b['lsst_i'], t['lsst_i']))
                ct += 1

            self.assertGreater(ct, 0)