lsst.skymap
g6512b7a353+dfe4f595c2
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
skymap
discreteSkyMap.py
Go to the documentation of this file.
1
#
2
# LSST Data Management System
3
# Copyright 2008, 2009, 2010, 2012 LSST Corporation.
4
#
5
# This product includes software developed by the
6
# LSST Project (http://www.lsst.org/).
7
#
8
# This program is free software: you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
10
# the Free Software Foundation, either version 3 of the License, or
11
# (at your option) any later version.
12
#
13
# This program is distributed in the hope that it will be useful,
14
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
# GNU General Public License for more details.
17
#
18
# You should have received a copy of the LSST License Statement and
19
# the GNU General Public License along with this program. If not,
20
# see <http://www.lsstcorp.org/LegalNotices/>.
21
#
22
23
__all__ = [
"DiscreteSkyMapConfig"
,
"DiscreteSkyMap"
]
24
25
import
struct
26
27
from
lsst.pex.config
import
ListField
28
import
lsst.geom
as
geom
29
from
.cachingSkyMap
import
CachingSkyMap
30
from
.tractInfo
import
ExplicitTractInfo
31
32
33
class
DiscreteSkyMapConfig
(CachingSkyMap.ConfigClass):
34
"""Configuration for the DiscreteSkyMap"""
35
36
raList = ListField(dtype=float, default=[], doc=
"Right Ascensions of tract centers (ICRS, degrees)"
)
37
decList = ListField(dtype=float, default=[], doc=
"Declinations of tract centers (ICRS, degrees)"
)
38
radiusList = ListField(dtype=float, default=[], doc=
"Radii of tracts (degrees)"
)
39
40
def
validate
(self):
41
super(DiscreteSkyMapConfig, self).
validate
()
42
if
len(self.
radiusList
) != len(self.
raList
):
43
raise
ValueError(
"Number of radii (%d) and RAs (%d) do not match"
%
44
(len(self.
radiusList
), len(self.
raList
)))
45
if
len(self.
radiusList
) != len(self.
decList
):
46
raise
ValueError(
"Number of radii (%d) and Decs (%d) do not match"
%
47
(len(self.
radiusList
), len(self.
decList
)))
48
49
50
class
DiscreteSkyMap
(
CachingSkyMap
):
51
"""Discrete sky map pixelization.
52
53
We put a square Tract at each of the nominated coordinates.
54
55
Parameters
56
----------
57
config : `lsst.skyMap.BaseSkyMapConfig`
58
The configuration for this SkyMap; if None use the default config.
59
version : `int` or `tuple` of `int` (optional)
60
Software version of this class, to retain compatibility with old
61
instances.
62
"""
63
ConfigClass = DiscreteSkyMapConfig
64
_version = (1, 0)
# for pickle
65
66
def
__init__
(self, config, version=0):
67
numTracts = len(config.radiusList)
68
super(DiscreteSkyMap, self).
__init__
(numTracts, config, version)
69
70
def
generateTract
(self, index):
71
"""Generate TractInfo for the specified tract index."""
72
center =
geom.SpherePoint
(self.
config
.raList[index], self.
config
.decList[index], geom.degrees)
73
radius = self.
config
.radiusList[index]
74
wcs = self.
_wcsFactory
.makeWcs(crPixPos=
geom.Point2D
(0, 0), crValCoord=center)
75
return
ExplicitTractInfo
(index, self.
_tractBuilder
, center,
76
radius*geom.degrees, self.
config
.tractOverlap*geom.degrees, wcs)
77
78
def
updateSha1
(self, sha1):
79
"""Add subclass-specific state or configuration options to the SHA1."""
80
fmt =
"<{}d"
.format(len(self.
config
.radiusList))
81
sha1.update(struct.pack(fmt, *self.
config
.raList))
82
sha1.update(struct.pack(fmt, *self.
config
.decList))
83
sha1.update(struct.pack(fmt, *self.
config
.radiusList))
lsst::geom::Point< double, 2 >
lsst::geom::SpherePoint
lsst.skymap.baseSkyMap.BaseSkyMap.config
config
Definition
baseSkyMap.py:162
lsst.skymap.baseSkyMap.BaseSkyMap._tractBuilder
_tractBuilder
Definition
baseSkyMap.py:170
lsst.skymap.baseSkyMap.BaseSkyMap._wcsFactory
_wcsFactory
Definition
baseSkyMap.py:164
lsst.skymap.cachingSkyMap.CachingSkyMap
Definition
cachingSkyMap.py:28
lsst.skymap.discreteSkyMap.DiscreteSkyMapConfig
Definition
discreteSkyMap.py:33
lsst.skymap.discreteSkyMap.DiscreteSkyMapConfig.raList
raList
Definition
discreteSkyMap.py:36
lsst.skymap.discreteSkyMap.DiscreteSkyMapConfig.validate
validate(self)
Definition
discreteSkyMap.py:40
lsst.skymap.discreteSkyMap.DiscreteSkyMapConfig.radiusList
radiusList
Definition
discreteSkyMap.py:38
lsst.skymap.discreteSkyMap.DiscreteSkyMapConfig.decList
decList
Definition
discreteSkyMap.py:37
lsst.skymap.discreteSkyMap.DiscreteSkyMap
Definition
discreteSkyMap.py:50
lsst.skymap.discreteSkyMap.DiscreteSkyMap.updateSha1
updateSha1(self, sha1)
Definition
discreteSkyMap.py:78
lsst.skymap.discreteSkyMap.DiscreteSkyMap.__init__
__init__(self, config, version=0)
Definition
discreteSkyMap.py:66
lsst.skymap.discreteSkyMap.DiscreteSkyMap.generateTract
generateTract(self, index)
Definition
discreteSkyMap.py:70
lsst.skymap.tractInfo.ExplicitTractInfo
Definition
tractInfo.py:431
lsst::geom
lsst::pex::config
Generated on
for lsst.skymap by
1.17.0