LSST Applications g180d380827+0f66a164bb,g2079a07aa2+86d27d4dc4,g2305ad1205+7d304bc7a0,g29320951ab+500695df56,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+e42ea45bea,g48712c4677+36a86eeaa5,g487adcacf7+2dd8f347ac,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+c70619cc9d,g5a732f18d5+53520f316c,g5ea96fc03c+341ea1ce94,g64a986408d+f7cd9c7162,g858d7b2824+f7cd9c7162,g8a8a8dda67+585e252eca,g99cad8db69+469ab8c039,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+c92fc63c7e,gbd866b1f37+f7cd9c7162,gc120e1dc64+02c66aa596,gc28159a63d+0e5473021a,gc3e9b769f7+b0068a2d9f,gcf0d15dbbd+e42ea45bea,gdaeeff99f8+f9a426f77a,ge6526c86ff+84383d05b3,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+f7cd9c7162,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
FitsReader.cc
Go to the documentation of this file.
1// -*- lsst-c++ -*-
2
4
5namespace lsst {
6namespace afw {
7namespace table {
8namespace io {
9
10namespace {
11
13
14Registry& getRegistry() {
15 static Registry it;
16 return it;
17}
18
19static FitsReader const baseFitsReader("BASE");
20static FitsReader const ampInfoFitsReader("AMPINFO");
21
22} // namespace
23
31
33
34FitsReader 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(
40 (boost::format("FitsReader with name '%s' does not exist; check AFW_TYPE keyword.") % name)
41 .str());
42 }
43 return i->second;
44}
45
46void 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
py::object result
Definition _schema.cc:429
table::Key< std::string > name
Definition Amplifier.cc:116
int end
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition Exception.h:48
SchemaMapper * mapper
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition fits.h:308
Tag types used to declare specialized field types.
Definition misc.h:31
static std::shared_ptr< BaseTable > make(Schema const &schema)
Construct a new table.
Definition BaseTable.cc:120
A utility class for reading FITS binary tables.
Definition FitsReader.h:34
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
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
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
A class that describes a mapping from a FITS binary table to an afw::table Schema.
Class for storing ordered metadata with comments.
T get(std::string const &name) const
Get the last value for a property name (possibly hierarchical).
Reports attempts to access elements using an invalid key.
Definition Runtime.h:151