lsst.afw g8f2ba02de7+0e50281dbb
_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#
19import numpy as np
20
21from lsst.utils import TemplateMeta
22
23from ._detection import HeavyFootprintI, HeavyFootprintF, HeavyFootprintD, HeavyFootprintU
24
25__all__ = [] # import this module only for its side effects
26
27
28class 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
52HeavyFootprint.register(np.int32, HeavyFootprintI)
53HeavyFootprint.register(np.float32, HeavyFootprintF)
54HeavyFootprint.register(np.float64, HeavyFootprintD)
55HeavyFootprint.register(np.uint16, HeavyFootprintU)
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.