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
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Friends | List of all members
lsst::afw::table::SourceTable Class Reference

Table class that contains measurements made on a single exposure. More...

#include <Source.h>

Inheritance diagram for lsst::afw::table::SourceTable:
lsst::afw::table::SimpleTable lsst::afw::table::BaseTable std::enable_shared_from_this< BaseTable >

Public Types

typedef SourceRecord Record
 
typedef SourceColumnViewT< SourceRecordColumnView
 
typedef SortedCatalogT< RecordCatalog
 
typedef SortedCatalogT< Record const > ConstCatalog
 

Public Member Functions

std::shared_ptr< SourceTableclone () const
 Return a polymorphic deep copy of the table. More...
 
std::shared_ptr< SourceRecordmakeRecord ()
 Default-construct an associated record. More...
 
std::shared_ptr< SourceRecordcopyRecord (BaseRecord const &other)
 Deep-copy a record, requiring that it have the same schema as this table. More...
 
std::shared_ptr< SourceRecordcopyRecord (BaseRecord const &other, SchemaMapper const &mapper)
 Deep-copy a record, requiring that it have the same schema as this table. More...
 
FluxSlotDefinition const & getPsfFluxSlot () const
 
void definePsfFlux (std::string const &name)
 Set the measurement used for the PsfFlux slot. More...
 
FluxSlotDefinition const & getModelFluxSlot () const
 
void defineModelFlux (std::string const &name)
 Set the measurement used for the ModelFlux slot. More...
 
FluxSlotDefinition const & getApFluxSlot () const
 
void defineApFlux (std::string const &name)
 Set the measurement used for the ApFlux slot. More...
 
FluxSlotDefinition const & getGaussianFluxSlot () const
 
void defineGaussianFlux (std::string const &name)
 Set the measurement used for the GaussianFlux slot. More...
 
FluxSlotDefinition const & getCalibFluxSlot () const
 
void defineCalibFlux (std::string const &name)
 Set the measurement used for the CalibFlux slot. More...
 
CentroidSlotDefinition const & getCentroidSlot () const
 
void defineCentroid (std::string const &name)
 Set the measurement used for the Centroid slot. More...
 
std::string getCentroidDefinition () const
 Return the name of the field used for the Centroid slot. More...
 
bool hasCentroidSlot () const
 Return true if the Centroid slot corresponds to a valid field. More...
 
CentroidSlotDefinition::MeasKey getCentroidKey () const
 Return the key used for the Centroid slot measurement value. More...
 
CentroidSlotDefinition::ErrKey getCentroidErrKey () const
 Return the key used for the Centroid slot uncertainty. More...
 
Key< Flag > getCentroidFlagKey () const
 Return the key used for the Centroid slot failure flag. More...
 
ShapeSlotDefinition const & getShapeSlot () const
 
void defineShape (std::string const &name)
 Set the measurement used for the Shape slot. More...
 
std::string getShapeDefinition () const
 Return the name of the field used for the Shape slot. More...
 
bool hasShapeSlot () const
 Return true if the Shape slot corresponds to a valid field. More...
 
ShapeSlotDefinition::MeasKey getShapeKey () const
 Return the key used for the Shape slot measurement value. More...
 
ShapeSlotDefinition::ErrKey getShapeErrKey () const
 Return the key used for the Shape slot uncertainty. More...
 
Key< Flag > getShapeFlagKey () const
 Return the key used for the Shape slot failure flag. More...
 
SourceTableoperator= (SourceTable const &)=delete
 
SourceTableoperator= (SourceTable &&)=delete
 
std::shared_ptr< IdFactorygetIdFactory ()
 Return the object that generates IDs for the table (may be null). More...
 
std::shared_ptr< IdFactory const > getIdFactory () const
 Return the object that generates IDs for the table (may be null). More...
 
void setIdFactory (std::shared_ptr< IdFactory > f)
 Switch to a new IdFactory – object that generates IDs for the table (may be null). More...
 
std::shared_ptr< daf::base::PropertyListgetMetadata () const
 Return the flexible metadata associated with the table. May be null. More...
 
