LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
afw
11.0-2-g04d2804
include
lsst
afw
detection
HeavyFootprint.h
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2008, 2009, 2010 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
23
#if !defined(LSST_DETECTION_HEAVY_FOOTPRINT_H)
24
#define LSST_DETECTION_HEAVY_FOOTPRINT_H
25
32
#include <algorithm>
33
#include <list>
34
#include <cmath>
35
#include <boost/cstdint.hpp>
36
#include <boost/shared_ptr.hpp>
37
#include "
lsst/afw/detection/Footprint.h
"
38
39
namespace
lsst {
40
namespace
afw {
41
namespace
detection {
42
43
class
HeavyFootprintCtrl;
44
48
template
<
typename
ImagePixelT,
typename
MaskPixelT=
lsst::afw::image::MaskPixel
,
49
typename
VariancePixelT=
lsst::afw::image::VariancePixel
>
50
class
HeavyFootprint
:
51
public
afw::table::io::PersistableFacade
< HeavyFootprint<ImagePixelT,MaskPixelT,VariancePixelT> >,
52
public
Footprint
53
{
54
public
:
55
67
explicit
HeavyFootprint
(
68
Footprint
const
& foot,
69
lsst::afw::image::MaskedImage<ImagePixelT, MaskPixelT, VariancePixelT>
const
& mimage,
70
HeavyFootprintCtrl
const
* ctrl=NULL
71
);
72
78
explicit
HeavyFootprint
(
Footprint
const
& foot,
79
HeavyFootprintCtrl
const
* ctrl=NULL);
80
84
virtual
bool
isHeavy
()
const
{
return
true
; }
85
89
void
insert
(
lsst::afw::image::MaskedImage<ImagePixelT, MaskPixelT, VariancePixelT>
& mimage)
const
;
90
94
void
insert
(
lsst::afw::image::Image<ImagePixelT>
&
image
)
const
;
95
96
ndarray::Array<ImagePixelT,1,1>
getImageArray
() {
return
_image
; }
97
ndarray::Array<MaskPixelT,1,1>
getMaskArray
() {
return
_mask
; }
98
ndarray::Array<VariancePixelT,1,1>
getVarianceArray
() {
return
_variance
; }
99
100
ndarray::Array<ImagePixelT const,1,1>
getImageArray
()
const
{
return
_image
; }
101
ndarray::Array<MaskPixelT const,1,1>
getMaskArray
()
const
{
return
_mask
; }
102
ndarray::Array<VariancePixelT const,1,1>
getVarianceArray
()
const
{
return
_variance
; }
103
104
/* Returns the OR of all the mask pixels held in this HeavyFootprint. */
105
MaskPixelT
getMaskBitsSet
()
const
{
106
MaskPixelT maskbits = 0;
107
for
(
typename
ndarray::Array<MaskPixelT,1,1>::Iterator
i =
_mask
.
begin
(); i !=
_mask
.
end
(); ++i) {
108
maskbits |= *i;
109
}
110
return
maskbits;
111
}
112
116
double
dot
(
HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT>
const
& other)
const
;
117
118
protected
:
119
120
class
Factory;
// factory class used for persistence, public only so we can instantiate it in .cc file
121
122
virtual
std::string
getPersistenceName
()
const
;
123
124
virtual
void
write
(
OutputArchiveHandle
& handle)
const
;
125
126
private
:
127
HeavyFootprint
() {}
// private constructor, only used for persistence.
128
129
ndarray::Array<ImagePixelT, 1, 1>
_image
;
130
ndarray::Array<MaskPixelT, 1, 1>
_mask
;
131
ndarray::Array<VariancePixelT, 1, 1>
_variance
;
132
};
133
138
template
<
typename
ImagePixelT,
typename
MaskPixelT,
typename
VariancePixelT>
139
HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT>
makeHeavyFootprint
(
140
Footprint
const
& foot,
141
lsst::afw::image::MaskedImage<ImagePixelT, MaskPixelT, VariancePixelT>
const
& img,
142
HeavyFootprintCtrl
const
* ctrl=NULL
143
)
144
{
145
return
HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT>
(foot, img, ctrl);
146
}
147
153
template
<
typename
ImagePixelT,
typename
MaskPixelT,
typename
VariancePixelT>
154
boost::shared_ptr<HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT> >
155
mergeHeavyFootprints
(
156
HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT>
const
& h1,
157
HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT>
const
& h2
158
);
159
160
}}}
161
162
#endif
lsst::afw::detection::HeavyFootprint::write
virtual void write(OutputArchiveHandle &handle) const
Write the object to one or more catalogs.
Footprint.h
Represent a set of pixels of an arbitrary shape and size.
lsst::afw::detection::HeavyFootprintCtrl
A control object for HeavyFootprints.
Definition:
FootprintCtrl.h:91
lsst::afw::detection::HeavyFootprint::dot
double dot(HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > const &other) const
lsst::afw::image::MaskPixel
boost::uint16_t MaskPixel
Definition:
LsstImageTypes.h:33
lsst::afw::detection::HeavyFootprint::getVarianceArray
ndarray::Array< VariancePixelT const, 1, 1 > getVarianceArray() const
Definition:
HeavyFootprint.h:102
lsst::afw::detection::HeavyFootprint::_variance
ndarray::Array< VariancePixelT, 1, 1 > _variance
Definition:
HeavyFootprint.h:131
lsst::afw::detection::HeavyFootprint::getMaskArray
ndarray::Array< MaskPixelT const, 1, 1 > getMaskArray() const
Definition:
HeavyFootprint.h:101
lsst::afw::detection::HeavyFootprint::getVarianceArray
ndarray::Array< VariancePixelT, 1, 1 > getVarianceArray()
Definition:
HeavyFootprint.h:98
lsst::afw::detection::HeavyFootprint::getMaskBitsSet
MaskPixelT getMaskBitsSet() const
Definition:
HeavyFootprint.h:105
lsst::afw::detection::HeavyFootprint
A set of pixels in an Image, including those pixels' actual values.
Definition:
HeavyFootprint.h:50
image
table::Key< table::Array< Kernel::Pixel > > image
Definition:
FixedKernel.cc:117
lsst::afw::detection::HeavyFootprint::_image
ndarray::Array< ImagePixelT, 1, 1 > _image
Definition:
HeavyFootprint.h:129
lsst::afw::image::MaskedImage
A class to manipulate images, masks, and variance as a single object.
Definition:
MaskedImage.h:77
lsst::afw::detection::Footprint
A set of pixels in an Image.
Definition:
Footprint.h:62
lsst::afw::detection::HeavyFootprint::getMaskArray
ndarray::Array< MaskPixelT, 1, 1 > getMaskArray()
Definition:
HeavyFootprint.h:97
lsst::afw::detection::HeavyFootprint::getPersistenceName
virtual std::string getPersistenceName() const
Return the unique name used to persist this object and look up its factory.
ndarray::Array< ImagePixelT, 1, 1 >
ndarray::ArrayBase::end
Iterator end() const
Return an Iterator to one past the end of the array.
Definition:
ArrayBase.h:108
lsst::afw::detection::HeavyFootprint::isHeavy
virtual bool isHeavy() const
Definition:
HeavyFootprint.h:84
lsst::afw::table::io::Persistable::OutputArchiveHandle
io::OutputArchiveHandle OutputArchiveHandle
Definition:
Persistable.h:114
lsst::afw::detection::HeavyFootprint::insert
void insert(lsst::afw::image::MaskedImage< ImagePixelT, MaskPixelT, VariancePixelT > &mimage) const
ndarray::ExpressionBase::Iterator
ExpressionTraits< Derived >::Iterator Iterator
Nested expression or element iterator.
Definition:
ExpressionBase.h:59
lsst::afw::image::VariancePixel
float VariancePixel
! default type for Masks and MaskedImage Masks
Definition:
LsstImageTypes.h:34
lsst::afw::detection::HeavyFootprint::getImageArray
ndarray::Array< ImagePixelT, 1, 1 > getImageArray()
Definition:
HeavyFootprint.h:96
lsst::afw::table::io::PersistableFacade
A CRTP facade class for subclasses of Persistable.
Definition:
Persistable.h:182
lsst::afw::detection::HeavyFootprint::getImageArray
ndarray::Array< ImagePixelT const, 1, 1 > getImageArray() const
Definition:
HeavyFootprint.h:100
lsst::afw::image::Image< ImagePixelT >
lsst::afw::detection::mergeHeavyFootprints
boost::shared_ptr< HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > > mergeHeavyFootprints(HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > const &h1, HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > const &h2)
lsst::afw::detection::HeavyFootprint::HeavyFootprint
HeavyFootprint()
Definition:
HeavyFootprint.h:127
lsst::afw::detection::HeavyFootprint::_mask
ndarray::Array< MaskPixelT, 1, 1 > _mask
Definition:
HeavyFootprint.h:130
lsst::afw::detection::makeHeavyFootprint
HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > makeHeavyFootprint(Footprint const &foot, lsst::afw::image::MaskedImage< ImagePixelT, MaskPixelT, VariancePixelT > const &img, HeavyFootprintCtrl const *ctrl=NULL)
Definition:
HeavyFootprint.h:139
ndarray::ArrayBase::begin
Iterator begin() const
Return an Iterator to the beginning of the array.
Definition:
ArrayBase.h:99
Generated on Thu Sep 24 2015 02:29:14 for LSSTApplications by
1.8.5