LSST Applications g063fba187b+fee0456c91,g0f08755f38+ea96e5a5a3,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+90257ff92a,g20f6ffc8e0+ea96e5a5a3,g217e2c1bcf+937a289c59,g28da252d5a+daa7da44eb,g2bbee38e9b+253935c60e,g2bc492864f+253935c60e,g3156d2b45e+6e55a43351,g32e5bea42b+31359a2a7a,g347aa1857d+253935c60e,g35bb328faa+a8ce1bb630,g3a166c0a6a+253935c60e,g3b1af351f3+a8ce1bb630,g3e281a1b8c+c5dd892a6c,g414038480c+416496e02f,g41af890bb2+afe91b1188,g599934f4f4+0db33f7991,g7af13505b9+e36de7bce6,g80478fca09+da231ba887,g82479be7b0+a4516e59e3,g858d7b2824+ea96e5a5a3,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+bc6ab8dfbd,gb58c049af0+d64f4d3760,gc28159a63d+253935c60e,gcab2d0539d+3f2b72788c,gcf0d15dbbd+4ea9c45075,gda6a2b7d83+4ea9c45075,gdaeeff99f8+1711a396fd,ge79ae78c31+253935c60e,gef2f8181fd+3031e3cf99,gf0baf85859+c1f95f4921,gfa517265be+ea96e5a5a3,gfa999e8aa5+17cd334064,w.2024.50
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Functions
lsst.afw.display.utils Namespace Reference

Classes

class  Mosaic
 

Functions

 _getDisplayFromDisplayOrFrame (display, frame=None)
 
 drawBBox (bbox, borderWidth=0.0, origin=None, display="deferToFrame", ctype=None, bin=1, frame=None)
 
 drawFootprint (foot, borderWidth=0.5, origin=None, XY0=None, frame=None, ctype=None, bin=1, peaks=False, symb="+", size=0.4, ctypePeak=None, display="deferToFrame")
 
 drawCoaddInputs (exposure, frame=None, ctype=None, bin=1, display="deferToFrame")
 

Function Documentation

◆ _getDisplayFromDisplayOrFrame()

lsst.afw.display.utils._getDisplayFromDisplayOrFrame ( display,
frame = None )
protected
Return an `lsst.afw.display.Display` given either a display or a frame ID.

Notes
-----
If the two arguments are consistent, return the desired display; if they are not,
raise a `RuntimeError` exception.

If the desired display is `None`, return `None`;
if ``(display, frame) == ("deferToFrame", None)``, return the default display

Definition at line 34 of file utils.py.

34def _getDisplayFromDisplayOrFrame(display, frame=None):
35 """Return an `lsst.afw.display.Display` given either a display or a frame ID.
36
37 Notes
38 -----
39 If the two arguments are consistent, return the desired display; if they are not,
40 raise a `RuntimeError` exception.
41
42 If the desired display is `None`, return `None`;
43 if ``(display, frame) == ("deferToFrame", None)``, return the default display
44 """
45
46 # import locally to allow this file to be imported by __init__
47 import lsst.afw.display as afwDisplay
48
49 if display in ("deferToFrame", None):
50 if display is None and frame is None:
51 return None
52
53 # "deferToFrame" is the default value, and means "obey frame"
54 display = None
55
56 if display and not hasattr(display, "frame"):
57 raise RuntimeError(f"display == {display} doesn't support .frame")
58
59 if frame and display and display.frame != frame:
60 raise RuntimeError("Please specify display *or* frame")
61
62 if display:
63 frame = display.frame
64
65 display = afwDisplay.getDisplay(frame, create=True)
66
67 return display
68
69

◆ drawBBox()

lsst.afw.display.utils.drawBBox ( bbox,
borderWidth = 0.0,
origin = None,
display = "deferToFrame",
ctype = None,
bin = 1,
frame = None )
Draw a bounding box on a display frame with the specified ctype.

Parameters
----------
bbox : `lsst.geom.Box2I` or `lsst.geom.Box2D`
    The box to draw
borderWidth : `float`
    Include this many pixels
origin
    If specified, the box is shifted by ``origin``
display : `str`
ctype : `str`
    The desired color, either e.g. `lsst.afw.display.RED` or a color name known to X11
bin : `int`
    All BBox coordinates are divided by bin, as is right and proper for overlaying on a binned image
frame

Definition at line 346 of file utils.py.

346def drawBBox(bbox, borderWidth=0.0, origin=None, display="deferToFrame", ctype=None, bin=1, frame=None):
347 """Draw a bounding box on a display frame with the specified ctype.
348
349 Parameters
350 ----------
351 bbox : `lsst.geom.Box2I` or `lsst.geom.Box2D`
352 The box to draw
353 borderWidth : `float`
354 Include this many pixels
355 origin
356 If specified, the box is shifted by ``origin``
357 display : `str`
358 ctype : `str`
359 The desired color, either e.g. `lsst.afw.display.RED` or a color name known to X11
360 bin : `int`
361 All BBox coordinates are divided by bin, as is right and proper for overlaying on a binned image
362 frame
363 """
364 x0, y0 = bbox.getMinX(), bbox.getMinY()
365 x1, y1 = bbox.getMaxX(), bbox.getMaxY()
366
367 if origin:
368 x0 += origin[0]
369 x1 += origin[0]
370 y0 += origin[1]
371 y1 += origin[1]
372
373 x0 /= bin
374 y0 /= bin
375 x1 /= bin
376 y1 /= bin
377 borderWidth /= bin
378
379 display = _getDisplayFromDisplayOrFrame(display, frame)
380 display.line([(x0 - borderWidth, y0 - borderWidth),
381 (x0 - borderWidth, y1 + borderWidth),
382 (x1 + borderWidth, y1 + borderWidth),
383 (x1 + borderWidth, y0 - borderWidth),
384 (x0 - borderWidth, y0 - borderWidth),
385 ], ctype=ctype)
386
387

