Details
-
Type:
Improvement
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: afw, daf_persistence, meas_algorithms, obs_base, utils
-
Labels:
-
Story Points:10
-
Epic Link:
-
Team:Alert Production
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
- is triggering
-
DM-15151 Set symbol visibility to hidden in pybind11 wrappers
- Done
Activity
Field | Original Value | New Value |
---|---|---|
Risk Score | 0 |
Epic Link |
|
Team | Alert Production [ 10300 ] |
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. |
Watchers | Jim Bosch, Russell Owen [ Jim Bosch, Russell Owen ] | Jim Bosch, Kian-Tat Lim, Russell Owen [ Jim Bosch, Kian-Tat Lim, Russell Owen ] |
Story Points | 6 | 2 |
Status | To Do [ 10001 ] | In Progress [ 3 ] |
Summary | Stop using ExposureFormatter and the like | Stop using boost persistence where we can in afw |
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. |
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. |
Summary | Stop using boost persistence where we can in afw | Stop using boost persistence in afw except for PropertyList |
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. |
Story Points | 2 | 4 |
Summary | Stop using boost persistence in afw except for PropertyList | Stop using boost persistence in afw |
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. |
Component/s | obs_base [ 10719 ] | |
Component/s | utils [ 10723 ] |
Reviewers | Jim Bosch [ jbosch ] | |
Status | In Progress [ 3 ] | In Review [ 10004 ] |
Story Points | 4 | 10 |
Component/s | meas_algorithms [ 10732 ] |
Status | In Review [ 10004 ] | Reviewed [ 10101 ] |
Resolution | Done [ 10000 ] | |
Status | Reviewed [ 10101 ] | Done [ 10002 ] |