LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
FitsReader.cc
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
4 
5 namespace lsst {
6 namespace afw {
7 namespace table {
8 namespace io {
9 
10 namespace {
11 
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 
26  int ioFlags, bool stripMetadata) const {
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(
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
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
A utility class for reading FITS binary tables.
Definition: FitsReader.h:34
Class for storing ordered metadata with comments.
Definition: PropertyList.h:68
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.
SchemaMapper * mapper
Definition: SchemaMapper.cc:78
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition: fits.h:297
STL class.
Fits * fits
Definition: FitsWriter.cc:90
STL class.
Reports attempts to access elements using an invalid key.
Definition: Runtime.h:151
A base class for image defects.
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
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
T get(std::string const &name) const
Get the last value for a property name (possibly hierarchical).
Definition: PropertyList.cc:61
static std::shared_ptr< BaseTable > make(Schema const &schema)
Construct a new table.
Definition: BaseTable.cc:121
Schema finalize()
Map any remaining items into regular Schema items, and return the final Schema.
bool readArchive(afw::fits::Fits &fits)
Set the Archive by reading from the HDU specified by the AR_HDU header entry.
void setArchive(std::shared_ptr< InputArchive > archive)
Set the Archive to an externally-provided one, overriding any that may have been read.
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
py::object result
Definition: _schema.cc:429
int end