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 fluxLimit = pexConfig.ConfigField(dtype=FluxLimit, doc=
"Flux limit to apply")
571 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
572 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
573 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
574 isolated = pexConfig.ConfigField(dtype=RequireIsolated, doc=
"Isolated criteria to apply")
575 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
576 doc=
"Finite sky coordinate criteria to apply")
577 requirePrimary = pexConfig.ConfigField(dtype=RequirePrimary,
578 doc=
"Primary source criteria to apply")
581 pexConfig.Config.setDefaults(self)
582 self.
flags.bad = [
"base_PixelFlags_flag_edge",
"base_PixelFlags_flag_saturated",
"base_PsfFlux_flag"]
587@pexConfig.registerConfigurable("science", sourceSelectorRegistry)
644 doMagLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude 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 doMagError = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude error limit?")
649 doRequireFiniteRaDec = pexConfig.Field(dtype=bool, default=
True,
650 doc=
"Apply finite sky coordinate check?")
651 magLimit = pexConfig.ConfigField(dtype=MagnitudeLimit, doc=
"Magnitude limit to apply")
652 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
653 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
654 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
655 doc=
"Finite sky coordinate criteria to apply")
656 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
657 magError = pexConfig.ConfigField(dtype=MagnitudeErrorLimit, doc=
"Magnitude error limit to apply")
658 colorLimits = pexConfig.ConfigDictField(keytype=str, itemtype=ColorLimit, default={},
659 doc=
"Color limits to apply; key is used as a label only")
662@pexConfig.registerConfigurable("references", sourceSelectorRegistry)
730 Get a field from a catalog, for `lsst.afw.table` catalogs or
731 `pandas.DataFrame` or `astropy.table.Table` catalogs.
735 catalog : `lsst.afw.table.SourceCatalog` or `pandas.DataFrame`
736 or `astropy.table.Table`
737 Catalog of sources to extract field array
740 isFlag : `bool`, optional
741 Is this a flag column? If it does not exist, return array
747 Array of field values from the catalog.
750 if isinstance(catalog, (pandas.DataFrame, astropy.table.Table)):
751 if field
in catalog.columns:
754 arr = np.array(catalog[field])
756 if field
in catalog.schema:
760 if isFlag
and not found:
761 arr = np.zeros(len(catalog), dtype=bool)
763 raise KeyError(f
"Could not find field {field} in catalog.")