LSST Applications
21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
|
Column-wise view into a sequence of records that have been allocated contiguously. More...
#include <BaseColumnView.h>
Classes | |
struct | Impl |
Public Member Functions | |
std::shared_ptr< BaseTable > | getTable () const |
Return the table that owns the records. More... | |
Schema | getSchema () const |
Return the schema that defines the fields. More... | |
template<typename T > | |
ndarray::ArrayRef< T, 1 > const | operator[] (Key< T > const &key) const |
Return a 1-d array corresponding to a scalar field (or subfield). More... | |
template<typename T > | |
ndarray::ArrayRef< T, 2, 1 > const | operator[] (Key< Array< T > > const &key) const |
Return a 2-d array corresponding to an array field. More... | |
ndarray::result_of::vectorize< detail::FlagExtractor, ndarray::Array< Field< Flag >::Element const, 1 > >::type | operator[] (Key< Flag > const &key) const |
Return a 1-d array expression corresponding to a flag bit. More... | |
BitsColumn | getBits (std::vector< Key< Flag > > const &keys) const |
Return an integer array with the given Flag fields repacked into individual bits. More... | |
BitsColumn | getAllBits () const |
Return an integer array with all Flag fields repacked into individual bits. More... | |
BaseColumnView (BaseColumnView const &) | |
BaseColumnView (BaseColumnView &&) | |
BaseColumnView & | operator= (BaseColumnView const &) |
BaseColumnView & | operator= (BaseColumnView &&) |
~BaseColumnView () | |
Static Public Member Functions | |
template<typename InputIterator > | |
static BaseColumnView | make (std::shared_ptr< BaseTable > const &table, InputIterator first, InputIterator last) |
Construct a BaseColumnView from an iterator range. More... | |
template<typename InputIterator > | |
static bool | isRangeContiguous (std::shared_ptr< BaseTable > const &table, InputIterator first, InputIterator last) |
Return true if the given record iterator range is continuous and the records all belong to the given table. More... | |
Protected Member Functions | |
BaseColumnView (std::shared_ptr< BaseTable > const &table, std::size_t recordCount, void *buf, ndarray::Manager::Ptr const &manager) | |
Friends | |
class | BaseTable |
Column-wise view into a sequence of records that have been allocated contiguously.
A BaseColumnView can be created from any iterator range that dereferences to records, as long as those records' field data is contiguous in memory. In practice, that means they must have been created from the same table, and be in the same order they were created (with no deletions). It also requires that those records be allocated in the same block, which can be guaranteed with BaseTable::preallocate().
Geometric (point and shape) fields cannot be accessed through a BaseColumnView, but their scalar components can be.
BaseColumnView and its subclasses are always non-const views into a catalog, and so cannot be obtained from a catalog-of-const (trying this results in an exception, not a compilation error). As a result, all its accessors return arrays of non-const elements, even though they are themselves const member functions. This is no different from a shared_ptr<T>'s get() member function returning a non-const T*, even though get() is a const member function.
Definition at line 83 of file BaseColumnView.h.
|
default |
|
default |
|
default |
|
protected |
Definition at line 173 of file BaseColumnView.cc.
BitsColumn lsst::afw::table::BaseColumnView::getAllBits | ( | ) | const |
Return an integer array with all Flag fields repacked into individual bits.
The returned object contains both the int64 array and accessors to obtain a mask given a Key or field name.
pex::exceptions::LengthError | if the schema has more than 64 Flag fields. |
Definition at line 147 of file BaseColumnView.cc.
BitsColumn lsst::afw::table::BaseColumnView::getBits | ( | std::vector< Key< Flag > > const & | keys | ) | const |
Return an integer array with the given Flag fields repacked into individual bits.
The returned object contains both the int64 array and accessors to obtain a mask given a Key or field name.
pex::exceptions::LengthError | if keys.size() > 64 |
Definition at line 117 of file BaseColumnView.cc.
|
inline |
Return the schema that defines the fields.
Definition at line 89 of file BaseColumnView.h.
std::shared_ptr< BaseTable > lsst::afw::table::BaseColumnView::getTable | ( | ) | const |
Return the table that owns the records.
Definition at line 68 of file BaseColumnView.cc.
|
static |
Return true if the given record iterator range is continuous and the records all belong to the given table.
This tests exactly the same requiremetns needed to construct a column view, so if this test succeeds, BaseColumnView::make should as well.
Definition at line 218 of file BaseColumnView.h.
|
static |
Construct a BaseColumnView from an iterator range.
The iterators must dereference to a reference or const reference to a record. If the record data is not contiguous in memory, throws lsst::pex::exceptions::RuntimeError.
Definition at line 197 of file BaseColumnView.h.
|
default |
|
default |
ndarray::ArrayRef< T, 2, 1 > const lsst::afw::table::BaseColumnView::operator[] | ( | Key< Array< T > > const & | key | ) | const |
Return a 2-d array corresponding to an array field.
Definition at line 84 of file BaseColumnView.cc.
ndarray::result_of::vectorize< detail::FlagExtractor, ndarray::Array< Field< Flag >::Element const, 1 > >::type lsst::afw::table::BaseColumnView::operator[] | ( | Key< Flag > const & | key | ) | const |
Return a 1-d array expression corresponding to a flag bit.
In C++, the return value is a lazy ndarray expression template that performs the bitwise & operation on every element when that element is requested. In Python, the result will be copied into a bool NumPy array.
Definition at line 101 of file BaseColumnView.cc.
ndarray::ArrayRef< T, 1 > const lsst::afw::table::BaseColumnView::operator[] | ( | Key< T > const & | key | ) | const |
Return a 1-d array corresponding to a scalar field (or subfield).
Definition at line 71 of file BaseColumnView.cc.
|
friend |
Definition at line 162 of file BaseColumnView.h.