LSST Applications g0f08755f38+82efc23009,g12f32b3c4e+e7bdf1200e,g1653933729+a8ce1bb630,g1a0ca8cf93+50eff2b06f,g28da252d5a+52db39f6a5,g2bbee38e9b+37c5a29d61,g2bc492864f+37c5a29d61,g2cdde0e794+c05ff076ad,g3156d2b45e+41e33cbcdc,g347aa1857d+37c5a29d61,g35bb328faa+a8ce1bb630,g3a166c0a6a+37c5a29d61,g3e281a1b8c+fb992f5633,g414038480c+7f03dfc1b0,g41af890bb2+11b950c980,g5fbc88fb19+17cd334064,g6b1c1869cb+12dd639c9a,g781aacb6e4+a8ce1bb630,g80478fca09+72e9651da0,g82479be7b0+04c31367b4,g858d7b2824+82efc23009,g9125e01d80+a8ce1bb630,g9726552aa6+8047e3811d,ga5288a1d22+e532dc0a0b,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+37c5a29d61,gcf0d15dbbd+2acd6d4d48,gd7358e8bfb+778a810b6e,gda3e153d99+82efc23009,gda6a2b7d83+2acd6d4d48,gdaeeff99f8+1711a396fd,ge2409df99d+6b12de1076,ge79ae78c31+37c5a29d61,gf0baf85859+d0a5978c5a,gf3967379c6+4954f8c433,gfb92a5be7c+82efc23009,gfec2e1e490+2aaed99252,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
FitsSchemaInputMapper.h
Go to the documentation of this file.
1// -*- lsst-c++ -*-
2#ifndef AFW_TABLE_IO_FitsSchemaInputMapper_h_INCLUDED
3#define AFW_TABLE_IO_FitsSchemaInputMapper_h_INCLUDED
4
5#include "lsst/afw/fits.h"
10
11namespace lsst {
12namespace afw {
13namespace table {
14namespace io {
15
21public:
23
24 // Neither copyable nor moveable.
27 FitsColumnReader &operator=(FitsColumnReader const &) = delete;
28 FitsColumnReader &operator=(FitsColumnReader &&) = delete;
29
42 virtual void prepRead(std::size_t firstRow, std::size_t nRows, fits::Fits & fits) {}
43
53 virtual void readCell(BaseRecord &record, std::size_t row, fits::Fits &fits,
54 std::shared_ptr<InputArchive> const &archive) const = 0;
55
56 virtual ~FitsColumnReader() noexcept = default;
57};
58
63 int column; // column number (0-indexed); -1 for Flag fields
64 int bit; // flag bit number (0-indexed); -1 for non-Flag fields
65 std::string ttype; // name of the field (from TTYPE keys)
66 std::string tform; // FITS column format code (from TFORM keys)
67 std::string tccls; // which field class to use (from our own TCCLS keys)
68 std::string tunit; // field units (from TUNIT keys)
69 std::string doc; // field docs (from comments on TTYPE keys)
70
71 explicit FitsSchemaItem(int column_, int bit_) : column(column_), bit(bit_) {}
72};
73
92public:
94
108
111
117
121 void setArchive(std::shared_ptr<InputArchive> archive);
122
128 bool readArchive(afw::fits::Fits &fits);
129
131 bool hasArchive() const;
132
139 Item const *find(std::string const &ttype) const;
140
147 Item const *find(int column) const;
148
153 void erase(Item const *item);
154
159 void erase(std::string const &ttype);
160
165 void erase(int column);
166
171
177 Schema finalize();
178
182 void readRecord(BaseRecord &record, afw::fits::Fits &fits, std::size_t row);
183
184private:
185 class Impl;
187};
188} // namespace io
189} // namespace table
190} // namespace afw
191} // namespace lsst
192
193#endif // !AFW_TABLE_IO_FitsSchemaInputMapper_h_INCLUDED
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
Base class for all records.
Definition BaseRecord.h:31
Defines the fields and offsets for a table.
Definition Schema.h:51
Polymorphic reader interface used to read different kinds of objects from one or more FITS binary tab...
virtual ~FitsColumnReader() noexcept=default
virtual void readCell(BaseRecord &record, std::size_t row, fits::Fits &fits, std::shared_ptr< InputArchive > const &archive) const =0
Read values from a single row.
virtual void prepRead(std::size_t firstRow, std::size_t nRows, fits::Fits &fits)
Optionally read ahead and cache values from multiple rows.
A class that describes a mapping from a FITS binary table to an afw::table Schema.
FitsSchemaInputMapper & operator=(FitsSchemaInputMapper const &)
FitsSchemaInputMapper(FitsSchemaInputMapper const &)
static std::size_t PREPPED_ROWS_FACTOR
When processing each column, divide this number by the record size (in bytes) and ask CFITSIO to read...
FitsSchemaInputMapper & operator=(FitsSchemaInputMapper &&)
FitsSchemaInputMapper(FitsSchemaInputMapper &&)
Class for storing ordered metadata with comments.
STL namespace.
int row
Definition CR.cc:145
A structure that describes a field as a collection of related strings read from the FITS header.