lsst.skymap
g3a3843c330+736b02e1dd
Loading...
Searching...
No Matches
python
lsst
skymap
cachingSkyMap.py
Go to the documentation of this file.
1
#
2
# LSST Data Management System
3
# Copyright 2008-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__ = [
"CachingSkyMap"
]
24
25
from
.baseSkyMap
import
BaseSkyMap
26
27
28
class
CachingSkyMap
(
BaseSkyMap
):
29
"""A SkyMap that generates its tracts on request and caches them.
30
31
Parameters
32
----------
33
numTracts : `int`
34
Number of tracts to create.
35
config : `lsst.skymap.BaseSkyMapConfig` (optional)
36
The configuration for this SkyMap; if None use the default config.
37
version : `int` or `tuple` of `int` (optional)
38
Software version of this class, to retain compatibility with old
39
instances.
40
41
Notes
42
-----
43
A subclass should define
44
* __init__ to calculate the required number of tracts (and pass it up)
45
* generateTract to generate a tract
46
47
Subclassers should also check that the arguments to the constructor are
48
consistent with the below __reduce__ method.
49
"""
50
51
def
__init__
(self, numTracts, config=None, version=0):
52
super(CachingSkyMap, self).
__init__
(config)
53
self.
_numTracts
= numTracts
54
self.
_tractCache
= [
None
] * self.
_numTracts
55
self.
_tractInfo
=
None
# We shouldn't need this; we will generate tracts on demand
56
self.
_version
= version
57
58
def
__reduce__
(self):
59
"""To support pickling.
60
61
Notes
62
-----
63
**Warning:** This method assumes that the constructor is be defined:
64
__init__(self, config, version=defaultVersion)
65
The use of 'config' is effectively set by the registry mechanism.
66
If additional optional arguments are added, this method should be
67
overridden to correspond.
68
"""
69
return
(self.
__class__
, (self.
config
config
, self.
_version
))
70
71
def
__iter__
(self):
72
"""Iterator over tracts."""
73
for
i
in
range(self.
_numTracts
):
74
yield
self[i]
75
76
def
__len__
(self):
77
"""Length is number of tracts."""
78
return
self.
_numTracts
79
80
def
__getitem__
(self, index):
81
"""Get the TractInfo for a particular index.
82
83
The tract is returned from a cache, if available, otherwise generated
84
on the fly.
85
"""
86
if
index < 0
or
index > self.
_numTracts
:
87
raise
IndexError(
"Index out of range: %d vs %d"
% (index, self.
_numTracts
))
88
if
self.
_tractCache
[index]
is
not
None
:
89
return
self.
_tractCache
[index]
90
tract = self.
generateTract
(index)
91
self.
_tractCache
[index] = tract
92
return
tract
93
94
def
generateTract
(self, index):
95
"""Generate TractInfo for the specified tract index."""
96
raise
NotImplementedError(
"Subclasses must define this method."
)
lsst.skymap.baseSkyMap.BaseSkyMap
Definition
baseSkyMap.py:130
lsst.skymap.baseSkyMap.BaseSkyMap.config
config
Definition
baseSkyMap.py:162
lsst.skymap.cachingSkyMap.CachingSkyMap
Definition
cachingSkyMap.py:28
lsst.skymap.cachingSkyMap.CachingSkyMap.__iter__
__iter__(self)
Definition
cachingSkyMap.py:71
lsst.skymap.cachingSkyMap.CachingSkyMap._numTracts
_numTracts
Definition
cachingSkyMap.py:53
lsst.skymap.cachingSkyMap.CachingSkyMap.__getitem__
__getitem__(self, index)
Definition
cachingSkyMap.py:80
lsst.skymap.cachingSkyMap.CachingSkyMap._tractInfo
_tractInfo
Definition
cachingSkyMap.py:55
lsst.skymap.cachingSkyMap.CachingSkyMap._tractCache
_tractCache
Definition
cachingSkyMap.py:54
lsst.skymap.cachingSkyMap.CachingSkyMap.__reduce__
__reduce__(self)
Definition
cachingSkyMap.py:58
lsst.skymap.cachingSkyMap.CachingSkyMap.__class__
__class__
Definition
cachingSkyMap.py:69
lsst.skymap.cachingSkyMap.CachingSkyMap.generateTract
generateTract(self, index)
Definition
cachingSkyMap.py:94
lsst.skymap.cachingSkyMap.CachingSkyMap._version
_version
Definition
cachingSkyMap.py:56
lsst.skymap.cachingSkyMap.CachingSkyMap.config
config
Definition
cachingSkyMap.py:69
lsst.skymap.cachingSkyMap.CachingSkyMap.__init__
__init__(self, numTracts, config=None, version=0)
Definition
cachingSkyMap.py:51
lsst.skymap.cachingSkyMap.CachingSkyMap.__len__
__len__(self)
Definition
cachingSkyMap.py:76
Generated on Thu Oct 26 2023 10:33:22 for lsst.skymap by
1.9.8