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
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
lsst::afw::table::SourceColumnViewT< RecordT > Class Template Reference

#include <fwd.h>

Inheritance diagram for lsst::afw::table::SourceColumnViewT< RecordT >:
lsst::afw::table::ColumnViewT< RecordT > lsst::afw::table::BaseColumnView

Public Types

typedef RecordT Record
 
typedef RecordT::Table Table
 

Public Member Functions

ndarray::Array< double, 1 > getPsfInstFlux () const
 Get the value of the PsfFlux slot measurement. More...
 
ndarray::Array< double, 1 > getPsfInstFluxErr () const
 Get the uncertainty on the PsfFlux slot measurement. More...
 
ndarray::Array< double, 1 > getApInstFlux () const
 Get the value of the ApFlux slot measurement. More...
 
ndarray::Array< double, 1 > getApInstFluxErr () const
 Get the uncertainty on the ApFlux slot measurement. More...
 
ndarray::Array< double, 1 > getModelInstFlux () const
 Get the value of the ModelFlux slot measurement. More...
 
ndarray::Array< double, 1 > getModelInstFluxErr () const
 Get the uncertainty on the ModelFlux slot measurement. More...
 
ndarray::Array< double, 1 > getGaussianInstFlux () const
 Get the value of the GaussianFlux slot measurement. More...
 
ndarray::Array< double, 1 > getGaussianInstFluxErr () const
 Get the uncertainty on the GaussianFlux slot measurement. More...
 
ndarray::Array< double, 1 > getCalibInstFlux () const
 Get the value of the CalibFlux slot measurement. More...
 
ndarray::Array< double, 1 > getCalibInstFluxErr () const
 Get the uncertainty on the CalibFlux slot measurement. More...
 
ndarray::Array< double, 1 > const getX () const
 
ndarray::Array< double, 1 > const getY () const
 
ndarray::Array< double, 1 > const getIxx () const
 
ndarray::Array< double, 1 > const getIyy () const
 
ndarray::Array< double, 1 > const getIxy () const
 
 SourceColumnViewT (SourceColumnViewT const &)=default
 
 SourceColumnViewT (SourceColumnViewT &&)=default
 
SourceColumnViewToperator= (SourceColumnViewT const &)=default
 
SourceColumnViewToperator= (SourceColumnViewT &&)=default
 
 ~SourceColumnViewT ()=default
 
std::shared_ptr< TablegetTable () 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...
 

Static Public Member Functions

template<typename InputIterator >
static SourceColumnViewT make (std::shared_ptr< Table > const &table, InputIterator first, InputIterator last)
 Construct a BaseColumnView from an iterator range. More...
 
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

 SourceColumnViewT (BaseColumnView const &base)
 

Detailed Description

template<typename RecordT>
class lsst::afw::table::SourceColumnViewT< RecordT >

Definition at line 65 of file fwd.h.

Member Typedef Documentation

◆ Record

template<typename RecordT >
typedef RecordT lsst::afw::table::SourceColumnViewT< RecordT >::Record

Definition at line 551 of file Source.h.

◆ Table

template<typename RecordT >
typedef RecordT::Table lsst::afw::table::SourceColumnViewT< RecordT >::Table

Definition at line 552 of file Source.h.

Constructor & Destructor Documentation

◆ SourceColumnViewT() [1/3]

template<typename RecordT >
lsst::afw::table::SourceColumnViewT< RecordT >::SourceColumnViewT ( SourceColumnViewT< RecordT > const &  )
default

◆ SourceColumnViewT() [2/3]

template<typename RecordT >
lsst::afw::table::SourceColumnViewT< RecordT >::SourceColumnViewT ( SourceColumnViewT< RecordT > &&  )
default

◆ ~SourceColumnViewT()

template<typename RecordT >
lsst::afw::table::SourceColumnViewT< RecordT >::~SourceColumnViewT ( )
default

◆ SourceColumnViewT() [3/3]

template<typename RecordT >
lsst::afw::table::SourceColumnViewT< RecordT >::SourceColumnViewT ( BaseColumnView const &  base)
inlineexplicitprotected

Definition at line 633 of file Source.h.

633 : ColumnViewT<RecordT>(base) {}
Definition: __init__.py:1

Member Function Documentation

◆ getAllBits()

BitsColumn lsst::afw::table::BaseColumnView::getAllBits ( ) const
inherited

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.

Exceptions
pex::exceptions::LengthErrorif the schema has more than 64 Flag fields.

Definition at line 147 of file BaseColumnView.cc.

