EleFits
4.0.0
A modern C++ API on top of CFitsIO
|
Binary table data containers and tools.
ColumnInfo
is the simple structure which stores the column metadata:
The repeat count represents the width of the column:
A Column
is an abstract class composed of a ColumnInfo
and some contiguous data. Analogously to Raster
, two concrete classes are implemented, and others can be user-defined:
PtrColumn
is the lightest structure: it just knows a pointer to the first element of the column;VecColumn
owns the data as an std::vector
and is compatible with the move semantics.To write a column, any Column
implementation works: you can even provide your own, e.g. some EigenColumn
. Column
s are always read as VecColumn
instances. If you want to give or steal the data to or from a VecColumn
, you can exploit move semantics, as shown in the Tutorial:
The following helpers are defined:
Segment
is just a pair of long
s used to specify a chunk of a Column
, e.g. for partial reading and writing of binary table HDUs;Indexed
and Named
are typed wrappers of long
and std::string
, respectively: They are used to specify a column in a binary table HDU.The latter two classes are very useful to specify which columns to read as which types. For example, to read several columns of different types, do:
instead of:
which would be error-prone when reading many columns.
Classes | |
struct | Euclid::Fits::ColumnInfo< T > |
Column metadata, i.e. { name, unit, repeatCount } and the value type as the template parameter. More... | |
class | Euclid::Fits::Column< T > |
Binary table column data and metadata. More... | |
class | Euclid::Fits::PtrColumn< T > |
Column which references some external pointer data. More... | |
class | Euclid::Fits::VecColumn< T > |
Column which stores internally the data. More... | |
struct | Euclid::Fits::Segment |
Bounds of a closed index interval. More... | |
Macros | |
#define | ELEFITS_FOREACH_COLUMN_TYPE(MACRO) |
Loop over supported column types. More... | |