I’ve just merged DM-27177, which makes major changes to how we are handling filter information in Science Pipelines. This follows the deprecation of the
Filter class and is about one major version behind the original plan presented in Migrating from afw.image.Filter to FilterLabel.
The changes made by DM-27177 will be visible starting from weekly
w_2022_24 (expected tomorrow) as well as the Science Pipelines release 24.
lsst.afw.Filter class is being removed, as are the various
reset methods needed to manage it. This leaves
FilterLabel as the only class for representing filter information in exposures.
getFilter and similarly-named methods on
ExposureInfo now take and return
FilterLabel objects, and are functionally identical to the
getFilterLabel (etc.) methods added earlier in the transition. The latter methods are now deprecated, and Science Pipelines code has been migrated to use the new
getFilter. Apologies for the zig-zagging naming convention, but this is the last migration step:
getFilter is expected to be the final filter-related API.
Likewise, Butler exposure datasets now have a
filter component that returns a
FilterLabel object, and
filterLabel is deprecated. I have tried to migrate Science Pipelines code that used the
filterLabel component to
filter, but I may have missed a few references.
Unlike the introduction of
FilterLabel, the latest changes do not change the class used to store filter information, so existing code that uses
FilterLabel will continue to work (possibly with deprecation warnings), and there will be no information lost.
Code that still depended on the old
getFilter methods will break.
Finally, if there are any
Filter datasets persisted to old Gen 3 Butler repositories, they will no longer be readable (and may confuse
query-datast-types). This should not be an issue in practice, as it would only affect exposures written with composite disassembly before we began the migration to
FilterLabel. In particular, all the “official” repositories are unaffected, as are old exposures written without disassembly.
We are roughly one release behind the schedule presented in Migrating from afw.image.Filter to FilterLabel, but are still aiming for a fast transition (per RFC-748). We expect to remove the
getFilterLabel methods and the
filterLabel Butler component in Science Pipelines release 25. At that point, the transition to
FilterLabel will be complete.
Thank you all for your patience through what has turned out to be a very long migration!