Ejemplo n.º 1
0
    def testColorLimits(self):
        num = 10
        for _ in range(num):
            self.catalog.addNew()
        color = np.linspace(-0.5, 0.5, num, True)
        flux = 1000.0
        # Definition: color = mag(flux) - mag(otherFlux)
        otherFlux = lsst.afw.image.fluxFromABMag(
            lsst.afw.image.abMagFromFlux(flux) - color)
        self.catalog["flux"] = flux
        self.catalog["other_flux"] = otherFlux
        minimum, maximum = -0.1, 0.2
        self.config.colorLimits = {
            "test":
            ColorLimit(primary="flux",
                       secondary="other_flux",
                       minimum=minimum,
                       maximum=maximum)
        }
        self.check(((color > minimum) & (color < maximum)).tolist())

        # Works with no minimum set?
        self.config.colorLimits["test"].minimum = None
        self.check((color < maximum).tolist())

        # Works with no maximum set?
        self.config.colorLimits["test"].maximum = None
        self.config.colorLimits["test"].minimum = minimum
        self.check((color > minimum).tolist())

        # Multiple limits
        self.config.colorLimits = {
            "test":
            ColorLimit(primary="flux", secondary="other_flux",
                       minimum=minimum),
            "other":
            ColorLimit(primary="flux", secondary="other_flux", maximum=maximum)
        }
        assert maximum > minimum  # To be non-mutually-exclusive
        self.check(((color > minimum) & (color < maximum)).tolist())

        # Multiple mutually-exclusive limits
        self.config.colorLimits["test"] = ColorLimit(primary="flux",
                                                     secondary="other_flux",
                                                     maximum=-0.1)
        self.config.colorLimits["other"] = ColorLimit(primary="flux",
                                                      secondary="other_flux",
                                                      minimum=0.1)
        self.check([False] * num)
Ejemplo n.º 2
0
bgFile = os.path.join(ObsConfigDir, "background.py")
config.detection.background.load(bgFile)

config.astrometry.matcher.numBrightStars = 150

# Set to match defaults curretnly used in HSC production runs (e.g. S15B)
config.catalogCalculation.plugins[
    'base_ClassificationExtendedness'].fluxRatio = 0.95

config.photoCal.applyColorTerms = True
config.photoCal.photoCatName = "ps1_pv3_3pi_20170110"
HscObsConfigDir = os.path.join(getPackageDir("obs_subaru"), "config", "hsc")
config.photoCal.colorterms.load(os.path.join(HscObsConfigDir, 'colorterms.py'))
colors = config.photoCal.match.referenceSelection.colorLimits
colors["g-r"] = ColorLimit(primary="g_flux", secondary="r_flux", minimum=0.0)
colors["r-i"] = ColorLimit(primary="r_flux", secondary="i_flux", maximum=0.5)
config.photoCal.match.referenceSelection.doMagLimit = True
config.photoCal.match.referenceSelection.magLimit.fluxField = "i_flux"
config.photoCal.match.referenceSelection.magLimit.maximum = 22.0

for refObjLoader in (
        config.astromRefObjLoader,
        config.photoRefObjLoader,
):
    refObjLoader.retarget(LoadIndexedReferenceObjectsTask)
    refObjLoader.load(
        os.path.join(getPackageDir("obs_subaru"), "config", "filterMap.py"))
    refObjLoader.ref_dataset_name = "ps1_pv3_3pi_20170110"

for refObjLoader in (config.astromRefObjLoader, config.photoRefObjLoader):