コード例 #1
0
    def testObjectTable(self):
        generator_spec = {
            "Object": {
                "columns": {
                    "objectId":
                    columns.ObjIdGenerator(),
                    "ra,decl":
                    columns.RaDecGenerator(),
                    "uPsFlux,gPsFlux,rPsFlux,iPsFlux,zPsFlux,yPsFlux":
                    columns.MagnitudeGenerator(n_mags=6)
                },
                "density": UniformSpatialModel(500),
            }
        }
        chunk_id = 3525
        seed = 1

        generator = DataGenerator(generator_spec, chunker, seed=seed)

        edge_width = 0.017  # degrees
        data = generator.make_chunk(chunk_id,
                                    edge_width=edge_width,
                                    edge_only=False)
        chunk_area = chunker.getChunkBounds(
            chunk_id).getArea() / RAD_PER_DEG**2
        self.assertIn('Object', data.keys())
        self.assertAlmostEqual(len(data["Object"]),
                               int(500 * chunk_area),
                               delta=3)
コード例 #2
0
    def testMagnitudeGenerator(self):

        min_mag = 21.0
        max_mag = 22.0
        mag_generator = columns.MagnitudeGenerator(min_mag=min_mag,
                                                   max_mag=max_mag,
                                                   n_mags=1)
        magnitudes = mag_generator(5000, 40)
        self.assertTrue(np.min(magnitudes) >= min_mag)
        self.assertTrue(np.max(magnitudes) <= max_mag)
コード例 #3
0
    def testForcedSource(self):

        with tempfile.TemporaryDirectory() as data_dir:

            with open(os.path.join(data_dir, "visit_table.csv"), "w") as f:
                print(chunk3525_visits, file=f)

            generator_spec = {
                "Object": {
                    "columns": {
                        "objectId":
                        columns.ObjIdGenerator(),
                        "psRa,psDecl":
                        columns.RaDecGenerator(),
                        "uPsFlux,gPsFlux,rPsFlux,iPsFlux,zPsFlux,yPsFlux":
                        columns.MagnitudeGenerator(n_mags=6)
                    },
                    "density": UniformSpatialModel(100),
                },
                "CcdVisit": {
                    "from_file": os.path.join(data_dir, "visit_table.csv"),
                    "columns": "ccdVisitId,filterName,ra,decl"
                },
                "ForcedSource": {
                    "prereq_tables": ["CcdVisit", "Object"],
                    "columns": {
                        "objectId,ccdVisitId,psFlux,psFlux_Sigma":
                        columns.ForcedSourceGenerator(visit_radius=3.0,
                                                      filters="ugr"),
                    },
                }
            }

            chunk_id = 3525
            seed = 1
            generator = DataGenerator(generator_spec, chunker, seed=seed)
            edge_width = 0.017  # degrees
            chunk_tables = generator.make_chunk(chunk_id,
                                                edge_width=edge_width,
                                                edge_only=False,
                                                return_pregenerated=True)
        self.assertIn("ForcedSource", chunk_tables.keys())
        self.assertIn("Object", chunk_tables.keys())

        print(len(chunk_tables['ForcedSource']))
        print(len(chunk_tables['Object']))
        self.assertEqual(set(chunk_tables['ForcedSource']['ccdVisitId']),
                         set(chunk_tables['CcdVisit']['ccdVisitId']))
コード例 #4
0
    def testObjectTable(self):
        generator_spec = {
            "Object": {
                "columns": {"objectId": columns.ObjIdGenerator(),
                            "ra,decl": columns.RaDecGenerator(chunker),
                            "mag_u,mag_g,mag_r": columns.MagnitudeGenerator(n_mags=3)
                            }
            }
        }
        cell_id = 5000

        generator = DataGenerator(generator_spec)

        data = generator.make_chunk(cell_id, num_rows=50)
        self.assertIn('Object', data.keys())
        self.assertEqual(len(data['Object']), 50)
