Investigation by @cmorrison and @mrawls into processing oddities in ap_pipe’s use of obs_decam data turned up the fact that decam does not have a proper configuration for PhotoCalTask. Comparing obs_decam and obs_subaru shows that there are many required settings in the obs_subaru configurations that are not specific to HSC and should be defaults for their respective Tasks. There are some truly camera-specific settings in obs_subaru, so we will have to disentangle the general from the specific.
This reminds me of the jointcal configurations that are going into obs_lsst and obs_subaru in DM-17830: none of that configuration is really specific to those cameras, so it should be put in a more generally accessible place, possibly JointcalConfig.setDefaults().
This points to a serious weakness in our task configuration system: the more general we make our Tasks (e.g. ScienceSourceSelector and ReferenceSourceSelector), the more required configurations end up hidden in the most-used obs packages (i.e. obs_subaru). One option to deal with this would be to put reasonable defaults into the tasks that use these configurable subtasks. In the example above, PhotoCalTask should configure match.referenceSelection and match.sourceSelection. Other suggestions are welcome.
This lack of reasonable defaults has resulted in the UW AP group wasting a lot of time chasing down what are likely phantom errors due to mis-configuration.
I agree that we’re probably underusing setDefaults(), but how is that a weakness of the system itself?
For example, ApPipeConfig.setDefaults() does not set anything related to ProcessCcdTask, but that’s more because we couldn’t find anything that was obviously AP-specific (perhaps there is!) than because of obs_decam and obs_subaru.
This reminds me of the jointcal configurations that are going into obs_lsst and obs_subaru in DM-17830: none of that configuration is really specific to those cameras, so it should be put in a more generally accessible place, possibly JointcalConfig.setDefaults() .
I want to promote these defaults from obs_subaru to jointcal. Please please please. I’ll put it on DM-17830.
I forget what the ticket number is, but I thought we had a ticket out there somewhere to do this already. I seem to think that @laurenam might have been working on it or filed it or something like that.
Had a productive conversation with @ebellm and @cmorrison this morning about all this. We should think carefully about where refcat-based default configs should land vs. source-catalog-based default configs. The former should probably go along with wherever we set the default ref_dataset_name for photometric (and/or astrometric) calibration. The latter are a function of the science dataset being processed and probably shouldn’t be set at the same level.
On the other hand, I don’t like proposing five zillion different places for all the config defaults to live, because I can reasonably imagine a future user wanting to adjust a magnitude or signal-to-noise limit for source selection from both catalogs and being confused about where each one’s defaults are coming from.