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

Stop using boost persistence in afw

    XMLWordPrintable

    Details

      Description

      Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:

      • In afw add Python functions readFitsWithOptions(path, options) and writeFitsWithOptions(path, options) to all classes that the butler may persist, including Exposure, MaskedImage, Image, Mask and all catalog classes,
      • In those new functions the options argument is a daf.base.PropertySet containing the "additional data" provided to the butler. The functions parse that data and use that to call readFits or writeFits method appropriately.
      • Note that the path argument can be anything supported by an overload of readFits or writeFits: a file path, fits::File or fits::MemFileManager.
      • In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

      A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.

        Attachments

          Issue Links

            Activity

            rowen Russell Owen created issue -
            rowen Russell Owen made changes -
            Field Original Value New Value
            Risk Score 0
            rowen Russell Owen made changes -
            Epic Link DM-14447 [ 80385 ]
            rowen Russell Owen made changes -
            Team Alert Production [ 10300 ]
            rowen Russell Owen made changes -
            Description Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.
            Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            Provided we are no longer using boost persistence for these objects, we can remove the C++ formatter classes (e.g. {{ExposureFormatter}} at the same time.
            rowen Russell Owen made changes -
            Watchers Jim Bosch, Russell Owen [ Jim Bosch, Russell Owen ] Jim Bosch, Kian-Tat Lim, Russell Owen [ Jim Bosch, Kian-Tat Lim, Russell Owen ]
            jbosch Jim Bosch made changes -
            Link This issue relates to DM-14504 [ DM-14504 ]
            rowen Russell Owen made changes -
            Link This issue is triggering DM-15151 [ DM-15151 ]
            rowen Russell Owen made changes -
            Story Points 6 2
            rowen Russell Owen made changes -
            Status To Do [ 10001 ] In Progress [ 3 ]
            rowen Russell Owen made changes -
            Summary Stop using ExposureFormatter and the like Stop using boost persistence where we can in afw
            rowen Russell Owen made changes -
            Description Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            Provided we are no longer using boost persistence for these objects, we can remove the C++ formatter classes (e.g. {{ExposureFormatter}} at the same time.
            Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.

            Note that this ticket specifically excludes any changes to the way we persist PropertySet and PropertyList; PropertyListFormatter will be the one remaining formatter in afw.
            rowen Russell Owen made changes -
            Description Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.

            Note that this ticket specifically excludes any changes to the way we persist PropertySet and PropertyList; PropertyListFormatter will be the one remaining formatter in afw.
            Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.

            Note that this ticket specifically excludes any changes to the way we persist PropertySet and PropertyList because that is being handled on another ticket. Meanwhile PropertyListFormatter will be the one remaining formatter in afw.
            rowen Russell Owen made changes -
            Summary Stop using boost persistence where we can in afw Stop using boost persistence in afw except for PropertyList
            rowen Russell Owen made changes -
            Description Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.

            Note that this ticket specifically excludes any changes to the way we persist PropertySet and PropertyList because that is being handled on another ticket. Meanwhile PropertyListFormatter will be the one remaining formatter in afw.
            Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.

            This ticket specifically excludes removing PropertyListFormatter because that is being handled on another ticket. But PropertyListFormatter will be the one remaining formatter in afw.
            rowen Russell Owen made changes -
            Story Points 2 4
            rowen Russell Owen made changes -
            Summary Stop using boost persistence in afw except for PropertyList Stop using boost persistence in afw
            rowen Russell Owen made changes -
            Description Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.

            This ticket specifically excludes removing PropertyListFormatter because that is being handled on another ticket. But PropertyListFormatter will be the one remaining formatter in afw.
            Instead of using ExposureFormatter and the like it would be simpler for the butler to run FITS persistence directly. My proposal is as follows:
            - In afw add Python functions {{readFitsWithOptions(path, options)}} and {{writeFitsWithOptions(path, options)}} to all classes that the butler may persist, including {{Exposure}}, {{MaskedImage}}, {{Image}}, {{Mask}} and all catalog classes,
            - In those new functions the {{options}} argument is a {{daf.base.PropertySet}} containing the "additional data" provided to the butler. The functions parse that data and use that to call {{readFits}} or {{writeFits}} method appropriately.
            - Note that the {{path}} argument can be anything supported by an overload of {{readFits}} or {{writeFits}}: a file path, fits::File or fits::MemFileManager.
            - In daf_persistence the Fits IO functions will be simplified to call the new functions described above, and the same pair of functions can be used for image-like objects and catalogs.

            A similar treatment will be required for other objects that the butler tries to persist as FITS using boost persistence.
            rowen Russell Owen made changes -
            Component/s obs_base [ 10719 ]
            Component/s utils [ 10723 ]
            rowen Russell Owen made changes -
            Reviewers Jim Bosch [ jbosch ]
            Status In Progress [ 3 ] In Review [ 10004 ]
            rowen Russell Owen made changes -
            Story Points 4 10
            rowen Russell Owen made changes -
            Component/s meas_algorithms [ 10732 ]
            jbosch Jim Bosch made changes -
            Status In Review [ 10004 ] Reviewed [ 10101 ]
            rowen Russell Owen made changes -
            Resolution Done [ 10000 ]
            Status Reviewed [ 10101 ] Done [ 10002 ]
            rowen Russell Owen made changes -
            Link This issue relates to DM-15719 [ DM-15719 ]
            rowen Russell Owen made changes -
            Link This issue relates to DM-15738 [ DM-15738 ]
            jbosch Jim Bosch made changes -
            Link This issue relates to DM-15776 [ DM-15776 ]

              People

              Assignee:
              rowen Russell Owen
              Reporter:
              rowen Russell Owen
              Reviewers:
              Jim Bosch
              Watchers:
              Jim Bosch, Kian-Tat Lim, Russell Owen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.