lsst.pipe.tasks
g2c8cee2ce7+363d2db7ea
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
pipe
tasks
script
registerSkymap.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
# (http://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 <http://www.gnu.org/licenses/>.
21
22
import
logging
23
24
from
lsst.daf.butler
import
Butler
25
from
lsst.resources
import
ResourcePath
26
import
lsst.pex.config
as
pexConfig
27
from
lsst.skymap
import
skyMapRegistry
28
29
30
_log = logging.getLogger(__name__)
31
32
33
class
MakeSkyMapConfig
(pexConfig.Config):
34
"""Config for makeSkyMap.
35
"""
36
name = pexConfig.Field(
37
doc=
"Name assigned to created skymap in butler registry"
,
38
dtype=str,
39
default=
None
,
40
optional=
True
41
)
42
skyMap = skyMapRegistry.makeField(
43
doc=
"type of skyMap"
,
44
default=
"dodeca"
,
45
)
46
47
def
validate
(self):
48
if
self.
name
is
None
:
49
raise
ValueError(
"The name field must be set to the name of the specific "
50
"skymap to use when writing to the butler"
)
51
52
53
def
makeSkyMap
(butler, config):
54
"""Construct and save a SkyMap into a gen3 butler repository.
55
56
Parameters
57
----------
58
butler : `lsst.daf.butler.Butler`
59
Butler repository to which the new skymap will be written.
60
config : `MakeSkyMapConfig` or None
61
Instance of a configuration class specifying task options.
62
"""
63
skyMap = config.skyMap.apply()
64
skyMap.logSkyMapInfo(_log)
65
skyMap.register(config.name, butler)
66
67
68
def
registerSkymap(repo, config, config_file):
69
"""Make and register a SkyMap in a butler repository.
70
71
Parameters
72
----------
73
repo : `str`
74
URI to the location of the butler repository.
75
config : `dict` [`str`, `str`] or `None`
76
Key-value pairs to apply as overrides to the ingest config.
77
config_file : `str` or `None`
78
Path to a config overrides file. Can be a URI.
79
80
Raises
81
------
82
RuntimeError
83
If a config overrides file is given and does not exist.
84
"""
85
86
skyMapConfig =
MakeSkyMapConfig
()
87
if
config_file:
88
# pex_config can not support URIs but in the script interface
89
# we trust that the caller trusts the remote resource they are
90
# specifying (configs allow arbitrary python code to run).
91
resource = ResourcePath(config_file)
92
with
resource.as_local()
as
local_config:
93
skyMapConfig.load(local_config.ospath)
94
95
if
config:
96
skyMapConfig.update(**config)
97
98
with
Butler.from_config(repo, writeable=
True
)
as
butler:
99
makeSkyMap
(butler, skyMapConfig)
lsst.pipe.tasks.script.registerSkymap.MakeSkyMapConfig
Definition
registerSkymap.py:33
lsst.pipe.tasks.script.registerSkymap.MakeSkyMapConfig.validate
validate(self)
Definition
registerSkymap.py:47
lsst.pipe.tasks.script.registerSkymap.MakeSkyMapConfig.name
name
Definition
registerSkymap.py:36
lsst::pex::config
lsst.pipe.tasks.script.registerSkymap.makeSkyMap
makeSkyMap(butler, config)
Definition
registerSkymap.py:53
lsst::skymap
Generated on
for lsst.pipe.tasks by
1.17.0