679 """Configuration for selecting science sources"""
680 doFluxLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flux limit?")
681 doFlags = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flag limitation?")
682 doUnresolved = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply unresolved limitation?")
683 doSignalToNoise = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply signal-to-noise limit?")
684 doIsolated = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply isolated limitation?")
685 doRequireFiniteRaDec = pexConfig.Field(dtype=bool, default=
False,
686 doc=
"Apply finite sky coordinate check?")
687 doRequirePrimary = pexConfig.Field(dtype=bool, default=
False,
688 doc=
"Apply source is primary check?")
689 doSkySources = pexConfig.Field(dtype=bool, default=
False,
690 doc=
"Include sky sources, unioned with all other criteria?")
691 doCentroidErrorLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply limit on centroid errors?")
692 fluxLimit = pexConfig.ConfigField(dtype=FluxLimit, doc=
"Flux limit to apply")
693 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
694 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
695 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
696 isolated = pexConfig.ConfigField(dtype=RequireIsolated, doc=
"Isolated criteria to apply")
697 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
698 doc=
"Finite sky coordinate criteria to apply")
699 requirePrimary = pexConfig.ConfigField(dtype=RequirePrimary,
700 doc=
"Primary source criteria to apply")
701 skyFlag = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Sky source flag to include")
702 centroidErrorLimit = pexConfig.ConfigField(dtype=CentroidErrorLimit,
703 doc=
"Limit to place on centroid errors.")
706 pexConfig.Config.setDefaults(self)
708 "base_PixelFlags_flag_edge",
709 "base_PixelFlags_flag_nodata",
710 "base_PixelFlags_flag_saturated",
715 self.
skyFlag.good = [
"sky_source"]
718@pexConfig.registerConfigurable("science", sourceSelectorRegistry)
779 doMagLimit = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude limit?")
780 doFlags = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply flag limitation?")
781 doUnresolved = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply unresolved limitation?")
782 doSignalToNoise = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply signal-to-noise limit?")
783 doMagError = pexConfig.Field(dtype=bool, default=
False, doc=
"Apply magnitude error limit?")
784 doRequireFiniteRaDec = pexConfig.Field(dtype=bool, default=
True,
785 doc=
"Apply finite sky coordinate check?")
786 doCullFromMaskedRegion = pexConfig.Field(dtype=bool, default=
False,
787 doc=
"Apply image masked region culling?")
788 magLimit = pexConfig.ConfigField(dtype=MagnitudeLimit, doc=
"Magnitude limit to apply")
789 flags = pexConfig.ConfigField(dtype=RequireFlags, doc=
"Flags to require")
790 unresolved = pexConfig.ConfigField(dtype=RequireUnresolved, doc=
"Star/galaxy separation to apply")
791 requireFiniteRaDec = pexConfig.ConfigField(dtype=RequireFiniteRaDec,
792 doc=
"Finite sky coordinate criteria to apply")
793 signalToNoise = pexConfig.ConfigField(dtype=SignalToNoiseLimit, doc=
"Signal-to-noise limit to apply")
794 magError = pexConfig.ConfigField(dtype=MagnitudeErrorLimit, doc=
"Magnitude error limit to apply")
795 colorLimits = pexConfig.ConfigDictField(keytype=str, itemtype=ColorLimit, default={},
796 doc=
"Color limits to apply; key is used as a label only")
797 cullFromMaskedRegion = pexConfig.ConfigField(dtype=CullFromMaskedRegion,
798 doc=
"Image mask plane criteria to apply")
801@pexConfig.registerConfigurable("references", sourceSelectorRegistry)
870 Get a field from a catalog, for `lsst.afw.table` catalogs or
871 `pandas.DataFrame` or `astropy.table.Table` catalogs.
875 catalog : `lsst.afw.table.SourceCatalog` or `pandas.DataFrame`
876 or `astropy.table.Table`
877 Catalog of sources to extract field array
880 isFlag : `bool`, optional
881 Is this a flag column? If it does not exist, return array
887 Array of field values from the catalog.
890 if isinstance(catalog, (pandas.DataFrame, astropy.table.Table)):
891 if field
in catalog.columns:
894 arr = np.array(catalog[field])
896 if field
in catalog.schema:
900 if isFlag
and not found:
901 arr = np.zeros(len(catalog), dtype=bool)
903 raise KeyError(f
"Could not find field {field} in catalog.")