def reduceToFits(obj): """Pickle to FITS Intended to be used by the ``__reduce__`` method of a class. Parameters ---------- obj any object with a ``writeFits`` method taking a `~lsst.afw.fits.MemFileManager` and possibly an `~lsst.afw.fits.ImageWriteOptions`. Returns ------- reduced : `tuple` [callable, `tuple`] a tuple in the format returned by `~object.__reduce__` """ manager = MemFileManager() options = ImageWriteOptions(ImageCompressionOptions(ImageCompressionOptions.NONE)) table = getattr(obj, 'table', None) if isinstance(table, lsst.afw.table.BaseTable): # table objects don't take `options` obj.writeFits(manager) else: # MaskedImage and Exposure both require options for each plane (image, mask, variance) if isinstance(obj, (lsst.afw.image.MaskedImage, lsst.afw.image.Exposure)): obj.writeFits(manager, options, options, options) else: obj.writeFits(manager, options) size = manager.getLength() data = manager.getData() return (unreduceFromFits, (obj.__class__, data, size))
def reduceToFits(obj): """Pickle to FITS Intended to be used by the ``__reduce__`` method of a class. Parameters ---------- obj any object with a ``writeFits`` method taking a `~lsst.afw.fits.MemFileManager` and possibly an `~lsst.afw.fits.ImageWriteOptions`. Returns ------- reduced : `tuple` [callable, `tuple`] a tuple in the format returned by `~object.__reduce__` """ manager = MemFileManager() options = ImageWriteOptions( ImageCompressionOptions(ImageCompressionOptions.NONE)) table = getattr(obj, 'table', None) if isinstance(table, lsst.afw.table.BaseTable): # table objects don't take `options` obj.writeFits(manager) else: # MaskedImage and Exposure both require options for each plane (image, mask, variance) if isinstance(obj, (lsst.afw.image.MaskedImage, lsst.afw.image.Exposure)): obj.writeFits(manager, options, options, options) else: obj.writeFits(manager, options) size = manager.getLength() data = manager.getData() return (unreduceFromFits, (obj.__class__, data, size))
def reduceToFits(obj): """Pickle to FITS Intended to be used by the __reduce__ method of a class. Assumes the existence of a "writeFits" method on the object. """ manager = MemFileManager() obj.writeFits(manager) size = manager.getLength() data = cdata(manager.getData(), size); return (unreduceFromFits, (obj.__class__, data, size))
def reduceToFits(obj): """Pickle to FITS Intended to be used by the __reduce__ method of a class. Assumes the existence of a "writeFits" method on the object. """ manager = MemFileManager() options = ImageWriteOptions( ImageCompressionOptions(ImageCompressionOptions.NONE)) try: obj.writeFits(manager, options) except Exception: obj.writeFits(manager) size = manager.getLength() data = manager.getData() return (unreduceFromFits, (obj.__class__, data, size))