◆ drawCoaddInputs()

lsst.afw.display.utils.drawCoaddInputs ( exposure,
frame = None,
ctype = None,
bin = 1,
display = "deferToFrame" )
Draw the bounding boxes of input exposures to a coadd on a display
frame with the specified ctype, assuming ``display.mtv()`` has already been
called on the given exposure on this frame.

All coordinates are divided by ``bin``, as is right and proper for overlaying on a binned image

Definition at line 458 of file utils.py.

458def drawCoaddInputs(exposure, frame=None, ctype=None, bin=1, display="deferToFrame"):
459 """Draw the bounding boxes of input exposures to a coadd on a display
460 frame with the specified ctype, assuming ``display.mtv()`` has already been
461 called on the given exposure on this frame.
462
463 All coordinates are divided by ``bin``, as is right and proper for overlaying on a binned image
464 """
465 coaddWcs = exposure.getWcs()
466 catalog = exposure.getInfo().getCoaddInputs().ccds
467
468 offset = lsst.geom.PointD() - lsst.geom.PointD(exposure.getXY0())
469
470 display = _getDisplayFromDisplayOrFrame(display, frame)
471
472 with display.Buffering():
473 for record in catalog:
474 ccdBox = lsst.geom.Box2D(record.getBBox())
475 ccdCorners = ccdBox.getCorners()
476 coaddCorners = [coaddWcs.skyToPixel(record.getWcs().pixelToSky(point)) + offset
477 for point in ccdCorners]
478 display.line([(coaddCorners[i].getX()/bin, coaddCorners[i].getY()/bin)
479 for i in range(-1, 4)], ctype=ctype)
A floating-point coordinate rectangle geometry.
Definition Box.h:413

◆ drawFootprint()

lsst.afw.display.utils.drawFootprint ( foot,
borderWidth = 0.5,
origin = None,
XY0 = None,
frame = None,
ctype = None,
bin = 1,
peaks = False,
symb = "+",
size = 0.4,
ctypePeak = None,
display = "deferToFrame" )
Draw an `lsst.afw.detection.Footprint` on a display frame with the specified ctype.

Parameters
----------
foot : `lsst.afw.detection.Footprint`
borderWidth : `float`
    Include an extra borderWidth pixels
origin
    If ``origin`` is present, it's arithmetically added to the Footprint
XY0
    if ``XY0`` is present is subtracted from the Footprint
frame
ctype : `str`
    The desired color, either e.g. `lsst.afw.display.RED` or a color name known to X11
bin : `int`
    All Footprint coordinates are divided by bin, as is right and proper
    for overlaying on a binned image
peaks : `bool`
    If peaks is `True`, also show the object's Peaks using the specified
    ``symb`` and ``size`` and ``ctypePeak``
symb : `str`
size : `float`
ctypePeak : `str`
    The desired color for peaks, either e.g. `lsst.afw.display.RED` or a color name known to X11
display : `str`

Definition at line 388 of file utils.py.

389 peaks=False, symb="+", size=0.4, ctypePeak=None, display="deferToFrame"):
390 """Draw an `lsst.afw.detection.Footprint` on a display frame with the specified ctype.
391
392 Parameters
393 ----------
394 foot : `lsst.afw.detection.Footprint`
395 borderWidth : `float`
396 Include an extra borderWidth pixels
397 origin
398 If ``origin`` is present, it's arithmetically added to the Footprint
399 XY0
400 if ``XY0`` is present is subtracted from the Footprint
401 frame
402 ctype : `str`
403 The desired color, either e.g. `lsst.afw.display.RED` or a color name known to X11
404 bin : `int`
405 All Footprint coordinates are divided by bin, as is right and proper
406 for overlaying on a binned image
407 peaks : `bool`
408 If peaks is `True`, also show the object's Peaks using the specified
409 ``symb`` and ``size`` and ``ctypePeak``
410 symb : `str`
411 size : `float`
412 ctypePeak : `str`
413 The desired color for peaks, either e.g. `lsst.afw.display.RED` or a color name known to X11
414 display : `str`
415 """
416
417 if XY0:
418 if origin:
419 raise RuntimeError("You may not specify both origin and XY0")
420 origin = (-XY0[0], -XY0[1])
421
422 display = _getDisplayFromDisplayOrFrame(display, frame)
423 with display.Buffering():
424 borderWidth /= bin
425 for s in foot.getSpans():
426 y, x0, x1 = s.getY(), s.getX0(), s.getX1()
427
428 if origin:
429 x0 += origin[0]
430 x1 += origin[0]
431 y += origin[1]
432
433 x0 /= bin
434 x1 /= bin
435 y /= bin
436
437 display.line([(x0 - borderWidth, y - borderWidth),
438 (x0 - borderWidth, y + borderWidth),
439 (x1 + borderWidth, y + borderWidth),
440 (x1 + borderWidth, y - borderWidth),
441 (x0 - borderWidth, y - borderWidth),
442 ], ctype=ctype)
443
444 if peaks:
445 for p in foot.getPeaks():
446 x, y = p.getIx(), p.getIy()
447
448 if origin:
449 x += origin[0]
450 y += origin[1]
451
452 x /= bin
453 y /= bin
454
455 display.dot(symb, x, y, size=size, ctype=ctypePeak)
456
457