147  {
148  BitsColumn result(_impl->recordCount);
149  ExtractFlagItems func = {&result._items};
150  getSchema().forEach(func);
151  if (result._items.size() > sizeof(BitsColumn::IntT)) {
152  throw LSST_EXCEPT(pex::exceptions::LengthError,
153  (boost::format("Too many Flag keys in schema; %d > %d.") % result._items.size() %
154  sizeof(BitsColumn::IntT))
155  .str());
156  }
157  ndarray::ArrayRef<BitsColumn::IntT, 1, 1> array = result._array.deep();
158  BitsColumn::IntT const size = result._items.size(); // just for unsigned/signed comparisons
159  for (BitsColumn::IntT i = 0; i < size; ++i) {
160  array |= (BitsColumn::IntT(1) << i) * (*this)[result._items[i].key];
161  }
162  return result;
163 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
Schema getSchema() const
Return the schema that defines the fields.
void forEach(F &&func) const
Apply a functor to each SchemaItem in the Schema.
Definition: Schema.h:212
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
py::object result
Definition: _schema.cc:429

◆ getApInstFlux()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getApInstFlux ( ) const
inline

Get the value of the ApFlux slot measurement.

Definition at line 567 of file Source.h.

567  {
568  return this->operator[](this->getTable()->getApFluxSlot().getMeasKey());
569  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getApInstFluxErr()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getApInstFluxErr ( ) const
inline

Get the uncertainty on the ApFlux slot measurement.

Definition at line 571 of file Source.h.

571  {
572  return this->operator[](this->getTable()->getApFluxSlot().getErrKey());
573  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getBits()

BitsColumn lsst::afw::table::BaseColumnView::getBits ( std::vector< Key< Flag > > const &  keys) const
inherited

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.

Exceptions
pex::exceptions::LengthErrorif keys.size() > 64

Definition at line 117 of file BaseColumnView.cc.

117  {
118  BitsColumn result(_impl->recordCount);
119  ndarray::ArrayRef<BitsColumn::IntT, 1, 1> array = result._array.deep();
120  if (keys.size() > sizeof(BitsColumn::IntT)) {
121  throw LSST_EXCEPT(pex::exceptions::LengthError,
122  (boost::format("Too many keys passed to getBits(); %d > %d.") % keys.size() %
123  sizeof(BitsColumn::IntT))
124  .str());
125  }
126  BitsColumn::IntT const size = keys.size(); // just for unsigned/signed comparisons
127  for (BitsColumn::IntT i = 0; i < size; ++i) {
128  array |= (BitsColumn::IntT(1) << i) * (*this)[keys[i]];
129  result._items.push_back(getSchema().find(keys[i]));
130  }
131  return result;
132 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
Schema getSchema() const
Return the schema that defines the fields.
T find(T... args)
T size(T... args)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
py::object result
Definition: _schema.cc:429

◆ getCalibInstFlux()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getCalibInstFlux ( ) const
inline

Get the value of the CalibFlux slot measurement.

Definition at line 594 of file Source.h.

594  {
595  return this->operator[](this->getTable()->getCalibFluxSlot().getMeasKey());
596  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getCalibInstFluxErr()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getCalibInstFluxErr ( ) const
inline

Get the uncertainty on the CalibFlux slot measurement.

Definition at line 598 of file Source.h.

598  {
599  return this->operator[](this->getTable()->getCalibFluxSlot().getErrKey());
600  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getGaussianInstFlux()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getGaussianInstFlux ( ) const
inline

Get the value of the GaussianFlux slot measurement.

Definition at line 585 of file Source.h.

585  {
586  return this->operator[](this->getTable()->getGaussianFluxSlot().getMeasKey());
587  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getGaussianInstFluxErr()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getGaussianInstFluxErr ( ) const
inline

Get the uncertainty on the GaussianFlux slot measurement.

Definition at line 589 of file Source.h.

589  {
590  return this->operator[](this->getTable()->getGaussianFluxSlot().getErrKey());
591  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getIxx()

template<typename RecordT >
ndarray::Array<double, 1> const lsst::afw::table::SourceColumnViewT< RecordT >::getIxx ( ) const
inline

Definition at line 609 of file Source.h.

609  {
610  return this->operator[](this->getTable()->getShapeKey().getIxx());
611  }
ndarray::Array< double, 1 > const getIxx() const
Definition: Source.h:609
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getIxy()

template<typename RecordT >
ndarray::Array<double, 1> const lsst::afw::table::SourceColumnViewT< RecordT >::getIxy ( ) const
inline

Definition at line 615 of file Source.h.

615  {
616  return this->operator[](this->getTable()->getShapeKey().getIxy());
617  }
ndarray::Array< double, 1 > const getIxy() const
Definition: Source.h:615
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getIyy()

template<typename RecordT >
ndarray::Array<double, 1> const lsst::afw::table::SourceColumnViewT< RecordT >::getIyy ( ) const
inline

Definition at line 612 of file Source.h.

612  {
613  return this->operator[](this->getTable()->getShapeKey().getIyy());
614  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).
ndarray::Array< double, 1 > const getIyy() const
Definition: Source.h:612

◆ getModelInstFlux()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getModelInstFlux ( ) const
inline

Get the value of the ModelFlux slot measurement.

Definition at line 576 of file Source.h.

576  {
577  return this->operator[](this->getTable()->getModelFluxSlot().getMeasKey());
578  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getModelInstFluxErr()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getModelInstFluxErr ( ) const
inline

Get the uncertainty on the ModelFlux slot measurement.

Definition at line 580 of file Source.h.

580  {
581  return this->operator[](this->getTable()->getModelFluxSlot().getErrKey());
582  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getPsfInstFlux()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getPsfInstFlux ( ) const
inline

Get the value of the PsfFlux slot measurement.

Definition at line 558 of file Source.h.

558  {
559  return this->operator[](this->getTable()->getPsfFluxSlot().getMeasKey());
560  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getPsfInstFluxErr()

template<typename RecordT >
ndarray::Array<double, 1> lsst::afw::table::SourceColumnViewT< RecordT >::getPsfInstFluxErr ( ) const
inline

Get the uncertainty on the PsfFlux slot measurement.

Definition at line 562 of file Source.h.

562  {
563  return this->operator[](this->getTable()->getPsfFluxSlot().getErrKey());
564  }
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getSchema()

Schema lsst::afw::table::BaseColumnView::getSchema ( ) const
inlineinherited

Return the schema that defines the fields.

Definition at line 89 of file BaseColumnView.h.

89 { return getTable()->getSchema(); }
std::shared_ptr< BaseTable > getTable() const
Return the table that owns the records.

◆ getTable()

template<typename RecordT >
std::shared_ptr<Table> lsst::afw::table::ColumnViewT< RecordT >::getTable ( ) const
inlineinherited

Return the table that owns the records.

Definition at line 176 of file BaseColumnView.h.

176  {
178  }
std::shared_ptr< BaseTable > getTable() const
Return the table that owns the records.
T static_pointer_cast(T... args)

◆ getX()

template<typename RecordT >
ndarray::Array<double, 1> const lsst::afw::table::SourceColumnViewT< RecordT >::getX ( ) const
inline

Definition at line 602 of file Source.h.

602  {
603  return this->operator[](this->getTable()->getCentroidKey().getX());
604  }
ndarray::Array< double, 1 > const getX() const
Definition: Source.h:602
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ getY()

template<typename RecordT >
ndarray::Array<double, 1> const lsst::afw::table::SourceColumnViewT< RecordT >::getY ( ) const
inline

Definition at line 605 of file Source.h.

605  {
606  return this->operator[](this->getTable()->getCentroidKey().getY());
607  }
ndarray::Array< double, 1 > const getY() const
Definition: Source.h:605
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).

◆ isRangeContiguous()

template<typename InputIterator >
bool lsst::afw::table::BaseColumnView::isRangeContiguous ( std::shared_ptr< BaseTable > const &  table,
InputIterator  first,
InputIterator  last 
)
staticinherited

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.

219  {
220  if (first == last) return true;
221  Schema schema = table->getSchema();
222  std::size_t recordSize = schema.getRecordSize();
223  std::size_t recordCount = 1;
224  void* buf = first->_data;
225  ndarray::Manager::Ptr manager = first->_manager;
226  char* expected = reinterpret_cast<char*>(buf) + recordSize;
227  for (++first; first != last; ++first, ++recordCount, expected += recordSize) {
228  if (first->_data != expected || first->_manager != manager) {
229  return false;
230  }
231  }
232  return true;
233 }
table::Schema schema
Definition: Amplifier.cc:115

◆ make() [1/2]

template<typename InputIterator >
BaseColumnView lsst::afw::table::BaseColumnView::make ( std::shared_ptr< BaseTable > const &  table,
InputIterator  first,
InputIterator  last 
)
staticinherited

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.

198  {
199  if (first == last) {
200  return BaseColumnView(table, 0, 0, ndarray::Manager::Ptr());
201  }
202  Schema schema = table->getSchema();
203  std::size_t recordSize = schema.getRecordSize();
204  std::size_t recordCount = 1;
205  void* buf = first->_data;
206  ndarray::Manager::Ptr manager = first->_manager;
207  char* expected = reinterpret_cast<char*>(buf) + recordSize;
208  for (++first; first != last; ++first, ++recordCount, expected += recordSize) {
209  if (first->_data != expected || first->_manager != manager) {
211  "Record data is not contiguous in memory.");
212  }
213  }
214  return BaseColumnView(table, recordCount, buf, manager);
215 }
table::Schema schema
Definition: Amplifier.cc:115
BaseColumnView(BaseColumnView const &)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
Reports errors that are due to events beyond the control of the program.
Definition: Runtime.h:104

◆ make() [2/2]

template<typename RecordT >
template<typename InputIterator >
static SourceColumnViewT lsst::afw::table::SourceColumnViewT< RecordT >::make ( std::shared_ptr< Table > const &  table,
InputIterator  first,
InputIterator  last 
)
inlinestatic

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 621 of file Source.h.

622  {
623  return SourceColumnViewT(BaseColumnView::make(table, first, last));
624  }
SourceColumnViewT(SourceColumnViewT const &)=default
static BaseColumnView make(std::shared_ptr< BaseTable > const &table, InputIterator first, InputIterator last)
Construct a BaseColumnView from an iterator range.

◆ operator=() [1/2]

template<typename RecordT >
SourceColumnViewT& lsst::afw::table::SourceColumnViewT< RecordT >::operator= ( SourceColumnViewT< RecordT > const &  )
default

◆ operator=() [2/2]

template<typename RecordT >
SourceColumnViewT& lsst::afw::table::SourceColumnViewT< RecordT >::operator= ( SourceColumnViewT< RecordT > &&  )
default

◆ operator[]() [1/3]

template<typename T >
ndarray::ArrayRef< T, 1 > const lsst::afw::table::BaseColumnView::operator[] ( Key< T > const &  key) const
inherited

Return a 1-d array corresponding to a scalar field (or subfield).

Definition at line 71 of file BaseColumnView.cc.

71  {
72  if (!key.isValid()) {
73  throw LSST_EXCEPT(
74  pex::exceptions::LogicError,
75  "Key is not valid (if this is a SourceCatalog, make sure slot aliases have been set up).");
76  }
77  return ndarray::external(reinterpret_cast<T *>(reinterpret_cast<char *>(_impl->buf) + key.getOffset()),
78  ndarray::makeVector(_impl->recordCount),
79  ndarray::makeVector(int(_impl->table->getSchema().getRecordSize() / sizeof(T))),
80  _impl->manager);
81 }
Key< U > key
Definition: Schema.cc:281
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ operator[]() [2/3]

template<typename T >
ndarray::ArrayRef< T, 2, 1 > const lsst::afw::table::BaseColumnView::operator[] ( Key< Array< T > > const &  key) const
inherited

Return a 2-d array corresponding to an array field.

Definition at line 84 of file BaseColumnView.cc.

84  {
85  if (!key.isValid()) {
86  throw LSST_EXCEPT(
87  pex::exceptions::LogicError,
88  "Key is not valid (if this is a SourceCatalog, make sure slot aliases have been set up).");
89  }
90  if (key.isVariableLength()) {
91  throw LSST_EXCEPT(pex::exceptions::LogicError, "Cannot get columns for variable-length array fields");
92  }
93  return ndarray::external(
94  reinterpret_cast<T *>(reinterpret_cast<char *>(_impl->buf) + key.getOffset()),
95  ndarray::makeVector(_impl->recordCount, key.getSize()),
96  ndarray::makeVector(int(_impl->table->getSchema().getRecordSize() / sizeof(T)), 1),
97  _impl->manager);
98 }
Key< U > key
Definition: Schema.cc:281
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ operator[]() [3/3]

ndarray::result_of::vectorize< detail::FlagExtractor, ndarray::Array< Field< Flag >::Element const, 1 > >::type lsst::afw::table::BaseColumnView::operator[] ( Key< Flag > const &  key) const
inherited

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.

101  {
102  if (!key.isValid()) {
103  throw LSST_EXCEPT(
104  pex::exceptions::LogicError,
105  "Key is not valid (if this is a SourceCatalog, make sure slot aliases have been set up).");
106  }
107  return ndarray::vectorize(detail::FlagExtractor(key),
108  ndarray::Array<Field<Flag>::Element const, 1>(ndarray::external(
109  reinterpret_cast<Field<Flag>::Element *>(
110  reinterpret_cast<char *>(_impl->buf) + key.getOffset()),
111  ndarray::makeVector(_impl->recordCount),
112  ndarray::makeVector(int(_impl->table->getSchema().getRecordSize() /
113  sizeof(Field<Flag>::Element))),
114  _impl->manager)));
115 }
Key< U > key
Definition: Schema.cc:281
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
FieldBase< Flag >::Element Element
Type used to store field data in the table (a field may have multiple elements).
Definition: Field.h:26

The documentation for this class was generated from the following files: