lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
src
table
io
FitsReader.cc
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
3
#include "
lsst/afw/table/io/FitsReader.h
"
4
5
namespace
lsst
{
6
namespace
afw
{
7
namespace
table
{
8
namespace
io
{
9
10
namespace
{
11
12
using
Registry = std::map<std::string, const FitsReader *>;
13
14
Registry& getRegistry() {
15
static
Registry it;
16
return
it;
17
}
18
19
static
FitsReader
const
baseFitsReader(
"BASE"
);
20
static
FitsReader
const
ampInfoFitsReader(
"AMPINFO"
);
21
22
}
// namespace
23
24
std::shared_ptr<BaseTable>
FitsReader::makeTable
(
FitsSchemaInputMapper
& mapper,
25
std::shared_ptr<daf::base::PropertyList>
metadata,
26
int
ioFlags,
bool
stripMetadata)
const
{
27
std::shared_ptr<BaseTable>
result =
BaseTable::make
(mapper.
finalize
());
28
result->setMetadata(metadata);
29
return
result;
30
}
31
32
FitsReader::FitsReader
(
std::string
const
& name) { getRegistry()[name] =
this
; }
33
34
FitsReader
const
* FitsReader::_lookupFitsReader(
daf::base::PropertyList
const
& metadata) {
35
std::string
name = metadata.
get
(
std::string
(
"AFW_TYPE"
),
std::string
(
"BASE"
));
36
Registry::iterator i = getRegistry().find(name);
37
if
(i == getRegistry().end()) {
38
throw
LSST_EXCEPT
(
39
lsst::pex::exceptions::NotFoundError
,
40
(boost::format(
"FitsReader with name '%s' does not exist; check AFW_TYPE keyword."
) % name)
41
.str());
42
}
43
return
i->second;
44
}
45
46
void
FitsReader::_setupArchive(
afw::fits::Fits
&
fits
, FitsSchemaInputMapper& mapper,
47
std::shared_ptr<InputArchive>
archive,
int
ioFlags)
const
{
48
if
(
usesArchive
(ioFlags)) {
49
if
(archive) {
50
mapper.setArchive(archive);
51
}
else
{
52
mapper.readArchive(fits);
53
}
54
}
55
}
56
}
// namespace io
57
}
// namespace table
58
}
// namespace afw
59
}
// namespace lsst
LSST_EXCEPT
#define LSST_EXCEPT(type,...)
FitsReader.h
std::string
lsst::afw::fits::Fits
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition
fits.h:242
lsst::afw::table::BaseTable::make
static std::shared_ptr< BaseTable > make(Schema const &schema)
Construct a new table.
Definition
BaseTable.cc:120
lsst::afw::table::io::FitsReader
A utility class for reading FITS binary tables.
Definition
FitsReader.h:34
lsst::afw::table::io::FitsReader::makeTable
virtual std::shared_ptr< BaseTable > makeTable(FitsSchemaInputMapper &mapper, std::shared_ptr< daf::base::PropertyList > metadata, int ioFlags, bool stripMetadata) const
Callback to create a Table object from a FITS binary table schema.
Definition
FitsReader.cc:24
lsst::afw::table::io::FitsReader::usesArchive
virtual bool usesArchive(int ioFlags) const
Callback that should return true if the FitsReader subclass makes use of an InputArchive to read firs...
Definition
FitsReader.h:138
lsst::afw::table::io::FitsReader::FitsReader
FitsReader(std::string const &persistedClassName)
Construct a FitsReader, registering it to be used for all persisted tables with the given tag.
Definition
FitsReader.cc:32
lsst::afw::table::io::FitsSchemaInputMapper
A class that describes a mapping from a FITS binary table to an afw::table Schema.
Definition
FitsSchemaInputMapper.h:91
lsst::afw::table::io::FitsSchemaInputMapper::finalize
Schema finalize()
Map any remaining items into regular Schema items, and return the final Schema.
Definition
FitsSchemaInputMapper.cc:771
lsst::daf::base::PropertyList
lsst::daf::base::PropertyList::get
T get(std::string const &name) const
lsst::pex::exceptions::NotFoundError
lsst::afw::fits
Definition
fits.h:32
lsst::afw::table::io
Definition
tablePersistence.dox:3
lsst::afw::table
Definition
table.dox:3
lsst::afw
Definition
imageAlgorithm.dox:1
lsst
std::shared_ptr
Generated on
for lsst.afw by
1.17.0