560 """Configuration for selecting science sources"""
561 doFluxLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flux limit?")
562 doFlags = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flag limitation?")
563 doUnresolved = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply unresolved limitation?")
564 doSignalToNoise = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply signal-to-noise limit?")
565 doIsolated = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply isolated limitation?")
566 doRequireFiniteRaDec = pexConfig.Field(dtype=bool, default=
False,
567 doc=
"Apply finite sky coordinate check?")
568 doRequirePrimary = pexConfig.Field(dtype=bool, default=
False,
569 doc=
"Apply source is primary check?")
570 doSkySources = pexConfig.Field(dtype=bool, default=
False,
571 doc=
"Include sky sources, unioned with all other criteria?")
572 fluxLimit = pexConfig.ConfigField(dtype=FluxLimit, doc=
"Flux limit to apply")
573 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
574 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
575 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
576 isolated = pexConfig.ConfigField(dtype=RequireIsolated, doc=
"Isolated criteria to apply")
577 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
578 doc=
"Finite sky coordinate criteria to apply")
579 requirePrimary = pexConfig.ConfigField(dtype=RequirePrimary,
580 doc=
"Primary source criteria to apply")
581 skyFlag = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Sky source flag to include")
584 pexConfig.Config.setDefaults(self)
585 self.
flags.bad = [
"base_PixelFlags_flag_edge",
"base_PixelFlags_flag_saturated",
"base_PsfFlux_flag"]
588 self.
skyFlag.good = [
"sky_source"]
591@pexConfig.registerConfigurable("science", sourceSelectorRegistry)
650 doMagLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude limit?")
651 doFlags = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flag limitation?")
652 doUnresolved = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply unresolved limitation?")
653 doSignalToNoise = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply signal-to-noise limit?")
654 doMagError = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude error limit?")
655 doRequireFiniteRaDec = pexConfig.Field(dtype=bool, default=
True,
656 doc=
"Apply finite sky coordinate check?")
657 magLimit = pexConfig.ConfigField(dtype=MagnitudeLimit, doc=
"Magnitude limit to apply")
658 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
659 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
660 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
661 doc=
"Finite sky coordinate criteria to apply")
662 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
663 magError = pexConfig.ConfigField(dtype=MagnitudeErrorLimit, doc=
"Magnitude error limit to apply")
664 colorLimits = pexConfig.ConfigDictField(keytype=str, itemtype=ColorLimit, default={},
665 doc=
"Color limits to apply; key is used as a label only")
668@pexConfig.registerConfigurable("references", sourceSelectorRegistry)
736 Get a field from a catalog, for `lsst.afw.table` catalogs or
737 `pandas.DataFrame` or `astropy.table.Table` catalogs.
741 catalog : `lsst.afw.table.SourceCatalog` or `pandas.DataFrame`
742 or `astropy.table.Table`
743 Catalog of sources to extract field array
746 isFlag : `bool`, optional
747 Is this a flag column? If it does not exist, return array
753 Array of field values from the catalog.
756 if isinstance(catalog, (pandas.DataFrame, astropy.table.Table)):
757 if field
in catalog.columns:
760 arr = np.array(catalog[field])
762 if field
in catalog.schema:
766 if isFlag
and not found:
767 arr = np.zeros(len(catalog), dtype=bool)
769 raise KeyError(f
"Could not find field {field} in catalog.")