54) -> None:
55 """Write a simple FITS file with no extensions.
56
57 Parameters
58 ----------
59 file : `str` or `int`
60 Path to a file or a file descriptor.
61 data : `lsst.afw.Image` or `lsst.afw.Mask`
62 Data to be displayed.
63 wcs : `lsst.afw.geom.SkyWcs` or `None`, optional
64 WCS to be written to header to FITS file.
65 title : `str`, optional
66 If defined, the value to be stored in the ``OBJECT`` header.
67 Overrides any value found in ``metadata``.
68 metadata : `lsst.daf.base.PropertySet` or `None`, optional
69 Additional information to be written to FITS header.
70 """
71 ps = PropertyList()
72
73
74 if metadata:
76 ps.update(metadata)
77
78
79 _add_wcs("B", ps)
80
81 if not wcs:
82 _add_wcs("", ps)
83 else:
84 shift = Extent2D(-data.getX0(), -data.getY0())
85 if wcs.hasFitsApproximation():
86 wcs = wcs.getFitsApproximation()
87 new_wcs = wcs.copyAtShiftedPixelOrigin(shift)
88 wcs_metadata = new_wcs.getFitsMetadata()
89 ps.update(wcs_metadata)
90
91 if title:
92 ps.set("OBJECT", title, "Image being displayed")
93
94 if isinstance(file, str):
95 data.writeFits(file, metadata=ps)
96 else:
98 data.writeFits(manager=mem, metadata=ps)
99 if isinstance(file, int):
100
101
102 with os.fdopen(os.dup(file), "wb") as fh:
103 fh.write(mem.getData())
104 elif isinstance(file, subprocess.Popen):
105 file.communicate(input=mem.getData())
106 else:
107
108 file.write(mem.getData())
Lifetime-management for memory that goes into FITS memory files.
void stripWcsMetadata(daf::base::PropertySet &metadata)