lsst.ip.isr
ged8ae655b3+c95ea48ad7
Loading...
Searching...
No Matches
include
lsst
ip
isr
isr.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2016 LSST Corporation.
6
*
7
* This product includes software developed by the
8
* LSST Project (http://www.lsst.org/).
9
*
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the LSST License Statement and
21
* the GNU General Public License along with this program. If not,
22
* see <http://www.lsstcorp.org/LegalNotices/>.
23
*/
24
25
/*
26
* Implementation of the templated Instrument Signature Removal
27
* stage of the nightly LSST Image Processing Pipeline.
28
*/
29
30
#ifndef LSST_IP_ISR_ISR_H
31
#define LSST_IP_ISR_ISR_H
32
33
#include <memory>
34
#include <string>
35
#include <vector>
36
#include <cmath>
37
38
#include "
lsst/afw/math.h
"
39
#include "
lsst/afw/math/Statistics.h
"
40
#include "
lsst/afw/image.h
"
41
#include "
lsst/pex/exceptions/Exception.h
"
42
43
namespace
lsst
{
44
namespace
ip {
45
namespace
isr {
46
50
template
<
typename
ImageT,
typename
MaskT=lsst::afw::image::MaskPixel>
51
class
CountMaskedPixels
{
52
public
:
53
typedef
typename
lsst::afw::image::MaskedImage<ImageT>::x_iterator
x_iterator
;
54
CountMaskedPixels
() :
55
_count(0) {} ;
56
virtual
~CountMaskedPixels
() {};
57
58
// Clear the accumulator
59
void
reset
() { _count = 0; }
60
61
// Count pixels
62
void
apply
(
lsst::afw::image::MaskedImage<ImageT>
const
& image,
63
MaskT bitmask) {
64
reset
();
65
for
(
int
y
= 0;
y
!=
image
.getHeight(); ++
y
) {
66
for
(
x_iterator
ptr =
image
.row_begin(
y
); ptr !=
image
.row_end(
y
); ++ptr) {
67
if
( ((*ptr).mask() & bitmask) == bitmask ) {
68
_count += 1;
69
}
70
}
71
}
72
}
73
74
// Return the total counts
75
int
getCount
()
const
{
return
_count; }
76
77
private
:
78
int
_count;
79
};
80
87
template
<
typename
PixelT>
88
size_t
maskNans(
89
afw::image::MaskedImage<PixelT>
const
& mi,
90
afw::image::MaskPixel
maskVal,
91
afw::image::MaskPixel
allow=0
92
);
93
94
95
template
<
typename
ImagePixelT>
96
std::vector<double>
fitOverscanImage(
97
lsst::afw::image::MaskedImage<ImagePixelT>
const
& overscan,
98
std::vector<std::string>
badPixelMask,
99
bool
isTransposed
100
);
101
102
}}}
// namespace lsst::ip::isr
103
104
#endif
// !defined(LSST_IP_ISR_ISR_H)
Exception.h
image
afw::table::Key< afw::table::Array< ImagePixelT > > image
y
int y
Statistics.h
lsst::afw::image::MaskedImage::MaskedImageIterator
lsst::afw::image::MaskedImage
lsst::ip::isr::CountMaskedPixels
Remove all non-astronomical counts from the Chunk Exposure's pixels.
Definition
isr.h:51
lsst::ip::isr::CountMaskedPixels::apply
void apply(lsst::afw::image::MaskedImage< ImageT > const &image, MaskT bitmask)
Definition
isr.h:62
lsst::ip::isr::CountMaskedPixels::getCount
int getCount() const
Definition
isr.h:75
lsst::ip::isr::CountMaskedPixels::CountMaskedPixels
CountMaskedPixels()
Definition
isr.h:54
lsst::ip::isr::CountMaskedPixels::reset
void reset()
Definition
isr.h:59
lsst::ip::isr::CountMaskedPixels::x_iterator
lsst::afw::image::MaskedImage< ImageT >::x_iterator x_iterator
Definition
isr.h:53
lsst::ip::isr::CountMaskedPixels::~CountMaskedPixels
virtual ~CountMaskedPixels()
Definition
isr.h:56
image.h
std::int32_t
math.h
lsst
std::vector
Generated on Fri Dec 8 2023 11:39:55 for lsst.ip.isr by
1.9.8