void setMetadata (std::shared_ptr< daf::base::PropertyList > const &metadata)
 Set the flexible metadata associated with the table. May be null. More...
 
std::shared_ptr< daf::base::PropertyListpopMetadata ()
 Return the metadata and set the internal metadata to a null pointer. More...
 
Schema getSchema () const
 Return the table's schema. More...
 
void preallocate (std::size_t nRecords)
 Allocate contiguous space for new records in advance. More...
 
std::size_t getBufferSize () const
 Return the number of additional records space has been already been allocated for. More...
 
shared_from_this (T... args)
 

Static Public Member Functions

static std::shared_ptr< SourceTablemake (Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
 Construct a new table. More...
 
static std::shared_ptr< SourceTablemake (Schema const &schema)
 Construct a new table. More...
 
static Schema makeMinimalSchema ()
 Return a minimal schema for Source tables and records. More...
 
static bool checkSchema (Schema const &other)
 Return true if the given schema is a valid SourceTable schema. More...
 
static Key< RecordIdgetParentKey ()
 Key for the parent ID. More...
 
static Key< RecordIdgetIdKey ()
 Get keys for standard fields shared by all references. More...
 
static CoordKey getCoordKey ()
 Key for the celestial coordinates. More...
 

Static Public Attributes

static int nRecordsPerBlock = 100
 Number of records in each memory block. More...
 

Protected Member Functions

 SourceTable (Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
 
 SourceTable (SourceTable const &other)
 
 SourceTable (SourceTable &&other)
 
void handleAliasChange (std::string const &alias) override
 
std::shared_ptr< BaseTable_clone () const override
 Clone implementation with noncovariant return types. More...
 
std::shared_ptr< BaseRecord_makeRecord () override
 Default-construct an associated record (protected implementation). More...
 
template<typename RecordT , typename ... Args>
std::shared_ptr< RecordT > constructRecord (Args &&...args)
 Helper function that must be used by all _makeRecord overrides to actually construct records. More...
 

Friends

class io::FitsWriter
 
class SourceRecord
 

Detailed Description

Table class that contains measurements made on a single exposure.

Definition at line 219 of file Source.h.

Member Typedef Documentation

◆ Catalog

Definition at line 223 of file Source.h.

◆ ColumnView

Definition at line 222 of file Source.h.

◆ ConstCatalog

Definition at line 224 of file Source.h.

◆ Record

Definition at line 221 of file Source.h.

Constructor & Destructor Documentation

◆ SourceTable() [1/3]

lsst::afw::table::SourceTable::SourceTable ( Schema const &  schema,
std::shared_ptr< IdFactory > const &  idFactory 
)
protected

Definition at line 391 of file Source.cc.

392  : SimpleTable(schema, idFactory), _slots(schema) {}
SimpleTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition: Simple.cc:84
table::Schema schema
Definition: Amplifier.cc:115

◆ SourceTable() [2/3]

lsst::afw::table::SourceTable::SourceTable ( SourceTable const &  other)
protected

Definition at line 394 of file Source.cc.

394 : SimpleTable(other), _slots(other._slots) {}
SimpleTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition: Simple.cc:84
ItemVariant const * other
Definition: Schema.cc:56

◆ SourceTable() [3/3]

lsst::afw::table::SourceTable::SourceTable ( SourceTable &&  other)
protected

Definition at line 396 of file Source.cc.

396 : SourceTable(other) {}
ItemVariant const * other
Definition: Schema.cc:56
SourceTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition: Source.cc:391

Member Function Documentation

◆ _clone()

std::shared_ptr< BaseTable > lsst::afw::table::SourceTable::_clone ( ) const
overrideprotectedvirtual

Clone implementation with noncovariant return types.

Reimplemented from lsst::afw::table::SimpleTable.

Definition at line 419 of file Source.cc.

419  {
420  return std::shared_ptr<SourceTable>(new SourceTable(*this));
421 }
SourceTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition: Source.cc:391

◆ _makeRecord()

std::shared_ptr< BaseRecord > lsst::afw::table::SourceTable::_makeRecord ( )
overrideprotectedvirtual

Default-construct an associated record (protected implementation).

Reimplemented from lsst::afw::table::SimpleTable.

Definition at line 423 of file Source.cc.

423  {
424  auto record = constructRecord<SourceRecord>();
425  if (getIdFactory()) record->setId((*getIdFactory())());
426  return record;
427 }
std::shared_ptr< IdFactory > getIdFactory()
Return the object that generates IDs for the table (may be null).
Definition: Simple.h:155

◆ checkSchema()

static bool lsst::afw::table::SourceTable::checkSchema ( Schema const &  other)
inlinestatic

Return true if the given schema is a valid SourceTable schema.

This will always be true if the given schema was originally constructed using makeMinimalSchema(), and will rarely be true otherwise.

Definition at line 272 of file Source.h.

272 { return other.contains(getMinimalSchema().schema); }
ItemVariant const * other
Definition: Schema.cc:56
table::Schema schema
Definition: Amplifier.cc:115

◆ clone()

std::shared_ptr<SourceTable> lsst::afw::table::SourceTable::clone ( ) const
inline

Return a polymorphic deep copy of the table.

Derived classes should reimplement by static-casting the output of _clone to a pointer-to-derived to simulate covariant return types.

Cloning a table does not clone its associated records; the new table produced by clone() does not have any associated records.

Definition at line 278 of file Source.h.

T static_pointer_cast(T... args)
std::shared_ptr< BaseTable > _clone() const override
Clone implementation with noncovariant return types.
Definition: Source.cc:419
SourceTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition: Source.cc:391

◆ constructRecord()

template<typename RecordT , typename ... Args>
std::shared_ptr< RecordT > lsst::afw::table::BaseTable::constructRecord ( Args &&...  args)
protectedinherited

Helper function that must be used by all _makeRecord overrides to actually construct records.

Use of this function is enforced by the fact that Record::ConstructionToken can only be created by BaseTable, and is only ever constructed inside this method.

This function expects Record subclasses to have a constructor signature of the form

Record(ConstructionToken const &, detail::RecordData &&, Args && ...);

Definition at line 227 of file BaseRecord.h.

227  {
228  return std::make_shared<RecordT>(BaseRecord::ConstructionToken(0), _makeNewRecordData(),
229  std::forward<Args>(args)...);
230 }

◆ copyRecord() [1/2]

std::shared_ptr<SourceRecord> lsst::afw::table::SourceTable::copyRecord ( BaseRecord const &  other)
inline

Deep-copy a record, requiring that it have the same schema as this table.

Regardless of the type or associated table of the input record, the type of the output record will be the type associated with this table and the record instance will be associated with this table.

Allowing derived-class records to be constructed from base-class records could be considered a form of type-slicing, but because we already demand that all records be constructable from nothing but a table, this isn't anything new.

Derived classes should reimplement by static-casting the output of BaseTable::copyRecord to the appropriate BaseRecord subclass.

This is implemented using makeRecord and calling record.assign on the results; override those to change the behavior.

Definition at line 286 of file Source.h.

286  {
288  }
ItemVariant const * other
Definition: Schema.cc:56
std::shared_ptr< BaseRecord > copyRecord(BaseRecord const &input)
Deep-copy a record, requiring that it have the same schema as this table.
Definition: BaseTable.cc:125
friend class SourceRecord
Definition: Source.h:540
T static_pointer_cast(T... args)

◆ copyRecord() [2/2]

std::shared_ptr<SourceRecord> lsst::afw::table::SourceTable::copyRecord ( BaseRecord const &  other,
SchemaMapper const &  mapper 
)
inline

Deep-copy a record, requiring that it have the same schema as this table.

Regardless of the type or associated table of the input record, the type of the output record will be the type associated with this table and the record instance will be associated with this table.

Allowing derived-class records to be constructed from base-class records could be considered a form of type-slicing, but because we already demand that all records be constructable from nothing but a table, this isn't anything new.

Derived classes should reimplement by static-casting the output of BaseTable::copyRecord to the appropriate BaseRecord subclass.

This is implemented using makeRecord and calling record.assign on the results; override those to change the behavior.

Definition at line 291 of file Source.h.

291  {
293  }
ItemVariant const * other
Definition: Schema.cc:56
SchemaMapper * mapper
Definition: SchemaMapper.cc:78
std::shared_ptr< BaseRecord > copyRecord(BaseRecord const &input)
Deep-copy a record, requiring that it have the same schema as this table.
Definition: BaseTable.cc:125
friend class SourceRecord
Definition: Source.h:540
T static_pointer_cast(T... args)

◆ defineApFlux()

void lsst::afw::table::SourceTable::defineApFlux ( std::string const &  name)
inline

Set the measurement used for the ApFlux slot.

The definitions for slots are actually managed by the Schema object, and its associated AliasMap, so this simply sets the "slot_ApFlux" alias to point to the given field name prefix. See FluxSlotDefinition for more information.

Definition at line 330 of file Source.h.

330  {
331  getSchema().getAliasMap()->set(getApFluxSlot().getAlias(), name);
332  }
FluxSlotDefinition const & getApFluxSlot() const
Definition: Source.h:321
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269

◆ defineCalibFlux()

void lsst::afw::table::SourceTable::defineCalibFlux ( std::string const &  name)
inline

Set the measurement used for the CalibFlux slot.

The definitions for slots are actually managed by the Schema object, and its associated AliasMap, so this simply sets the "slot_CalibFlux" alias to point to the given field name prefix. See FluxSlotDefinition for more information.

Definition at line 356 of file Source.h.

356  {
357  getSchema().getAliasMap()->set(getCalibFluxSlot().getAlias(), name);
358  }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
FluxSlotDefinition const & getCalibFluxSlot() const
Definition: Source.h:347
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269

◆ defineCentroid()

void lsst::afw::table::SourceTable::defineCentroid ( std::string const &  name)
inline

Set the measurement used for the Centroid slot.

The definitions for slots are actually managed by the Schema object, and its associated AliasMap, so this simply sets the "slot_Centroid" alias to point to the given field name prefix. See CentroidSlotDefinition for more information.

Definition at line 369 of file Source.h.

369  {
370  getSchema().getAliasMap()->set(getCentroidSlot().getAlias(), name);
371  }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:360

◆ defineGaussianFlux()

void lsst::afw::table::SourceTable::defineGaussianFlux ( std::string const &  name)
inline

Set the measurement used for the GaussianFlux slot.

The definitions for slots are actually managed by the Schema object, and its associated AliasMap, so this simply sets the "slot_GaussianFlux" alias to point to the given field name prefix. See FluxSlotDefinition for more information.

Definition at line 343 of file Source.h.

343  {
344  getSchema().getAliasMap()->set(getGaussianFluxSlot().getAlias(), name);
345  }
FluxSlotDefinition const & getGaussianFluxSlot() const
Definition: Source.h:334
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269

◆ defineModelFlux()

void lsst::afw::table::SourceTable::defineModelFlux ( std::string const &  name)
inline

Set the measurement used for the ModelFlux slot.

The definitions for slots are actually managed by the Schema object, and its associated AliasMap, so this simply sets the "slot_ModelFlux" alias to point to the given field name prefix. See FluxSlotDefinition for more information.

Definition at line 317 of file Source.h.

317  {
318  getSchema().getAliasMap()->set(getModelFluxSlot().getAlias(), name);
319  }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269
FluxSlotDefinition const & getModelFluxSlot() const
Definition: Source.h:308

◆ definePsfFlux()

void lsst::afw::table::SourceTable::definePsfFlux ( std::string const &  name)
inline

Set the measurement used for the PsfFlux slot.

The definitions for slots are actually managed by the Schema object, and its associated AliasMap, so this simply sets the "slot_PsfFlux" alias to point to the given field name prefix. See FluxSlotDefinition for more information.

Definition at line 304 of file Source.h.

304  {
305  getSchema().getAliasMap()->set(getPsfFluxSlot().getAlias(), name);
306  }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269
FluxSlotDefinition const & getPsfFluxSlot() const
Definition: Source.h:295

◆ defineShape()

void lsst::afw::table::SourceTable::defineShape ( std::string const &  name)
inline

Set the measurement used for the Shape slot.

The definitions for slots are actually managed by the Schema object, and its associated AliasMap, so this simply sets the "slot_Shape" alias to point to the given field name prefix. See ShapeSlotDefinition for more information.

Definition at line 447 of file Source.h.

447  {
448  getSchema().getAliasMap()->set(getShapeSlot().getAlias(), name);
449  }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:438
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269

◆ getApFluxSlot()

FluxSlotDefinition const& lsst::afw::table::SourceTable::getApFluxSlot ( ) const
inline

Definition at line 321 of file Source.h.

321 { return _slots.defApFlux; }
FluxSlotDefinition defApFlux
Definition: slots.h:221

◆ getBufferSize()

std::size_t lsst::afw::table::BaseTable::getBufferSize ( ) const
inherited

Return the number of additional records space has been already been allocated for.

Unlike std::vector::capacity, this does not factor in existing records in any way.

Definition at line 113 of file BaseTable.cc.

113  {
114  if (_manager) {
115  return Block::getBufferSize(_schema.getRecordSize(), _manager);
116  } else {
117  return 0;
118  }
119 }
int getRecordSize() const
Return the raw size of a record in bytes.
Definition: Schema.h:148

◆ getCalibFluxSlot()

FluxSlotDefinition const& lsst::afw::table::SourceTable::getCalibFluxSlot ( ) const
inline

Definition at line 347 of file Source.h.

347 { return _slots.defCalibFlux; }
FluxSlotDefinition defCalibFlux
Definition: slots.h:224

◆ getCentroidDefinition()

std::string lsst::afw::table::SourceTable::getCentroidDefinition ( ) const
inline

Return the name of the field used for the Centroid slot.

Exceptions
pex::exceptions::NotFoundErrorif the slot is not defined.
Deprecated:
in favor of
getSchema().getAliasMap()->get("slot_Centroid")

Definition at line 386 of file Source.h.

386  {
387  return getSchema().getAliasMap()->get(getCentroidSlot().getAlias());
388  }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:360

◆ getCentroidErrKey()

CentroidSlotDefinition::ErrKey lsst::afw::table::SourceTable::getCentroidErrKey ( ) const
inline

Return the key used for the Centroid slot uncertainty.

Deprecated:
in favor of getCentroidSlot().getErrKey().

Definition at line 423 of file Source.h.

423  {
424  return getCentroidSlot().getErrKey();
425  }
ErrKey getErrKey() const
Return the cached Key used to access the slot uncertainty.
Definition: slots.h:137
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:360

◆ getCentroidFlagKey()

Key<Flag> lsst::afw::table::SourceTable::getCentroidFlagKey ( ) const
inline

Return the key used for the Centroid slot failure flag.

Deprecated:
in favor of getCentroidSlot().getFlagKey().

Definition at line 434 of file Source.h.

434  {
435  return getCentroidSlot().getFlagKey();
436  }
Key< Flag > getFlagKey() const
Return the cached Key used to access the slot failure flag.
Definition: slots.h:140
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:360

◆ getCentroidKey()

CentroidSlotDefinition::MeasKey lsst::afw::table::SourceTable::getCentroidKey ( ) const
inline

Return the key used for the Centroid slot measurement value.

Deprecated:
in favor of getCentroidSlot().getMeasKey().

Definition at line 410 of file Source.h.

410  {
411  return getCentroidSlot().getMeasKey();
412  }
MeasKey getMeasKey() const
Return the cached Key used to access the slot measurement.
Definition: slots.h:134
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:360

◆ getCentroidSlot()

CentroidSlotDefinition const& lsst::afw::table::SourceTable::getCentroidSlot ( ) const
inline

Definition at line 360 of file Source.h.

360 { return _slots.defCentroid; }
CentroidSlotDefinition defCentroid
Definition: slots.h:225

◆ getCoordKey()

static CoordKey lsst::afw::table::SimpleTable::getCoordKey ( )
inlinestaticinherited

Key for the celestial coordinates.

Definition at line 172 of file Simple.h.

172 { return getMinimalSchema().coord; }

◆ getGaussianFluxSlot()

FluxSlotDefinition const& lsst::afw::table::SourceTable::getGaussianFluxSlot ( ) const
inline

Definition at line 334 of file Source.h.

334 { return _slots.defGaussianFlux; }
FluxSlotDefinition defGaussianFlux
Definition: slots.h:222

◆ getIdFactory() [1/2]

std::shared_ptr<IdFactory> lsst::afw::table::SimpleTable::getIdFactory ( )
inlineinherited

Return the object that generates IDs for the table (may be null).

Definition at line 155 of file Simple.h.

155 { return _idFactory; }

◆ getIdFactory() [2/2]

std::shared_ptr<IdFactory const> lsst::afw::table::SimpleTable::getIdFactory ( ) const
inlineinherited

Return the object that generates IDs for the table (may be null).

Definition at line 158 of file Simple.h.

158 { return _idFactory; }

◆ getIdKey()

static Key<RecordId> lsst::afw::table::SimpleTable::getIdKey ( )
inlinestaticinherited

Get keys for standard fields shared by all references.

These keys are used to implement getters and setters on SimpleRecord.Key for the unique ID.

Definition at line 170 of file Simple.h.

170 { return getMinimalSchema().id; }

◆ getMetadata()

std::shared_ptr<daf::base::PropertyList> lsst::afw::table::BaseTable::getMetadata ( ) const
inlineinherited

Return the flexible metadata associated with the table. May be null.

Definition at line 79 of file BaseTable.h.

79 { return _metadata; }

◆ getModelFluxSlot()

FluxSlotDefinition const& lsst::afw::table::SourceTable::getModelFluxSlot ( ) const
inline

Definition at line 308 of file Source.h.

308 { return _slots.defModelFlux; }
FluxSlotDefinition defModelFlux
Definition: slots.h:223

◆ getParentKey()

static Key<RecordId> lsst::afw::table::SourceTable::getParentKey ( )
inlinestatic

Key for the parent ID.

Definition at line 275 of file Source.h.

275 { return getMinimalSchema().parent; }

◆ getPsfFluxSlot()

FluxSlotDefinition const& lsst::afw::table::SourceTable::getPsfFluxSlot ( ) const
inline

Definition at line 295 of file Source.h.

295 { return _slots.defPsfFlux; }
FluxSlotDefinition defPsfFlux
Definition: slots.h:220

◆ getSchema()

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

Return the table's schema.

Definition at line 137 of file BaseTable.h.

137 { return _schema; }

◆ getShapeDefinition()

std::string lsst::afw::table::SourceTable::getShapeDefinition ( ) const
inline

Return the name of the field used for the Shape slot.

Exceptions
pex::exceptions::NotFoundErrorif the slot is not defined.
Deprecated:
in favor of
getSchema().getAliasMap()->get("slot_Shape")

Definition at line 464 of file Source.h.

464  {
465  return getSchema().getAliasMap()->get(getShapeSlot().getAlias());
466  }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:438
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition: Schema.h:269

◆ getShapeErrKey()

ShapeSlotDefinition::ErrKey lsst::afw::table::SourceTable::getShapeErrKey ( ) const
inline

Return the key used for the Shape slot uncertainty.

Deprecated:
in favor of getShapeSlot().getErrKey().

Definition at line 497 of file Source.h.

497  {
498  return getShapeSlot().getErrKey();
499  }
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:438
ErrKey getErrKey() const
Return the cached Key used to access the slot uncertainty.
Definition: slots.h:184

◆ getShapeFlagKey()

Key<Flag> lsst::afw::table::SourceTable::getShapeFlagKey ( ) const
inline

Return the key used for the Shape slot failure flag.

Deprecated:
in favor of getShapeSlot().getFlagKey().

Definition at line 508 of file Source.h.

508  {
509  return getShapeSlot().getFlagKey();
510  }
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:438
Key< Flag > getFlagKey() const
Return the cached Key used to access the slot failure flag.
Definition: slots.h:187

◆ getShapeKey()

ShapeSlotDefinition::MeasKey lsst::afw::table::SourceTable::getShapeKey ( ) const
inline

Return the key used for the Shape slot measurement value.

Deprecated:
in favor of getShapeSlot().getMeasKey().

Definition at line 486 of file Source.h.

486  {
487  return getShapeSlot().getMeasKey();
488  }
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:438
MeasKey getMeasKey() const
Return the cached Key used to access the slot measurement.
Definition: slots.h:181

◆ getShapeSlot()

ShapeSlotDefinition const& lsst::afw::table::SourceTable::getShapeSlot ( ) const
inline

Definition at line 438 of file Source.h.

438 { return _slots.defShape; }
ShapeSlotDefinition defShape
Definition: slots.h:226

◆ handleAliasChange()

void lsst::afw::table::SourceTable::handleAliasChange ( std::string const &  alias)
overrideprotectedvirtual

Reimplemented from lsst::afw::table::BaseTable.

Definition at line 398 of file Source.cc.

398  {
399  if (alias.compare(0, 4, "slot") != 0) {
400  return;
401  }
402  _slots.handleAliasChange(alias, getSchema());
403 }
Schema getSchema() const
Return the table&#39;s schema.
Definition: BaseTable.h:137
void handleAliasChange(std::string const &alias, Schema const &schema)
Handle a callback from an AliasMap informing the table that an alias has changed. ...
Definition: slots.cc:116

◆ hasCentroidSlot()

bool lsst::afw::table::SourceTable::hasCentroidSlot ( ) const
inline

Return true if the Centroid slot corresponds to a valid field.

Deprecated:
in favor of getCentroidSlot().isValid().

Definition at line 397 of file Source.h.

397  {
398  return getCentroidSlot().isValid();
399  }
bool isValid() const
Return true if the key associated with the measurement is valid.
Definition: slots.h:131
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:360

◆ hasShapeSlot()

bool lsst::afw::table::SourceTable::hasShapeSlot ( ) const
inline

Return true if the Shape slot corresponds to a valid field.

Deprecated:
in favor of getShapeSlot().isValid().

Definition at line 475 of file Source.h.

475  {
476  return getShapeSlot().isValid();
477  }
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:438
bool isValid() const
Return true if the key associated with the measurement is valid.
Definition: slots.h:178

◆ make() [1/2]

std::shared_ptr< SourceTable > lsst::afw::table::SourceTable::make ( Schema const &  schema,
std::shared_ptr< IdFactory > const &  idFactory 
)
static

Construct a new table.

Parameters
[in]schemaSchema that defines the fields, offsets, and record size for the table.
[in]idFactoryFactory class to generate record IDs when they are not explicitly given. If null, record IDs will default to zero.

Note that not passing an IdFactory at all will call the other override of make(), which will set the ID factory to IdFactory::makeSimple().

Definition at line 382 of file Source.cc.

383  {
384  if (!checkSchema(schema)) {
386  "Schema for Source must contain at least the keys defined by getMinimalSchema().");
387  }
388  return std::shared_ptr<SourceTable>(new SourceTable(schema, idFactory));
389 }
table::Schema schema
Definition: Amplifier.cc:115
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
Reports invalid arguments.
Definition: Runtime.h:66
SourceTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition: Source.cc:391
static bool checkSchema(Schema const &other)
Return true if the given schema is a valid SourceTable schema.
Definition: Source.h:272

◆ make() [2/2]

static std::shared_ptr<SourceTable> lsst::afw::table::SourceTable::make ( Schema const &  schema)
inlinestatic

Construct a new table.

Parameters
[in]schemaSchema that defines the fields, offsets, and record size for the table.

This overload sets the ID factory to IdFactory::makeSimple().

Definition at line 246 of file Source.h.

246  {
247  return make(schema, IdFactory::makeSimple());
248  }
table::Schema schema
Definition: Amplifier.cc:115
static std::shared_ptr< SourceTable > make(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Construct a new table.
Definition: Source.cc:382
static std::shared_ptr< IdFactory > makeSimple()
Return a simple IdFactory that simply counts from 1.
Definition: IdFactory.cc:70

◆ makeMinimalSchema()

static Schema lsst::afw::table::SourceTable::makeMinimalSchema ( )
inlinestatic

Return a minimal schema for Source tables and records.

The returned schema can and generally should be modified further, but many operations on sources will assume that at least the fields provided by this routine are present.

Keys for the standard fields added by this routine can be obtained from other static member functions of the SourceTable class.

Definition at line 260 of file Source.h.

260  {
261  Schema r = getMinimalSchema().schema;
262  r.disconnectAliases();
263  return r;
264  }

◆ makeRecord()

std::shared_ptr<SourceRecord> lsst::afw::table::SourceTable::makeRecord ( )
inline

Default-construct an associated record.

Derived classes should reimplement by static-casting the output of _makeRecord to the appropriate BaseRecord subclass to simulate covariant return types.

Definition at line 281 of file Source.h.

281  {
283  }
friend class SourceRecord
Definition: Source.h:540
std::shared_ptr< BaseRecord > _makeRecord() override
Default-construct an associated record (protected implementation).
Definition: Source.cc:423
T static_pointer_cast(T... args)

◆ operator=() [1/2]

SourceTable& lsst::afw::table::SourceTable::operator= ( SourceTable const &  )
delete

◆ operator=() [2/2]

SourceTable& lsst::afw::table::SourceTable::operator= ( SourceTable &&  )
delete

◆ popMetadata()

std::shared_ptr<daf::base::PropertyList> lsst::afw::table::BaseTable::popMetadata ( )
inlineinherited

Return the metadata and set the internal metadata to a null pointer.

Definition at line 85 of file BaseTable.h.

85  {
87  _metadata.swap(tmp);
88  return tmp;
89  }

◆ preallocate()

void lsst::afw::table::BaseTable::preallocate ( std::size_t  nRecords)
inherited

Allocate contiguous space for new records in advance.

If a contiguous memory block for at least n additional records has already been allocated, this is a no-op. If not, a new block will be allocated, and any remaining space on the old block will go to waste; this ensures the new records will be allocated contiguously. Note that "wasted" memory is not leaked; it will be deallocated along with any records created from that block when those records go out of scope.

Note that unlike std::vector::reserve, this does not factor in existing records in any way; nRecords refers to a number of new records to reserve space for.

Definition at line 111 of file BaseTable.cc.

111 { Block::preallocate(_schema.getRecordSize(), n, _manager); }
int getRecordSize() const
Return the raw size of a record in bytes.
Definition: Schema.h:148

◆ setIdFactory()

void lsst::afw::table::SimpleTable::setIdFactory ( std::shared_ptr< IdFactory f)
inlineinherited

Switch to a new IdFactory – object that generates IDs for the table (may be null).

Definition at line 161 of file Simple.h.

161 { _idFactory = f; }

◆ setMetadata()

void lsst::afw::table::BaseTable::setMetadata ( std::shared_ptr< daf::base::PropertyList > const &  metadata)
inlineinherited

Set the flexible metadata associated with the table. May be null.

Definition at line 82 of file BaseTable.h.

82 { _metadata = metadata; }

Friends And Related Function Documentation

◆ io::FitsWriter

friend class io::FitsWriter
friend

Definition at line 539 of file Source.h.

◆ SourceRecord

friend class SourceRecord
friend

Definition at line 540 of file Source.h.

Member Data Documentation

◆ nRecordsPerBlock

int lsst::afw::table::BaseTable::nRecordsPerBlock = 100
staticinherited

Number of records in each memory block.

Definition at line 76 of file BaseTable.h.


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