lsst.afw  22.0.1-41-g501672927+21a6849c81
_heavyFootprintContinued.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 import numpy as np
20 
21 from lsst.utils import TemplateMeta
22 
23 from ._detection import HeavyFootprintI, HeavyFootprintF, HeavyFootprintD, HeavyFootprintU
24 
25 __all__ = [] # import this module only for its side effects
26 
27 
28 class HeavyFootprint(metaclass=TemplateMeta): # noqa: F811
29  def addTo(self, image):
30  """Add this heavy footprint to an image.
31 
32  Parameters
33  ----------
34  image : `lsst.afw.image`
35  """
36  indices = self.spans.indices()
37  image.array[indices[0, :] - image.getY0(),
38  indices[1, :] - image.getX0()] += self.getImageArray()
39 
40  def subtractFrom(self, image):
41  """Subtract this heavy footprint from an image.
42 
43  Parameters
44  ----------
45  image : `lsst.afw.image`
46  """
47  indices = self.spans.indices()
48  image.array[indices[0, :] - image.getY0(),
49  indices[1, :] - image.getX0()] -= self.getImageArray()
50 
51 
52 HeavyFootprint.register(np.int32, HeavyFootprintI)
53 HeavyFootprint.register(np.float32, HeavyFootprintF)
54 HeavyFootprint.register(np.float64, HeavyFootprintD)
55 HeavyFootprint.register(np.uint16, HeavyFootprintU)