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)
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):