lsst.jointcal
g29ae962dfc+7e0e65d7b2
Toggle main menu visibility
Loading...
Searching...
No Matches
src
PhotometryModel.cc
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
/*
3
* This file is part of jointcal.
4
*
5
* Developed for the LSST Data Management System.
6
* This product includes software developed by the LSST Project
7
* (https://www.lsst.org).
8
* See the COPYRIGHT file at the top-level directory of this distribution
9
* for details of code ownership.
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program. If not, see <https://www.gnu.org/licenses/>.
23
*/
24
25
#include "
lsst/log/Log.h
"
26
27
#include "
lsst/jointcal/CcdImage.h
"
28
#include "
lsst/jointcal/PhotometryModel.h
"
29
30
namespace
lsst
{
31
namespace
jointcal
{
32
33
bool
PhotometryModel::validate
(
CcdImageList
const
&ccdImageList,
int
ndof)
const
{
34
bool
check =
true
;
35
for
(
auto
const
&ccdImage : ccdImageList) {
36
// Don't short circuit so that we log every place the model is negative.
37
check &=
checkPositiveOnBBox
(*ccdImage);
38
}
39
if
(ndof < 0) {
40
check &=
false
;
41
LOGLS_ERROR
(
_log
,
"This model only has "
42
<< ndof <<
" degrees of freedom, with "
<<
getTotalParameters
()
43
<<
" total parameters. Reduce the model complexity (e.g. polynomial order)"
44
" to better match the number of measured sources."
);
45
}
46
return
check;
47
}
48
49
bool
PhotometryModel::checkPositiveOnBBox
(
CcdImage
const
&ccdImage)
const
{
50
bool
check =
true
;
51
auto
bbox = ccdImage.
getImageFrame
();
52
for
(
auto
const
&x : {bbox.xMin, bbox.getCenter().x, bbox.xMax})
53
for
(
auto
const
&y : {bbox.yMin, bbox.getCenter().y, bbox.yMax}) {
54
// flux, fluxErr, instFlux, instFluxErr all 1
55
jointcal::MeasuredStar
star(
jointcal::BaseStar
(x, y, 1, 1));
56
star.
setInstFluxAndErr
(1, 1);
57
double
result =
transform
(ccdImage, star);
58
// Don't short circuit so that we log every place the model is negative.
59
if
(result < 0) {
60
LOGLS_WARN
(
_log
,
"CcdImage "
<< ccdImage.
getName
() <<
" is negative at ("
<< x <<
","
<< y
61
<<
"): "
<< result);
62
check =
false
;
63
}
64
}
65
return
check;
66
}
67
68
}
// namespace jointcal
69
}
// namespace lsst
CcdImage.h
Log.h
LOGLS_WARN
#define LOGLS_WARN(logger, message)
LOGLS_ERROR
#define LOGLS_ERROR(logger, message)
PhotometryModel.h
lsst::jointcal::BaseStar
The base class for handling stars. Used by all matching routines.
Definition
BaseStar.h:51
lsst::jointcal::CcdImage
Handler of an actual image from a single CCD.
Definition
CcdImage.h:64
lsst::jointcal::CcdImage::getImageFrame
Frame const & getImageFrame() const
Frame in pixels.
Definition
CcdImage.h:190
lsst::jointcal::CcdImage::getName
std::string getName() const
Return the _name that identifies this ccdImage.
Definition
CcdImage.h:79
lsst::jointcal::MeasuredStar
Sources measured on images.
Definition
MeasuredStar.h:51
lsst::jointcal::MeasuredStar::setInstFluxAndErr
void setInstFluxAndErr(double instFlux, double instFluxErr)
Definition
MeasuredStar.h:95
lsst::jointcal::PhotometryModel::getTotalParameters
virtual std::size_t getTotalParameters() const =0
Return the total number of parameters in this model.
lsst::jointcal::PhotometryModel::_log
LOG_LOGGER _log
lsst.logging instance, to be created by a subclass so that messages have consistent name.
Definition
PhotometryModel.h:224
lsst::jointcal::PhotometryModel::transform
virtual double transform(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const =0
Return the on-sky transformed flux for measuredStar on ccdImage.
lsst::jointcal::PhotometryModel::validate
bool validate(CcdImageList const &ccdImageList, int ndof) const
Return true if this is a "reasonable" model.
Definition
PhotometryModel.cc:33
lsst::jointcal::PhotometryModel::checkPositiveOnBBox
bool checkPositiveOnBBox(CcdImage const &ccdImage) const
Check that the model is positive on the ccdImage bbox.
Definition
PhotometryModel.cc:49
lsst::jointcal
Definition
Associations.h:50
lsst::jointcal::CcdImageList
std::list< std::shared_ptr< CcdImage > > CcdImageList
Definition
CcdImage.h:46
lsst
Generated on
for lsst.jointcal by
1.17.0