How to set psfDeterminer to psfex in v24_0_0?

I am using LSST pipelines version v24_0_0 on RSP. I am attempting to run the following pipetask processing command, which was previously successful with v23_0_1:

DATAQUERY="exposure.observation_type='science' AND detector!=2 AND detector!=61"
OUTPUT=DECam/runs/v01
LOGFILE=$LOGDIR/step1-v01.log; \
date | tee $LOGFILE; \
pipetask --long-log run --register-dataset-types -j 4 \
-b $REPO --instrument lsst.obs.decam.DarkEnergyCamera \
-i $INPUT \
-o $OUTPUT \
-C calibrate:config/processCcd_grz_config.py \
-C transformPreSourceTable:config/transformPreSourceTable_config.py \
-c calibrate:deblend.maxFootprintArea=3000 \
-c characterizeImage:psfIterations=1 \
-c characterizeImage:measurePsf.psfDeterminer.name="psfex" \
-c calibrate:astrometry.matcher.maxRefObjects=3000 \
-c isr:doFringe=False \
-p $DRP_PIPE_DIR/pipelines/DECam/DRP-Merian.yaml#step1 \
-d "instrument='DECam' AND $DATAQUERY" \
2>&1 | tee -a $LOGFILE; \
date | tee -a $LOGFILE

This fails early on with an error about:

lsst.pex.config.config.FieldValidationError: RegistryField ‘measurePsf.psfDeterminer’ failed validation: Unknown key ‘psfex’ in Registry/ConfigChoiceField

I have attached the full log file.

I looked at the v24_0_0 docs and it appears to me that ‘psfex’ is still listed as a valid option there:

https://pipelines.lsst.io/v/v24_0_0/modules/lsst.pipe.tasks/tasks/lsst.pipe.tasks.measurePsf.MeasurePsfTask.html#lsst-configfield-lsst-pipe-tasks-measurepsf-measurepsfconfig-psfdeterminer-section

How do I select psfex for measurePsf.psfDeterminer in v24_0_0? Or is psfex no longer an option in v24_0_0?

This may not be related, but I’m also noticing that on the front page of the v24_0_0 docs, there’s a sentence that says:

This documentation covers version v23_0_0. Learn what’s new. You can also find documentation for other versions.

Is the “v23_0_0” listed there accurate? If the docs are not updated for the release I’m actually using then maybe that could explain what’s going on.

The page I’m referring to is The LSST Science Pipelines — LSST Science Pipelines.

Thanks very much.

step1-v01.log (4.6 KB)

This version has not formally been released yet so the documentation does not point to it by default. v24 will be released soon and then things will become a bit more self consistent and issues with the version number in the docs will be cleaned up. We are also working on v25 as well (which is based on w_2022_48). The release notes are still a work in progress and have not yet been merged to a release branch.

As I mentioned in another thread, you are doing detailed enough work that you should really be using a modern weekly release. w_2022_48 is a good place to start.

Are you sure it isn’t:

characterizeImage:measurePsf.psfDeterminer="psfex"

?

1 Like
characterizeImage:measurePsf.psfDeterminer="psfex"

Thanks. I think that I did try guessing that before posting this topic. I just tried it again and got a similar (but not identical) error traceback when using measurePsf.psfDeterminer as compared to using measurePsf.psfDeterminer.name in the command. Without .name, the traceback starts with:

lsst.daf.butler.cli.utils ERROR: Caught an exception, details are in traceback:
Traceback (most recent call last):
  File "/opt/lsst/software/stack/stack/miniconda3-py38_4.9.2-4.0.5/Linux64/pex_config/gc75b51116a+846e1f9efd/python/lsst/pex/config/configChoiceField.py", line 281, in __getitem__
    value = self._dict[k]
KeyError: 'psfex'

I’ve attached the two launch scripts and corresponding log files in case the details could be helpful (for this test I tried only generating the QuantumGraph).

I will also aim to re-try this in w_2022_48 soon. Maybe that will end up running just fine.

step1_qgraph-psfex.sh (654 Bytes)
step1_qgraph-psfex-no_name.sh (657 Bytes)
qgraph_test-psfex.log (4.5 KB)
qgraph_test-psfex-no_name.log (4.6 KB)

This did end up working in w_2022_48, using either one of the following syntaxes:

-c characterizeImage:measurePsf.psfDeterminer="psfex"
-c characterizeImage:measurePsf.psfDeterminer.name="psfex"

I will attempt to mark this as the solution.