lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
afw
image
Calib.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2008, 2009, 2010 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
/*
27
* Classes to support calibration (e.g. photometric zero points, exposure times)
28
*/
29
#ifndef LSST_AFW_IMAGE_CALIB_H
30
#define LSST_AFW_IMAGE_CALIB_H
31
32
#include <cmath>
33
#include <utility>
34
#include <memory>
35
#include "ndarray_fwd.h"
36
#include "
lsst/base.h
"
37
#include "
lsst/daf/base/DateTime.h
"
38
#include "
lsst/pex/exceptions.h
"
39
#include "
lsst/geom/Point.h
"
40
#include "
lsst/afw/table/io/Persistable.h
"
41
42
namespace
lsst
{
43
namespace
afw
{
44
namespace
image
{
45
46
// NOTE: This value has been kept for backwards compatibility with old Calib conversions.
47
// It is not precise and should not be hard coded in new code. Instead, use astropy in python:
48
//
49
// import astropy.units as u
50
// magnitude = <array or single magnitude value>
51
// (magnitude*u.ABmag).to_value(u.nJy)
52
//
53
// or see `cpputils/include/lsst/cpputils/Magnitude.h` for C++ flux/magnitude conversion tools.
54
static
double
const
JanskysPerABFlux = 3631.0;
55
57
inline
double
abMagFromFlux
(
double
flux) {
return
-2.5 *
std::log10
(flux / JanskysPerABFlux); }
58
60
inline
double
abMagErrFromFluxErr
(
double
fluxErr,
double
flux) {
61
return
std::abs(fluxErr / (-0.4 * flux *
std::log
(10)));
62
}
63
65
inline
double
fluxFromABMag
(
double
mag)
noexcept
{
return
std::pow
(10.0, -0.4 * mag) * JanskysPerABFlux; }
66
68
inline
double
fluxErrFromABMagErr
(
double
magErr,
double
mag)
noexcept
{
69
return
std::abs(-0.4 * magErr *
fluxFromABMag
(mag) *
std::log
(10.0));
70
}
71
73
template
<
typename
T>
74
ndarray::Array<T, 1>
abMagFromFlux
(ndarray::Array<T const, 1>
const
& flux);
75
77
template
<
typename
T>
78
ndarray::Array<T, 1>
abMagErrFromFluxErr
(ndarray::Array<T const, 1>
const
& fluxErr,
79
ndarray::Array<T const, 1>
const
& flux);
80
82
template
<
typename
T>
83
ndarray::Array<T, 1>
fluxFromABMag
(ndarray::Array<T const, 1>
const
& mag);
84
86
template
<
typename
T>
87
ndarray::Array<T, 1>
fluxErrFromABMagErr
(ndarray::Array<T const, 1>
const
& magErr,
88
ndarray::Array<T const, 1>
const
& mag);
89
90
}
// namespace image
91
}
// namespace afw
92
}
// namespace lsst
93
94
#endif
// LSST_AFW_IMAGE_CALIB_H
DateTime.h
Persistable.h
Point.h
base.h
exceptions.h
std::log10
T log10(T... args)
std::log
T log(T... args)
lsst::afw::image
Definition
imageAlgorithm.dox:1
lsst::afw::image::abMagErrFromFluxErr
double abMagErrFromFluxErr(double fluxErr, double flux)
Compute AB magnitude error from flux and flux error in Janskys.
Definition
Calib.h:60
lsst::afw::image::fluxErrFromABMagErr
double fluxErrFromABMagErr(double magErr, double mag) noexcept
Compute flux error in Janskys from AB magnitude error and AB magnitude.
Definition
Calib.h:68
lsst::afw::image::abMagFromFlux
double abMagFromFlux(double flux)
Compute AB magnitude from flux in Janskys.
Definition
Calib.h:57
lsst::afw::image::fluxFromABMag
double fluxFromABMag(double mag) noexcept
Compute flux in Janskys from AB magnitude.
Definition
Calib.h:65
lsst::afw
Definition
imageAlgorithm.dox:1
lsst
std::pow
T pow(T... args)
Generated on
for lsst.afw by
1.17.0