LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Attributes | List of all members
lsst.pipe.tasks.calexpCutout.CalexpCutoutTask Class Reference
Inheritance diagram for lsst.pipe.tasks.calexpCutout.CalexpCutoutTask:

Public Member Functions

def run (self, in_table, calexp)
 

Static Public Attributes

 ConfigClass = CalexpCutoutTaskConfig
 

Detailed Description

Task for computing cutouts on a specific calexp given
positions, xspans, and yspans of the stamps.

Definition at line 46 of file calexpCutout.py.

Member Function Documentation

◆ run()

def lsst.pipe.tasks.calexpCutout.CalexpCutoutTask.run (   self,
  in_table,
  calexp 
)
Compute and return the cutouts.

Parameters
----------
in_table : `astropy.QTable`
    A table containing at least the following columns: position, xspan
    and yspan.  The position should be an `astropy.SkyCoord`.  The
    xspan and yspan are the extent of the cutout in x and y in pixels.
calexp : `lsst.afw.image.ExposureF`
    The calibrated exposure from which to extract cutouts

Returns
-------
output : `lsst.pipe.base.Struct`
    A struct containing:

    * cutouts: an `lsst.meas.algorithms.Stamps` object
               that wraps a list of masked images of the cutouts and a
               `PropertyList` containing the metadata to be persisted
               with the cutouts.  The exposure metadata is preserved and,
               in addition, arrays holding the RA and Dec of each stamp
               in degrees are added to the metadata.  Note: the origin
               of the output stamps is `lsst.afw.image.PARENT`.
    * skipped_positions: a `list` of `lsst.geom.SpherePoint` objects for
                         stamps that were skiped for being off the image
                         or partially off the image

Raises
------
ValueError
    If the input catalog doesn't have the required columns,
    a ValueError is raised

Definition at line 53 of file calexpCutout.py.

53  def run(self, in_table, calexp):
54  """Compute and return the cutouts.
55 
56  Parameters
57  ----------
58  in_table : `astropy.QTable`
59  A table containing at least the following columns: position, xspan
60  and yspan. The position should be an `astropy.SkyCoord`. The
61  xspan and yspan are the extent of the cutout in x and y in pixels.
62  calexp : `lsst.afw.image.ExposureF`
63  The calibrated exposure from which to extract cutouts
64 
65  Returns
66  -------
67  output : `lsst.pipe.base.Struct`
68  A struct containing:
69 
70  * cutouts: an `lsst.meas.algorithms.Stamps` object
71  that wraps a list of masked images of the cutouts and a
72  `PropertyList` containing the metadata to be persisted
73  with the cutouts. The exposure metadata is preserved and,
74  in addition, arrays holding the RA and Dec of each stamp
75  in degrees are added to the metadata. Note: the origin
76  of the output stamps is `lsst.afw.image.PARENT`.
77  * skipped_positions: a `list` of `lsst.geom.SpherePoint` objects for
78  stamps that were skiped for being off the image
79  or partially off the image
80 
81  Raises
82  ------
83  ValueError
84  If the input catalog doesn't have the required columns,
85  a ValueError is raised
86  """
87  cols = in_table.colnames
88  if 'position' not in cols or 'xspan' not in cols or 'yspan' not in cols:
89  raise ValueError('Required column missing from the input table. '
90  'Required columns are "position", "xspan", and "yspan". '
91  f'The column names are: {in_table.colnames}')
92  max_idx = self.config.max_cutouts
93  cutout_list = []
94  wcs = calexp.getWcs()
95  mim = calexp.getMaskedImage()
96  ras = []
97  decs = []
98  skipped_positions = []
99  for rec in in_table[:max_idx]:
100  ra = rec['position'].ra.degree
101  dec = rec['position'].dec.degree
102  ras.append(ra)
103  decs.append(dec)
104  pt = geom.SpherePoint(geom.Angle(ra, geom.degrees),
105  geom.Angle(dec, geom.degrees))
106  pix = wcs.skyToPixel(pt)
107  xspan = rec['xspan'].value
108  yspan = rec['yspan'].value
109  # Clamp to LL corner of the LL pixel and draw extent from there
110  box = geom.Box2I(geom.Point2I(int(pix.x-xspan/2), int(pix.y-yspan/2)),
111  geom.Extent2I(xspan, yspan))
112  if not mim.getBBox().contains(box):
113  if not self.config.skip_bad:
114  raise ValueError(f'Cutout bounding box is not completely contained in the image: {box}')
115  else:
116  skipped_positions.append(pt)
117  continue
118  sub = mim.Factory(mim, box)
119  stamp = Stamp(stamp_im=sub, position=pt)
120  cutout_list.append(stamp)
121  metadata = calexp.getMetadata()
122  metadata['RA_DEG'] = ras
123  metadata['DEC_DEG'] = decs
124  return pipeBase.Struct(cutouts=Stamps(cutout_list, metadata=metadata),
125  skipped_positions=skipped_positions)
A class representing an angle.
Definition: Angle.h:127
An integer coordinate rectangle.
Definition: Box.h:55
Point in an unspecified spherical coordinate system.
Definition: SpherePoint.h:57
def run(self, coaddExposures, bbox, wcs)
Definition: getTemplate.py:603

Member Data Documentation

◆ ConfigClass

lsst.pipe.tasks.calexpCutout.CalexpCutoutTask.ConfigClass = CalexpCutoutTaskConfig
static

Definition at line 50 of file calexpCutout.py.


The documentation for this class was generated from the following file: