From ce71e68110ab930707ef9cd761cc6fab8301582a Mon Sep 17 00:00:00 2001 From: Tim Jenness Date: Fri, 7 Mar 2025 14:30:45 -0700 Subject: [PATCH 1/3] Pass metadata through from afw display --- python/lsst/display/firefly/firefly.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/lsst/display/firefly/firefly.py b/python/lsst/display/firefly/firefly.py index 29ba404..bc611cc 100644 --- a/python/lsst/display/firefly/firefly.py +++ b/python/lsst/display/firefly/firefly.py @@ -154,7 +154,7 @@ def _clearImage(self): self._client.dispatch(action_type='ImagePlotCntlr.deletePlotView', payload=dict(plotId=str(self.display.frame))) - def _mtv(self, image, mask=None, wcs=None, title=""): + def _mtv(self, image, mask=None, wcs=None, title="", metadata=None): """Display an Image and/or Mask on a Firefly display """ if title == "": @@ -165,7 +165,7 @@ def _mtv(self, image, mask=None, wcs=None, title=""): self._erase() with tempfile.NamedTemporaryFile() as fd: - afwDisplay.writeFitsImage(fd.name, image, wcs, title) + afwDisplay.writeFitsImage(fd.name, image, wcs, title, metadata=metadata) fd.flush() fd.seek(0, 0) self._fireflyFitsID = _fireflyClient.upload_data(fd, 'FITS') @@ -199,7 +199,7 @@ def _mtv(self, image, mask=None, wcs=None, title=""): if self.verbose: print('displaying mask') with tempfile.NamedTemporaryFile() as fdm: - afwDisplay.writeFitsImage(fdm.name, mask, wcs, title) + afwDisplay.writeFitsImage(fdm.name, mask, wcs, title, metadata=metadata) fdm.flush() fdm.seek(0, 0) self._fireflyMaskOnServer = _fireflyClient.upload_data(fdm, 'FITS') From 682a4ac53086f048dc821b3d129c2180f921c671 Mon Sep 17 00:00:00 2001 From: Tim Jenness Date: Mon, 17 Mar 2025 20:52:44 -0700 Subject: [PATCH 2/3] Write FITS files directly to firefly without tmp file --- python/lsst/display/firefly/firefly.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/python/lsst/display/firefly/firefly.py b/python/lsst/display/firefly/firefly.py index bc611cc..602069e 100644 --- a/python/lsst/display/firefly/firefly.py +++ b/python/lsst/display/firefly/firefly.py @@ -23,7 +23,6 @@ import logging from io import BytesIO from socket import gaierror -import tempfile import lsst.afw.display.interface as interface import lsst.afw.display.virtualDevice as virtualDevice @@ -164,11 +163,10 @@ def _mtv(self, image, mask=None, wcs=None, title="", metadata=None): print('displaying image') self._erase() - with tempfile.NamedTemporaryFile() as fd: - afwDisplay.writeFitsImage(fd.name, image, wcs, title, metadata=metadata) - fd.flush() + with BytesIO() as fd: + afwDisplay.writeFitsImage(fd, image, wcs, title, metadata=metadata) fd.seek(0, 0) - self._fireflyFitsID = _fireflyClient.upload_data(fd, 'FITS') + self._fireflyFitsID = _fireflyClient.upload_fits_data(fd) try: viewer_id = f'image-{_fireflyClient.render_tree_id}-{self.frame}' @@ -198,11 +196,10 @@ def _mtv(self, image, mask=None, wcs=None, title="", metadata=None): if mask: if self.verbose: print('displaying mask') - with tempfile.NamedTemporaryFile() as fdm: - afwDisplay.writeFitsImage(fdm.name, mask, wcs, title, metadata=metadata) - fdm.flush() + with BytesIO() as fdm: + afwDisplay.writeFitsImage(fdm, mask, wcs, title, metadata=metadata) fdm.seek(0, 0) - self._fireflyMaskOnServer = _fireflyClient.upload_data(fdm, 'FITS') + self._fireflyMaskOnServer = _fireflyClient.upload_fits_data(fdm) maskPlaneDict = mask.getMaskPlaneDict() for k, v in maskPlaneDict.items(): From b23863df9f200b18d88626e7ea1c06127b5168c3 Mon Sep 17 00:00:00 2001 From: Tim Jenness Date: Mon, 17 Mar 2025 20:55:12 -0700 Subject: [PATCH 3/3] Simplify scons build --- SConstruct | 2 +- ups/display_firefly.build | 2 -- ups/display_firefly.cfg | 15 --------------- 3 files changed, 1 insertion(+), 18 deletions(-) delete mode 100644 ups/display_firefly.build delete mode 100644 ups/display_firefly.cfg diff --git a/SConstruct b/SConstruct index 9a2ea98..27d56f0 100644 --- a/SConstruct +++ b/SConstruct @@ -1,3 +1,3 @@ # -*- python -*- from lsst.sconsUtils import scripts -scripts.BasicSConstruct("display_firefly") +scripts.BasicSConstruct("display_firefly", disableCc=True, noCfgFile=True) diff --git a/ups/display_firefly.build b/ups/display_firefly.build deleted file mode 100644 index 735ac27..0000000 --- a/ups/display_firefly.build +++ /dev/null @@ -1,2 +0,0 @@ -@LSST BUILD@ && -build_lsst @PRODUCT@ @VERSION@ @REPOVERSION@ diff --git a/ups/display_firefly.cfg b/ups/display_firefly.cfg deleted file mode 100644 index 28087e7..0000000 --- a/ups/display_firefly.cfg +++ /dev/null @@ -1,15 +0,0 @@ -# -*- python -*- - -import lsst.sconsUtils - -dependencies = dict( - required = [], - buildRequired = [], -) - -config = lsst.sconsUtils.Configuration( - __file__, - libs=[], - hasDoxygenInclude=False, - hasSwigFiles=False, -)