LSST Applications g009b5efdf7+33ab280be1,g0530b470b1+33ab280be1,g1011452fe8+91250f09a0,g131b30d954+f6e951a35a,g1e66b94187+2cf095541c,g235c05d50d+2ad591d120,g2526fcf3cb+d2c2366fef,g2959009a90+aa4442e4e2,g2adfe936b5+33ab280be1,g2aea266057+2cf095541c,g315bf1e6db+7b2debe010,g38189d092c+6a8a80267a,g3a7e09fba3+ffb1c1e880,g3f8e1907dc+353a89de06,g4230fac9de+97ce69b5ba,g42cc332696+2cf095541c,g498fc93c42+60bcca8553,g4e8ce4af8a+d61c1479ad,g51277c4d12+2cf095541c,g5ac366a304+b341ec95e4,g67c5445c93+33ab280be1,g790e439155+1a0c6145b4,g807e3ba568+a3e0d46ab3,g8479130295+f44088696a,g883b199ddb+60bcca8553,gb469cb74ca+b6fe304461,gb94f486bb8+f0f5c22f85,gca804b0f43+f0a1800e64,gcd7e190081+3988c89aec,gd4112516d0+33ab280be1,gd5d1ca8e18+f0a1800e64,gd630573b98+33ab280be1,ge25b0cbbcb+60bcca8553,gf74909da2e+ec4f45d297,v24.1.0.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
ds9.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
23import lsst.afw.image as afwImage
24from .interface import getDisplay as _getDisplay, getDefaultBackend, setDefaultBackend
25# Backwards compatibility. Downstream code should be converted to use display.RED etc.
26from .interface import BLACK, RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, WHITE # noqa: F401
27try:
28 loaded
29except NameError:
30 try:
31 if getDefaultBackend() is None:
32 setDefaultBackend("lsst.display.ds9")
33 getDisplay = _getDisplay
34 except Exception as e:
35 # No usable version of display_ds9.
36 # Let's define a version of getDisplay() which will throw an exception.
37
38 # Prior to DM-9433, we used a closure to implicitly capture the
39 # exception being thrown for future reference. Following changes to
40 # exception scope rules in Python 3 (see PEP 3110), it's now regarded
41 # as clearer to make the capture explicit using the following class.
43 def __init__(self, exception):
44 # The exception being caught above may have a bulky context which we
45 # don't want to capture in a closure for all time: see DM-9504 for a
46 # full discussion. We therefore define a new exception of the same
47 # type, which just encodes the error text.
48 self.exception = type(exception)(f"{exception} (is display_ds9 setup?)")
49
50 def __call__(self, *args, **kwargs):
51 raise self.exception
52
53 getDisplay = _RaiseException(e)
54
56 __init__ = getDisplay
57
58 loaded = False
59 else:
60 loaded = True
61
62
64 # always use the real one
65 return _getDisplay(None, create=True).Buffering()
66
67#
68# Functions provided for backwards compatibility
69#
70
71
72def setMaskPlaneColor(name, color=None, frame=None):
73 return getDisplay(frame, create=True).setMaskPlaneColor(name, color)
74
75
76def getMaskPlaneColor(name, frame=None):
77 return getDisplay(frame, create=True).getMaskPlaneColor(name)
78
79
80def setMaskTransparency(name, frame=None):
81 return getDisplay(frame, create=True).setMaskTransparency(name)
82
83
84def getMaskTransparency(name, frame=None):
85 return getDisplay(frame, create=True).getMaskTransparency(name)
86
87
88def show(frame=None):
89 return getDisplay(frame, create=True).show()
90
91
92def mtv(data, frame=None, title="", wcs=None, *args, **kwargs):
93 return getDisplay(frame, create=True).mtv(data, title, wcs, *args, **kwargs)
94
95
96def erase(frame=None):
97 return getDisplay(frame, create=True).erase()
98
99
100def dot(symb, c, r, frame=None, size=2, ctype=None, origin=afwImage.PARENT, *args, **kwargs):
101 return getDisplay(frame, create=True).dot(symb, c, r, size, ctype, origin, *args, **kwargs)
102
103
104def line(points, frame=None, origin=afwImage.PARENT, symbs=False, ctype=None, size=0.5):
105 return getDisplay(frame, create=True).line(points, origin, symbs, ctype, size)
106
107
108def scale(algorithm, min, max=None, frame=None):
109 return getDisplay(frame, create=True).scale(algorithm, min, max)
110
111
112def pan(colc=None, rowc=None, frame=None, origin=afwImage.PARENT):
113 disp = getDisplay(frame, create=True)
114
115 disp.pan(colc, rowc, origin)
116
117
118def zoom(zoomfac=None, colc=None, rowc=None, frame=None, origin=afwImage.PARENT):
119 disp = getDisplay(frame, create=True)
120
121 disp.zoom(zoomfac)
122 disp.pan(colc, rowc, origin)
123
124
125def interact(frame=None):
126 return getDisplay(frame, create=True).interact()
127
128
129def setCallback(k, func=lsst.afw.display.noop_callback, noRaise=False, frame=None):
130 return getDisplay(frame, create=True).setCallback(k, noRaise=False)
131
132
133def getActiveCallbackKeys(onlyActive=True, frame=None):
134 return getDisplay(frame, create=True).getActiveCallbackKeys(onlyActive)
table::Key< int > type
Definition: Detector.cc:163
def __call__(self, *args, **kwargs)
Definition: ds9.py:50
def __init__(self, exception)
Definition: ds9.py:43
def setMaskPlaneColor(name, color=None, frame=None)
Definition: ds9.py:72
def dot(symb, c, r, frame=None, size=2, ctype=None, origin=afwImage.PARENT, *args, **kwargs)
Definition: ds9.py:100
def show(frame=None)
Definition: ds9.py:88
def setMaskTransparency(name, frame=None)
Definition: ds9.py:80
def line(points, frame=None, origin=afwImage.PARENT, symbs=False, ctype=None, size=0.5)
Definition: ds9.py:104
def scale(algorithm, min, max=None, frame=None)
Definition: ds9.py:108
def zoom(zoomfac=None, colc=None, rowc=None, frame=None, origin=afwImage.PARENT)
Definition: ds9.py:118
def setCallback(k, func=lsst.afw.display.noop_callback, noRaise=False, frame=None)
Definition: ds9.py:129
def erase(frame=None)
Definition: ds9.py:96
def getActiveCallbackKeys(onlyActive=True, frame=None)
Definition: ds9.py:133
def getMaskPlaneColor(name, frame=None)
Definition: ds9.py:76
def getMaskTransparency(name, frame=None)
Definition: ds9.py:84
def mtv(data, frame=None, title="", wcs=None, *args, **kwargs)
Definition: ds9.py:92
def interact(frame=None)
Definition: ds9.py:125
def Buffering()
Definition: ds9.py:63
def pan(colc=None, rowc=None, frame=None, origin=afwImage.PARENT)
Definition: ds9.py:112
def setDefaultBackend(backend)
Definition: interface.py:893