lsst.pipe.tasks
g2c8cee2ce7+1ac6cedd78
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
pipe
tasks
fit_multiband.py
Go to the documentation of this file.
1
# This file is part of pipe_tasks.
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__ = [
"CatalogExposure"
,
"CatalogExposureConfig"
, ]
23
24
from
functools
import
cached_property
25
from
pydantic
import
Field, ConfigDict
26
from
pydantic.dataclasses
import
dataclass
27
28
import
lsst.afw.image
as
afwImage
29
import
lsst.afw.table
as
afwTable
30
import
lsst.daf.butler
as
dafButler
31
32
33
CatalogExposureConfig = ConfigDict(arbitrary_types_allowed=
True
)
34
35
36
@dataclass(frozen=True, kw_only=True, config=CatalogExposureConfig)
37
class
CatalogExposure
:
38
"""A class to store a catalog, exposure, and metadata for a given dataId.
39
40
The intent is to store an exposure and an associated measurement catalog.
41
Users may omit one but not both (e.g. if the intent is just to attach
42
a dataId and metadata to a catalog or exposure).
43
"""
44
@cached_property
45
def
band
(self) -> str:
46
return
self.
dataId
[
'band'
]
47
48
@cached_property
49
def
calib
(self) -> afwImage.PhotoCalib | None:
50
return
None
if
self.
exposure
is
None
else
self.
exposure
.getPhotoCalib()
51
52
dataId: dafButler.DataCoordinate | dict = Field(
53
title=
"A DataCoordinate or dict containing a 'band' item"
)
54
catalog: afwTable.SourceCatalog |
None
= Field(
None
, title=
"The measurement catalog, if any"
)
55
exposure: afwImage.Exposure |
None
= Field(
None
, title=
"The exposure, if any"
)
56
id_tract_patch: int = Field(0, title=
"A unique ID for this tract-patch pair"
)
57
metadata: dict = Field(default_factory=dict, title=
"Arbitrary metadata"
)
58
59
def
__post_init__
(self):
60
if
self.
catalog
is
None
and
self.
exposure
is
None
:
61
raise
ValueError(
"Must specify at least one of catalog/exposure"
)
62
if
'band'
not
in
self.
dataId
:
63
raise
ValueError(f
"dataId={self.dataId} must have a band"
)
lsst.pipe.tasks.fit_multiband.CatalogExposure
Definition
fit_multiband.py:37
lsst.pipe.tasks.fit_multiband.CatalogExposure.exposure
afwImage exposure
Definition
fit_multiband.py:55
lsst.pipe.tasks.fit_multiband.CatalogExposure.dataId
dafButler dataId
Definition
fit_multiband.py:52
lsst.pipe.tasks.fit_multiband.CatalogExposure.calib
afwImage.PhotoCalib|None calib(self)
Definition
fit_multiband.py:49
lsst.pipe.tasks.fit_multiband.CatalogExposure.band
str band(self)
Definition
fit_multiband.py:45
lsst.pipe.tasks.fit_multiband.CatalogExposure.__post_init__
__post_init__(self)
Definition
fit_multiband.py:59
lsst.pipe.tasks.fit_multiband.CatalogExposure.catalog
afwTable catalog
Definition
fit_multiband.py:54
lsst::afw::image
lsst::afw::table
Generated on
for lsst.pipe.tasks by
1.17.0