Hi Shenming,
Yes, I added the ability to select on S/N and/or flux for various star selectors. Please have a look at DM-17043 for details.
As for the various fields, each task can set its own sourceSelector
algorithm based on the specific needs for the given task, e.g. for measurePsf
, the default is set to objectSize
here.
They can also be overridden in configs as in obs_subaru
for measureApCorr here.
and measurePsf here.
If you want to have a closer look into the various types of selectors (i.e. what values they consider in their selection process), have a look at https://github.com/lsst/meas_algorithms/blob/master/python/lsst/meas/algorithms/sourceSelector.py. E.g. the ScienceSourceSelector
is defined here and the ReferenceSourceSelector
is defined here).
Also note that in the persisted config files, you may see multiple entries for different algorithms for a given task, but it’s only the settings for the algorithm set in [taskName].sourceSelector.name
that gets effected. As an example, the latest RC2 HSC run has:
$ grep Selector /datasets/hsc/repo/rerun/RC/w_2020_14/DM-24359-sfm/config/singleFrameDriver.py | grep name
config.processCcd.charImage.measureApCorr.sourceSelector['science'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.charImage.measureApCorr.sourceSelector['references'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.charImage.measureApCorr.sourceSelector.name='science'
config.processCcd.charImage.ref_match.sourceSelector['science'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.charImage.ref_match.sourceSelector['references'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.charImage.ref_match.sourceSelector.name='matcher'
config.processCcd.charImage.ref_match.referenceSelector.unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.charImage.measurePsf.starSelector['science'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.charImage.measurePsf.starSelector['references'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.charImage.measurePsf.starSelector.name='objectSize'
config.processCcd.calibrate.astrometry.sourceSelector['science'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.calibrate.astrometry.sourceSelector['references'].unresolved.name='base_ClassificationExtendedness_value'
config.processCcd.calibrate.astrometry.sourceSelector.name='matcher'
config.processCcd.calibrate.astrometry.referenceSelector.unresolved.name='base_ClassificationExtendedness_value'
so, despite there being entries for algorithms other than matcher
for config.processCcd.calibrate.astrometry.sourceSelector[]
(e.g. science, references, objectSize, etc.), it is only these for the “named” matcher
that apply:
config.processCcd.calibrate.astrometry.sourceSelector['matcher'].sourceFluxType='Psf'
config.processCcd.calibrate.astrometry.sourceSelector['matcher'].minSnr=40.0
config.processCcd.calibrate.astrometry.sourceSelector['matcher'].excludePixelFlags=True
Hope this helps (as opposed to causing further confusion!)