LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
datarel
11.0+1
python
lsst
datarel
utils.py
Go to the documentation of this file.
1
#
2
# LSST Data Management System
3
# Copyright 2008, 2009, 2010 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
import
sys
24
25
import
lsst.afw.geom
as
afwGeom
26
27
def
getDataset
(butler, dataset, dataId, strict, warn):
28
"""Get a dataset from a repository with an optional exception or warning if not found
29
30
@param[in] butler: data butler
31
@param[in] dataset: name of desired dataset
32
@param[in] dataId: data ID dict
33
@param[in] strict: if True then raise RuntimeError if dataset not found
34
@param[in] warn: if True and strict False then print a warning to stderr if dataset not found
35
36
@raise RuntimeError if dataset not found and strict true
37
"""
38
try
:
39
ds = butler.get(dataset, dataId=dataId, immediate=
True
)
40
except
:
41
ds =
None
42
if
ds ==
None
:
43
msg =
'{} : Failed to retrieve {} dataset'
.
format
(dataId, dataset)
44
if
strict:
45
raise
RuntimeError(msg)
46
elif
warn:
47
print
>>sys.stderr,
'*** Skipping '
+ msg
48
return
ds
49
50
def
getPsf
(butler, dataset, dataId, strict, warn):
51
"""Get the PSF from a repository without reading (very much of) the exposure
52
53
@param[in] butler: data butler
54
@param[in] dataset: name of desired dataset
55
@param[in] dataId: data ID dict of exposure containing desired PSF
56
@param[in] strict: if True then raise RuntimeError if psf not found
57
@param[in] warn: if True and strict False then print a warning to stderr if psf not found
58
59
@raise RuntimeError if exposure not found (regardless of strict)
60
@raise RuntimeError if exposure has no PSF and strict true
61
"""
62
# there is not yet a way to read just the PSF, so read a 1x1 subregion of the exposure
63
tinyBBox =
afwGeom.Box2I
(
afwGeom.Point2I
(0,0),
afwGeom.Extent2I
(1,1))
64
tinyExposure = butler.get(dataset +
"_sub"
, dataId=dataId, bbox=tinyBBox, imageOrigin=
"LOCAL"
, immediate=
True
)
65
psf = tinyExposure.getPsf()
66
if
psf
is
None
:
67
msg =
'%s : %s exposure had no PSF'
% (dataId, dataset)
68
psf =
None
69
if
strict:
70
raise
RuntimeError(msg)
71
elif
warn:
72
print
>>sys.stderr,
'*** Skipping '
+ msg
73
return
psf
lsst::pex.config.history.format
def format
Definition:
history.py:127
lsst.datarel.utils.getPsf
def getPsf
Definition:
utils.py:50
lsst::afw::geom::Extent< int, 2 >
lsst::afw::geom::Point< int, 2 >
lsst::afw::geom::Box2I
An integer coordinate rectangle.
Definition:
Box.h:53
lsst::afw::geom
Definition:
AffineTransform.h:38
lsst.datarel.utils.getDataset
def getDataset
Definition:
utils.py:27
Generated on Thu Sep 24 2015 02:29:24 for LSSTApplications by
1.8.5