コード例 #5
0
    def testForcedSource(self):

        generator_spec = {
            "Object": {
                "columns": {"objectId": columns.ObjIdGenerator(),
                            "ra,decl": columns.RaDecGenerator(chunker),
                            "mag_u,mag_g,mag_r": columns.MagnitudeGenerator(n_mags=3)
                            }
            },
            "CcdVisit": {
                "columns": {"ccdVisitId": columns.VisitIdGenerator(),
                            "filterName": columns.FilterGenerator(filters="ugr"),
                            "ra,decl": columns.RaDecGenerator(chunker)
                            }
            },
            "ForcedSource": {
                "prereq_row": "Object",
                "prereq_tables": ["CcdVisit"],
                "columns": {
                    "objectId,ccdVisitId,psFlux,psFlux_Sigma":
                        columns.ForcedSourceGenerator(visit_radius=3.0, filters="ugr"),
                },
            }
        }

        chunk_id = 3525
        generator = DataGenerator(generator_spec)
        row_counts = {"CcdVisit": 80,
                      "Object": 100,
                      "ForcedSource": 0}
        chunk_tables = generator.make_chunk(chunk_id, row_counts)
        self.assertIn("ForcedSource", chunk_tables.keys())
        self.assertIn("Object", chunk_tables.keys())
        self.assertIn("CcdVisit", chunk_tables.keys())

        print(len(chunk_tables['ForcedSource']))
        print(len(chunk_tables['CcdVisit']))
        print(len(chunk_tables['Object']))
        self.assertEqual(set(chunk_tables['ForcedSource']['ccdVisitId']),
                         set(chunk_tables['CcdVisit']['ccdVisitId']))
コード例 #6
0
spec = {
    "Object": {
        "columns": {
            "objectId":
            columns.ObjIdGenerator(),
            "parentObjectId,prv_inputId":
            columns.PoissonGenerator(mean_val=10, n_columns=2, column_seed=1),
            "psRa,psRaErr,psDecl,psDeclErr":
            columns.RaDecGenerator(include_err=True),
            "psMuRa,psMuRaErr,psMuDecl,psMuDeclErr,psParallax,psParallaxErr":
            columns.UniformGenerator(n_columns=6,
                                     min_val=-5,
                                     max_val=5,
                                     column_seed=2),
            "uPsFlux":
            columns.MagnitudeGenerator(n_mags=1, column_seed=102),
            "uPsFluxErr":
            columns.UniformGenerator(min_val=0.05,
                                     max_val=0.5,
                                     n_columns=1,
                                     column_seed=103),
            "gPsFlux":
            columns.MagnitudeGenerator(n_mags=1, column_seed=104),
            "gPsFluxErr":
            columns.UniformGenerator(min_val=0.05,
                                     max_val=0.5,
                                     n_columns=1,
                                     column_seed=105),
            "rPsFlux":
            columns.MagnitudeGenerator(n_mags=1, column_seed=106),
            "rPsFluxErr":
コード例 #7
0
import lsst.dax.data_generator.columns as columns
from lsst.dax.data_generator import Chunker

num_stripes = 200
num_substripes = 5
chunker = Chunker(0, num_stripes, num_substripes)

spec = {
    "Object": {
        "columns": {
            "objectId": columns.ObjIdGenerator(),
            "ra,decl": columns.RaDecGenerator(chunker),
            "mag_u,mag_g,mag_r,mag_i,mag_z":
            columns.MagnitudeGenerator(n_mags=5)
        }
    },
    "CcdVisit": {
        "columns": {
            "ccdVisitId": columns.VisitIdGenerator(),
            "filterName": columns.FilterGenerator(filters="ugriz"),
            "ra,decl": columns.RaDecGenerator(chunker)
        }
    },
    "ForcedSource": {
        "prereq_row": "Object",
        "prereq_tables": ["CcdVisit"],
        "columns": {
            "objectId,ccdVisitId,psFlux,psFlux_Sigma":
            columns.ForcedSourceGenerator(visit_radius=1.4, filters="ugriz"),
        },
    }
コード例 #8
0
import lsst.dax.data_generator.columns as columns
from lsst.dax.data_generator import Chunker, UniformSpatialModel

num_stripes = 200
num_substripes = 5
chunker = Chunker(0, num_stripes, num_substripes)
edge_width = 0.017  # degrees, must be >= overlap


spec = {
    "Object": {
        "columns": {"objectId": columns.ObjIdGenerator(),
                    "psRa,psDecl": columns.RaDecGenerator(),
                    "uPsFlux,gPsFlux,rPsFlux,iPsFlux,zPsFlux,yPsFlux": columns.MagnitudeGenerator(n_mags=6)
                    },
        "density": UniformSpatialModel(1000),
    },
    "ForcedSource": {
        "prereq_tables": ["CcdVisit", "Object"],
        "columns": {
            "objectId,ccdVisitId,psFlux,psFlux_Sigma,flags":
                columns.ForcedSourceGenerator(visit_radius=1.4, filters="ugriz"),
        },
    }
}

spec["CcdVisit"] = {
    "from_file": "visit_table_chunk3525.csv",
    "columns": "ccdVisitId,filterName,ra,decl"
}