lsst.meas.algorithms
g4a7591d645+fa9daf83c6
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
meas
algorithms
readFitsCatalogTask.py
Go to the documentation of this file.
1
#
2
# LSST Data Management System
3
#
4
# Copyright 2008-2017 AURA/LSST.
5
#
6
# This product includes software developed by the
7
# LSST Project (http://www.lsst.org/).
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 LSST License Statement and
20
# the GNU General Public License along with this program. If not,
21
# see <https://www.lsstcorp.org/LegalNotices/>.
22
#
23
24
__all__ = [
"ReadFitsCatalogConfig"
,
"ReadFitsCatalogTask"
]
25
26
from
astropy.table
import
Table
27
28
import
lsst.pex.config
as
pexConfig
29
import
lsst.pipe.base
as
pipeBase
30
31
32
class
ReadFitsCatalogConfig
(pexConfig.Config):
33
hdu = pexConfig.Field(
34
dtype=int,
35
default=1,
36
doc=
"HDU containing the desired binary table, 0-based but a binary table never occurs in HDU 0"
,
37
)
38
column_map = pexConfig.DictField(
39
doc=
"Mapping of input column name: output column name; each specified column must exist, "
40
"but additional columns in the input data are written using their original name. "
,
41
keytype=str,
42
itemtype=str,
43
default={},
44
)
45
46
47
class
ReadFitsCatalogTask
(pipeBase.Task):
48
"""Read an object catalog from a FITS table
49
50
The resulting `catalogArray` is a numpy structured array containing fields such as "name", "ra" and "dec"
51
and a few rows of data. For more complicated cases config parameters allow you to rename columns
52
and choose which HDU to read.
53
"""
54
_DefaultName =
'readCatalog'
55
ConfigClass = ReadFitsCatalogConfig
56
57
def
run
(self, filename):
58
"""Read an object catalog from the specified FITS file
59
60
Parameters
61
----------
62
filename : `str`
63
Path to specified FITS file
64
65
Returns
66
-------
67
table : `np.array`
68
a numpy structured array containing the specified columns
69
"""
70
71
# Set character_as_bytes=False to ensure that all string columns are
72
# set to python string types rather than byte arrays.
73
table = Table.read(filename, hdu=self.config.hdu, character_as_bytes=
False
)
74
if
table
is
None
:
75
raise
RuntimeError(
"No data found in %s HDU %s"
% (filename, self.config.hdu))
76
77
if
not
self.config.column_map:
78
# take the data as it is
79
return
table.as_array()
80
81
missingnames = set(self.config.column_map.keys()) - set(table.columns.keys())
82
if
missingnames:
83
raise
RuntimeError(
"Columns %s in column_map were not found in %s"
% (missingnames, filename))
84
85
for
inname, outname
in
self.config.column_map.items():
86
table.columns[inname].name = outname
87
return
table.as_array()
lsst::meas::algorithms.readFitsCatalogTask.ReadFitsCatalogConfig
Definition
readFitsCatalogTask.py:32
lsst::meas::algorithms.readFitsCatalogTask.ReadFitsCatalogTask
Definition
readFitsCatalogTask.py:47
lsst::meas::algorithms.readFitsCatalogTask.ReadFitsCatalogTask.run
run(self, filename)
Definition
readFitsCatalogTask.py:57
lsst::pex::config
lsst.pipe.base
Generated on
for lsst.meas.algorithms by
1.17.0