Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-14997

Implement RFC-498: homogenize naming of calibration flags

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: pipe_tasks
    • Labels:
      None
    • Story Points:
      6
    • Sprint:
      DRP F18-2, DRP F18-3
    • Team:
      Data Release Production

      Description

      We currently have the following set of names for the calib_* flags that get propagated to source catalogs:

      • calib_detected
      • calib_psfCandidate
      • calib_psfUsed
      • calib_psf_reserved (changed from calib_psfReserved on DM-12207 in this commit)
      • calib_astrometryUsed
      • calib_photometry_used (changed from calib_photometryUsed on DM-12207, in this commit)
      • calib_photometry_reserved (changed from calib_photometryReserved on DM-12207 in this commit)

      I.e. there is a mixture of underscore and camelCase for the third (final) "descriptor", making it difficult to remember which standard to use when trying to select on a given flag.  These should all be homogenized and, given the recent changes in this direction noted above, I believe the preferred choice is the underscore standard.

      A change in the flag names will affect any current user scripts that select on these flags.  To prevent scripts from breaking, it may be desirable to set a (temporary?) alias (although this was not done along with the DM-12207 changes and there was no uproar that I'm aware of).

        Attachments

          Issue Links

            Activity

            No builds found.
            lauren Lauren MacArthur created issue -
            lauren Lauren MacArthur made changes -
            Field Original Value New Value
            Epic Link DM-14405 [ 79812 ]
            lauren Lauren MacArthur made changes -
            Link This issue relates to DM-12207 [ DM-12207 ]
            lauren Lauren MacArthur made changes -
            Risk Score 0
            lauren Lauren MacArthur made changes -
            Watchers John Swinbank, Lauren MacArthur, Paul Price, Yusra AlSayyad [ John Swinbank, Lauren MacArthur, Paul Price, Yusra AlSayyad ] Jim Bosch, John Swinbank, Lauren MacArthur, Paul Price, Yusra AlSayyad [ Jim Bosch, John Swinbank, Lauren MacArthur, Paul Price, Yusra AlSayyad ]
            lauren Lauren MacArthur made changes -
            Link This issue blocks DM-11974 [ DM-11974 ]
            lauren Lauren MacArthur made changes -
            Link This issue blocks DM-11866 [ DM-11866 ]
            lauren Lauren MacArthur made changes -
            Link This issue relates to DM-14998 [ DM-14998 ]
            Hide
            jbosch Jim Bosch added a comment -

            Schema naming convention documentation on when to use CamelCase vs. underscores either never existed outside or had been lost to the depths of time.  This has been fixed on DM-14998.  Relevant excerpt:

            A good rule of thumb is that if two words are not individually meaningful (or mean something different when separated), join them with CamelCase.

             

            Show
            jbosch Jim Bosch added a comment - Schema naming convention documentation on when to use CamelCase vs. underscores either never existed outside or had been lost to the depths of time.  This has been fixed on DM-14998 .  Relevant excerpt: A good rule of thumb is that if two words are not individually meaningful (or mean something different when separated), join them with CamelCase.  
            lauren Lauren MacArthur made changes -
            Link This issue is triggered by RFC-498 [ RFC-498 ]
            lauren Lauren MacArthur made changes -
            Summary Homogenize naming of calibration flags Implement RFC-498: homogenize naming of calibration flags
            lauren Lauren MacArthur made changes -
            Status To Do [ 10001 ] In Progress [ 3 ]
            lauren Lauren MacArthur made changes -
            Sprint DRP F18-2 [ 756 ]
            Story Points 4
            Assignee Lauren MacArthur [ lauren ]
            lauren Lauren MacArthur made changes -
            Link This issue relates to DM-15109 [ DM-15109 ]
            Hide
            lauren Lauren MacArthur added a comment -

            Would you mind giving this a look?  In particular, I'd like to know if you are happy with the accommodation I made in jointcal for the test that uses previously processed catalogs that have the old names and one is used in the FlaggedSourceSelector.  The other option I considered is a try/except in the FlaggedSourceSelector itself along the lines:

                    try:
                        key = sourceCat.schema.find(self.config.field).key
                    except NoResults:
                        # Backwards compatibility with old (pre-DM-14997) source catalogs
                        oldFieldName = self.config.field
                        if any(subStr in oldFieldName for subStr in ("_used", "_reserved", "_candidate")):
                            undIndex = oldFieldName.rfind("_")
                            oldFieldName = replace(oldFieldName[undIndex: undIndex + 2],
                                                   oldFieldName[undIndex + 1].capitalize())
                            key = sourceCat.schema.find(oldFieldName).key
                            self.log.warn(("Your catalog has old, pre-RFC-498, calib flag naming ({} is now named "
                                           "{}).  Consider regenerating with an up-to-date stack").
                                          format(oldFieldName, self.config.field))
              
            

            but I think just editing the jointcal test is less invasive (and is the only place that uses the FlaggedSourceSelector, as far as I can tell).

            I've already had a successful Jenkins lsst_distrib + ci_hsc run, but I just had to rebase to some updates on master, so a new one is running now just to be sure.

            Also, as soon as this lands, I'm going to announce it as widely as possible via a community post and pings to slack channels (dm-square and desc-ssim/dc2 in particular) and a few individuals where I know (via an all of GitHub search on calib_psfUsed) there are users with notebooks that use some of the old flag names. I will include in the post an example piece of code that would add aliases to a catalog when read in to keep things backwards compatible for anyone wanting to look at catalogs processed with the old and/or new naming (I'm working on that now for pipe_analysis on DM-15109).

            Show
            lauren Lauren MacArthur added a comment - Would you mind giving this a look?  In particular, I'd like to know if you are happy with the accommodation I made in jointcal for the test that uses previously processed catalogs that have the old names and one is used in the FlaggedSourceSelector .  The other option I considered is a try/except in the  FlaggedSourceSelector itself along the lines: try : key = sourceCat.schema.find( self .config.field).key except NoResults: # Backwards compatibility with old (pre-DM-14997) source catalogs oldFieldName = self .config.field if any (subStr in oldFieldName for subStr in ( "_used" , "_reserved" , "_candidate" )): undIndex = oldFieldName.rfind( "_" ) oldFieldName = replace(oldFieldName[undIndex: undIndex + 2 ], oldFieldName[undIndex + 1 ].capitalize()) key = sourceCat.schema.find(oldFieldName).key self .log.warn(( "Your catalog has old, pre-RFC-498, calib flag naming ({} is now named " "{}). Consider regenerating with an up-to-date stack" ). format (oldFieldName, self .config.field)) but I think just editing the jointcal test is less invasive (and is the only place that uses the FlaggedSourceSelector , as far as I can tell). I've already had a successful Jenkins lsst_distrib + ci_hsc run , but I just had to rebase to some updates on master, so a new one is running now just to be sure. Also, as soon as this lands, I'm going to announce it as widely as possible via a community post and pings to slack channels (dm-square and desc-ssim/dc2 in particular) and a few individuals where I know (via an all of GitHub search on calib_psfUsed ) there are users with notebooks that use some of the old flag names. I will include in the post an example piece of code that would add aliases to a catalog when read in to keep things backwards compatible for anyone wanting to look at catalogs processed with the old and/or new naming (I'm working on that now for pipe_analysis on DM-15109 ).
            lauren Lauren MacArthur made changes -
            Reviewers John Parejko [ parejkoj ]
            Status In Progress [ 3 ] In Review [ 10004 ]
            Hide
            Parejkoj John Parejko added a comment -

            This looks fine.

            I like your solution for how to deal with jointcal's flaggedSourceSelector test: it's the simplest and I don't know when we'll reprocess that particular data (it may be a while).

            Show
            Parejkoj John Parejko added a comment - This looks fine. I like your solution for how to deal with jointcal's flaggedSourceSelector test: it's the simplest and I don't know when we'll reprocess that particular data (it may be a while).
            Parejkoj John Parejko made changes -
            Status In Review [ 10004 ] Reviewed [ 10101 ]
            Parejkoj John Parejko made changes -
            Risk Score 0 1
            yusra Yusra AlSayyad made changes -
            Sprint DRP F18-2 [ 756 ] DRP F18-2, DRP F18-3 [ 756, 768 ]
            yusra Yusra AlSayyad made changes -
            Risk Score 1 0
            Hide
            lauren Lauren MacArthur added a comment -

            Thanks for the review, John.  It came in just as I was going on vacation, hence the delay in getting this merged.  I just rebased and a Jenkins run passed. However, in a bout of paranoia, I've decided to wait until after the PCW next week to merge this (I fear demo notebooks using latest weekly but pointing to old processed catalogs, etc.)

            Show
            lauren Lauren MacArthur added a comment - Thanks for the review, John.  It came in just as I was going on vacation, hence the delay in getting this merged.  I just rebased and a Jenkins run passed . However, in a bout of paranoia, I've decided to wait until after the PCW next week to merge this (I fear demo notebooks using latest weekly but pointing to old processed catalogs, etc.)
            Hide
            lauren Lauren MacArthur added a comment -

            I rebased to master and reran Jenkins (lsst_distrib + ci_hsc) on Monday.  This run succeded, finished too late for me to merge. I kicked off another Jenkins today (I did not have to rebase any packages) just to be sure. The two centos builds passed and the OS X is almost all the way though, but I'm going to merge now rather than wait for it to finish fearing having to go through this process again.

            Show
            lauren Lauren MacArthur added a comment - I rebased to master and reran Jenkins (lsst_distrib + ci_hsc) on Monday.  This run succeded , finished too late for me to merge. I kicked off another Jenkins today (I did not have to rebase any packages) just to be sure. The two centos builds passed and the OS X is almost all the way though, but I'm going to merge now rather than wait for it to finish fearing having to go through this process again.
            lauren Lauren MacArthur made changes -
            Story Points 4 6
            lauren Lauren MacArthur made changes -
            Resolution Done [ 10000 ]
            Status Reviewed [ 10101 ] Done [ 10002 ]

              People

              Assignee:
              lauren Lauren MacArthur
              Reporter:
              lauren Lauren MacArthur
              Reviewers:
              John Parejko
              Watchers:
              Jim Bosch, John Parejko, John Swinbank, Lauren MacArthur, Paul Price, Yusra AlSayyad
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.