lsst.meas.astrom
gff1a9f87cc+eddffb812c
Loading...
Searching...
No Matches
python
lsst
meas
astrom
exceptions.py
Go to the documentation of this file.
1
# This file is part of meas_astrom.
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
#
19
# You should have received a copy of the GNU General Public License
20
# along with this program. If not, see <https://www.gnu.org/licenses/>.
21
22
__all__ = [
"AstrometryError"
,
"AstrometryFitFailure"
,
"BadAstrometryFit"
,
"MatcherFailure"
]
23
24
import
lsst.pipe.base
25
26
27
class
AstrometryError
(lsst.pipe.base.AlgorithmError):
28
"""Parent class for failures in astrometric fitting.
29
30
Parameters
31
----------
32
msg : `str`
33
Informative message about the nature of the error.
34
**kwargs
35
All other arguments are added to a ``_metadata`` attribute, which is
36
used to generate the metadata property for Task annotation.
37
"""
38
def
__init__
(self, msg, **kwargs):
39
self.
msg
= msg
40
self.
_metadata
= kwargs
41
super().
__init__
(msg, kwargs)
42
43
def
__str__
(self):
44
# Exception doesn't handle **kwargs, so we need a custom str.
45
return
f
"{self.msg}: {self.metadata}"
46
47
@property
48
def
metadata
(self):
49
for
key, value
in
self.
_metadata
.items():
50
if
not
(isinstance(value, int)
or
isinstance(value, float)
or
isinstance(value, str)):
51
raise
TypeError(f
"{key} is of type {type(value)}, but only (int, float, str) are allowed."
)
52
return
self.
_metadata
53
54
55
class
BadAstrometryFit
(
AstrometryError
):
56
"""Raised if the quality of the astrometric fit is worse than some
57
threshold.
58
59
Parameters
60
----------
61
distMean : `float`
62
Mean on-sky separation of matched sources, in arcseconds.
63
distMedian : `float`
64
Median on-sky separation of matched sources, in arcseconds.
65
"""
66
def
__init__
(self, distMean, maxMeanDist, distMedian, **kwargs):
67
msg = f
'Poor quality astrometric fit, {distMean}" > {maxMeanDist}"'
68
super().
__init__
(msg, **kwargs)
69
self.
_metadata
[
"distMean"
] = distMean
70
self.
_metadata
[
"maxMeanDist"
] = distMean
71
self.
_metadata
[
"distMedian"
] = distMedian
72
73
74
class
AstrometryFitFailure
(
AstrometryError
):
75
"""Raised if the astrometry fitter fails."""
76
77
78
class
MatcherFailure(AstrometryError):
79
"""Raised if the matcher fails."""
lsst::meas::astrom.exceptions.AstrometryError
Definition
exceptions.py:27
lsst::meas::astrom.exceptions.AstrometryError.msg
msg
Definition
exceptions.py:39
lsst::meas::astrom.exceptions.AstrometryError.metadata
metadata(self)
Definition
exceptions.py:48
lsst::meas::astrom.exceptions.AstrometryError.__init__
__init__(self, msg, **kwargs)
Definition
exceptions.py:38
lsst::meas::astrom.exceptions.AstrometryError.__str__
__str__(self)
Definition
exceptions.py:43
lsst::meas::astrom.exceptions.AstrometryError._metadata
_metadata
Definition
exceptions.py:40
lsst::meas::astrom.exceptions.AstrometryFitFailure
Definition
exceptions.py:74
lsst::meas::astrom.exceptions.BadAstrometryFit
Definition
exceptions.py:55
lsst::meas::astrom.exceptions.BadAstrometryFit.__init__
__init__(self, distMean, maxMeanDist, distMedian, **kwargs)
Definition
exceptions.py:66
lsst.pipe.base
Generated on Thu May 2 2024 04:07:38 for lsst.meas.astrom by
1.10.0