lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
afw
fits
_pickleFits.py
Go to the documentation of this file.
1
# This file is part of afw.
2
#
3
# Developed for the LSST Data Management System.
4
# This product includes software developed by the LSST Project
5
# (https://www.lsst.org).
6
# See the COPYRIGHT file at the top-level directory of this distribution
7
# for details of code ownership.
8
#
9
# This program is free software: you can redistribute it and/or modify
10
# it under the terms of the GNU General Public License as published by
11
# the Free Software Foundation, either version 3 of the License, or
12
# (at your option) any later version.
13
#
14
# This program is distributed in the hope that it will be useful,
15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
# GNU General Public License for more details.
18
#
19
# You should have received a copy of the GNU General Public License
20
# along with this program. If not, see <https://www.gnu.org/licenses/>.
21
22
from
lsst.afw.fits
import
MemFileManager, CompressionOptions
23
24
import
lsst.afw.table
25
import
lsst.afw.image
26
27
28
def
reduceToFits
(obj):
29
"""Pickle to FITS
30
31
Intended to be used by the ``__reduce__`` method of a class.
32
33
Parameters
34
----------
35
obj
36
any object with a ``writeFits`` method taking a
37
`~lsst.afw.fits.MemFileManager` and possibly an
38
`~lsst.afw.fits.CompressionOptions`.
39
40
Returns
41
-------
42
reduced : `tuple` [callable, `tuple`]
43
a tuple in the format returned by `~object.__reduce__`
44
"""
45
manager =
MemFileManager
()
46
options =
CompressionOptions
()
47
table = getattr(obj,
'table'
,
None
)
48
if
isinstance(table,
lsst.afw.table.BaseTable
):
49
# table objects don't take `options`
50
obj.writeFits(manager)
51
else
:
52
# MaskedImage and Exposure both require options for each plane (image, mask, variance)
53
if
isinstance(obj, (
lsst.afw.image.MaskedImage
,
lsst.afw.image.Exposure
)):
54
obj.writeFits(manager, options, options, options)
55
else
:
56
obj.writeFits(manager, options)
57
size = manager.getLength()
58
data = manager.getData()
59
return
(unreduceFromFits, (obj.__class__, data, size))
60
61
62
def
unreduceFromFits
(cls, data, size):
63
"""Unpickle from FITS
64
65
Unpack data produced by `reduceToFits`. This method is used by the
66
pickling framework and should not need to be called from user code.
67
68
Parameters
69
----------
70
cls : `type`
71
the class of object to unpickle. Must have a class-level ``readFits``
72
method taking a `~lsst.afw.fits.MemFileManager`.
73
data : `bytes`
74
an in-memory representation of the object, compatible with
75
`~lsst.afw.fits.MemFileManager`
76
size : `int`
77
the length of `data`
78
79
Returns
80
-------
81
unpickled : ``cls``
82
the object represented by ``data``
83
"""
84
manager =
MemFileManager
(size)
85
manager.setData(data, size)
86
return
cls.readFits(manager)
lsst::afw::fits::MemFileManager
Lifetime-management for memory that goes into FITS memory files.
Definition
fits.h:126
lsst::afw::image::Exposure
A class to contain the data, WCS, and other information needed to describe an image of the sky.
Definition
Exposure.h:72
lsst::afw::image::MaskedImage
A class to manipulate images, masks, and variance as a single object.
Definition
MaskedImage.h:74
lsst::afw::table::BaseTable
Base class for all tables.
Definition
BaseTable.h:61
lsst::afw::fits._pickleFits.reduceToFits
reduceToFits(obj)
Definition
_pickleFits.py:28
lsst::afw::fits._pickleFits.unreduceFromFits
unreduceFromFits(cls, data, size)
Definition
_pickleFits.py:62
lsst::afw::fits
Definition
fits.h:32
lsst::afw::image
Definition
imageAlgorithm.dox:1
lsst::afw::table
Definition
table.dox:3
lsst::afw::fits::CompressionOptions
Options controlling image compression with FITS.
Definition
fitsCompression.h:100
Generated on
for lsst.afw by
1.17.0