Loading [MathJax]/extensions/tex2jax.js
LSST Applications g04dff08e69+fafbcb10e2,g0d33ba9806+3d21495239,g0fba68d861+2ea2a6c4b0,g1e78f5e6d3+b3e27b8ebc,g1ec0fe41b4+f536777771,g1fd858c14a+ae46bc2a71,g35bb328faa+fcb1d3bbc8,g4af146b050+9c38a215af,g4d2262a081+154bb484c1,g53246c7159+fcb1d3bbc8,g5a012ec0e7+b20b785ecb,g60b5630c4e+3d21495239,g6273192d42+8013d063df,g67b6fd64d1+4086c0989b,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g87b7deb4dc+04106995ce,g8852436030+54b48a5987,g89139ef638+4086c0989b,g9125e01d80+fcb1d3bbc8,g94187f82dc+3d21495239,g989de1cb63+4086c0989b,g9d31334357+3d21495239,g9f33ca652e+83205baa3c,gabe3b4be73+1e0a283bba,gabf8522325+fa80ff7197,gb1101e3267+85d1f90f4c,gb58c049af0+f03b321e39,gb89ab40317+4086c0989b,gc0bb628dac+d11454dffd,gcf25f946ba+54b48a5987,gd6cbbdb0b4+af3c3595f5,gd9a9a58781+fcb1d3bbc8,gde0f65d7ad+1b29a75088,ge278dab8ac+d65b3c2b70,ge410e46f29+4086c0989b,gf67bdafdda+4086c0989b,v29.0.0.rc6
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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