643 """Configuration for selecting science sources"""
644 doFluxLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flux limit?")
645 doFlags = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flag limitation?")
646 doUnresolved = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply unresolved limitation?")
647 doSignalToNoise = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply signal-to-noise limit?")
648 doIsolated = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply isolated limitation?")
649 doRequireFiniteRaDec = pexConfig.Field(dtype=bool, default=
False,
650 doc=
"Apply finite sky coordinate check?")
651 doRequirePrimary = pexConfig.Field(dtype=bool, default=
False,
652 doc=
"Apply source is primary check?")
653 doSkySources = pexConfig.Field(dtype=bool, default=
False,
654 doc=
"Include sky sources, unioned with all other criteria?")
655 fluxLimit = pexConfig.ConfigField(dtype=FluxLimit, doc=
"Flux limit to apply")
656 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
657 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
658 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
659 isolated = pexConfig.ConfigField(dtype=RequireIsolated, doc=
"Isolated criteria to apply")
660 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
661 doc=
"Finite sky coordinate criteria to apply")
662 requirePrimary = pexConfig.ConfigField(dtype=RequirePrimary,
663 doc=
"Primary source criteria to apply")
664 skyFlag = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Sky source flag to include")
667 pexConfig.Config.setDefaults(self)
669 "base_PixelFlags_flag_edge",
670 "base_PixelFlags_flag_nodata",
671 "base_PixelFlags_flag_saturated",
676 self.
skyFlag.good = [
"sky_source"]
679@pexConfig.registerConfigurable("science", sourceSelectorRegistry)
738 doMagLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude limit?")
739 doFlags = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flag limitation?")
740 doUnresolved = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply unresolved limitation?")
741 doSignalToNoise = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply signal-to-noise limit?")
742 doMagError = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude error limit?")
743 doRequireFiniteRaDec = pexConfig.Field(dtype=bool, default=
True,
744 doc=
"Apply finite sky coordinate check?")
745 doCullFromMaskedRegion = pexConfig.Field(dtype=bool, default=
False,
746 doc=
"Apply image masked region culling?")
747 magLimit = pexConfig.ConfigField(dtype=MagnitudeLimit, doc=
"Magnitude limit to apply")
748 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
749 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
750 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
751 doc=
"Finite sky coordinate criteria to apply")
752 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
753 magError = pexConfig.ConfigField(dtype=MagnitudeErrorLimit, doc=
"Magnitude error limit to apply")
754 colorLimits = pexConfig.ConfigDictField(keytype=str, itemtype=ColorLimit, default={},
755 doc=
"Color limits to apply; key is used as a label only")
756 cullFromMaskedRegion = pexConfig.ConfigField(dtype=CullFromMaskedRegion,
757 doc=
"Image mask plane criteria to apply")
760@pexConfig.registerConfigurable("references", sourceSelectorRegistry)
829 Get a field from a catalog, for `lsst.afw.table` catalogs or
830 `pandas.DataFrame` or `astropy.table.Table` catalogs.
834 catalog : `lsst.afw.table.SourceCatalog` or `pandas.DataFrame`
835 or `astropy.table.Table`
836 Catalog of sources to extract field array
839 isFlag : `bool`, optional
840 Is this a flag column? If it does not exist, return array
846 Array of field values from the catalog.
849 if isinstance(catalog, (pandas.DataFrame, astropy.table.Table)):
850 if field
in catalog.columns:
853 arr = np.array(catalog[field])
855 if field
in catalog.schema:
859 if isFlag
and not found:
860 arr = np.zeros(len(catalog), dtype=bool)
862 raise KeyError(f
"Could not find field {field} in catalog.")