LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+f5e6047307,21.0.0-11-g2b59f77+a9c1acf22d,21.0.0-11-ga42c5b2+86977b0b17,21.0.0-12-gf4ce030+76814010d2,21.0.0-13-g1721dae+760e7a6536,21.0.0-13-g3a573fe+768d78a30a,21.0.0-15-g5a7caf0+f21cbc5713,21.0.0-16-g0fb55c1+b60e2d390c,21.0.0-19-g4cded4ca+71a93a33c0,21.0.0-2-g103fe59+bb20972958,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+3ad5d60fb1,21.0.0-2-g7f82c8f+8babb168e8,21.0.0-2-g8f08a60+06509c8b61,21.0.0-2-g8faa9b5+616205b9df,21.0.0-2-ga326454+8babb168e8,21.0.0-2-gde069b7+5e4aea9c2f,21.0.0-2-gecfae73+1d3a86e577,21.0.0-2-gfc62afb+3ad5d60fb1,21.0.0-25-g1d57be3cd+e73869a214,21.0.0-3-g357aad2+ed88757d29,21.0.0-3-g4a4ce7f+3ad5d60fb1,21.0.0-3-g4be5c26+3ad5d60fb1,21.0.0-3-g65f322c+e0b24896a3,21.0.0-3-g7d9da8d+616205b9df,21.0.0-3-ge02ed75+a9c1acf22d,21.0.0-4-g591bb35+a9c1acf22d,21.0.0-4-g65b4814+b60e2d390c,21.0.0-4-gccdca77+0de219a2bc,21.0.0-4-ge8a399c+6c55c39e83,21.0.0-5-gd00fb1e+05fce91b99,21.0.0-6-gc675373+3ad5d60fb1,21.0.0-64-g1122c245+4fb2b8f86e,21.0.0-7-g04766d7+cd19d05db2,21.0.0-7-gdf92d54+04719a4bac,21.0.0-8-g5674e7b+d1bd76f71f,master-gac4afde19b+a9c1acf22d,w.2021.13
LSST Data Management Base Package
fakes.py
Go to the documentation of this file.
1 #
2 # LSST Data Management System
3 # Copyright 2008-2014 LSST Corporation.
4 #
5 # This product includes software developed by the
6 # LSST Project (http://www.lsst.org/).
7 #
8 # This program is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the LSST License Statement and
19 # the GNU General Public License along with this program. If not,
20 # see <http://www.lsstcorp.org/LegalNotices/>.
21 #
22 import abc
23 
24 import lsst.pex.config
25 import lsst.pipe.base
26 import lsst.afw.image
27 
28 
30  maskPlaneName = lsst.pex.config.Field(
31  dtype=str, default="FAKE",
32  doc="Mask plane to set on pixels affected by fakes. Will be added if not already present."
33  )
34 
35 
36 class BaseFakeSourcesTask(lsst.pipe.base.Task, metaclass=abc.ABCMeta):
37  """An abstract base class for subtasks that inject fake sources into images to test completeness and
38  other aspects of the processing.
39 
40  This class simply adds a mask plane that subclasses should use to mark pixels that have been touched.
41 
42  This is an abstract base class (abc) and is not intended to be directly used. To create a fake sources
43  injector, create a child class and re-implement the required methods.
44  """
45 
46  ConfigClass = BaseFakeSourcesConfig
47  _DefaultName = "baseFakeSources"
48 
49  def __init__(self, **kwargs):
50  """Initialize the Task.
51 
52  Subclasses that define their own __init__ should simply forward all arguments to the base
53  class constructor. They can then assume self.config is an instance of their ConfigClass.
54 
55  If an external catalog is used to add sources consistently to multiple overlapping images,
56  that catalog should generally be loaded and attached to self here, so it can be used
57  multiple times by the run() method.
58  """
59  lsst.pipe.base.Task.__init__(self, **kwargs)
60  lsst.afw.image.Mask[lsst.afw.image.MaskPixel].addMaskPlane(self.configconfig.maskPlaneName)
62  .getPlaneBitMask(self.configconfig.maskPlaneName)
63 
64  @abc.abstractmethod
65  def run(self, exposure, background):
66  """Add fake sources to the given Exposure, making use of the given BackgroundList if desired.
67 
68  If pixels in the Exposure are replaced, not added to, extra care should be taken with the background,
69  mask, and variance planes. The Exposure as given is background-subtracted (using the supplied
70  background model) and should be returned in the same state.
71  """
72  raise NotImplementedError("FakeSourcesTask is abstract, create a child class to use this method")
Represent a 2-dimensional array of bitmask pixels.
Definition: Mask.h:77
def run(self, exposure, background)
Definition: fakes.py:65
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.