LSST Applications g063fba187b+cac8b7c890,g0f08755f38+6aee506743,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+b4475c5878,g1dcb35cd9c+8f9bc1652e,g20f6ffc8e0+6aee506743,g217e2c1bcf+73dee94bd0,g28da252d5a+1f19c529b9,g2bbee38e9b+3f2625acfc,g2bc492864f+3f2625acfc,g3156d2b45e+6e55a43351,g32e5bea42b+1bb94961c2,g347aa1857d+3f2625acfc,g35bb328faa+a8ce1bb630,g3a166c0a6a+3f2625acfc,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+8a9e676b2a,g7af13505b9+809c143d88,g80478fca09+6ef8b1810f,g82479be7b0+f568feb641,g858d7b2824+6aee506743,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+2903d499ea,gb58c049af0+d64f4d3760,gc28159a63d+3f2625acfc,gcab2d0539d+b12535109e,gcf0d15dbbd+46a3f46ba9,gda6a2b7d83+46a3f46ba9,gdaeeff99f8+1711a396fd,ge79ae78c31+3f2625acfc,gef2f8181fd+0a71e47438,gf0baf85859+c1f95f4921,gfa517265be+6aee506743,gfa999e8aa5+17cd334064,w.2024.51
LSST Data Management Base Package
|
Table class that contains measurements made on a single exposure. More...
#include <Source.h>
Public Types | |
using | Record = SourceRecord |
using | ColumnView = SourceColumnViewT<SourceRecord> |
using | Catalog = SortedCatalogT<Record> |
using | ConstCatalog = SortedCatalogT<const Record> |
Public Member Functions | |
std::shared_ptr< SourceTable > | clone () const |
Return a polymorphic deep copy of the table. | |
std::shared_ptr< SourceRecord > | makeRecord () |
Default-construct an associated record. | |
std::shared_ptr< SourceRecord > | copyRecord (BaseRecord const &other) |
Deep-copy a record, requiring that it have the same schema as this table. | |
std::shared_ptr< SourceRecord > | copyRecord (BaseRecord const &other, SchemaMapper const &mapper) |
Deep-copy a record, requiring that it have the same schema as this table. | |
FluxSlotDefinition const & | getPsfFluxSlot () const |
void | definePsfFlux (std::string const &name) |
Set the measurement used for the PsfFlux slot. | |
FluxSlotDefinition const & | getModelFluxSlot () const |
void | defineModelFlux (std::string const &name) |
Set the measurement used for the ModelFlux slot. | |
FluxSlotDefinition const & | getApFluxSlot () const |
void | defineApFlux (std::string const &name) |
Set the measurement used for the ApFlux slot. | |
FluxSlotDefinition const & | getGaussianFluxSlot () const |
void | defineGaussianFlux (std::string const &name) |
Set the measurement used for the GaussianFlux slot. | |
FluxSlotDefinition const & | getCalibFluxSlot () const |
void | defineCalibFlux (std::string const &name) |
Set the measurement used for the CalibFlux slot. | |
CentroidSlotDefinition const & | getCentroidSlot () const |
void | defineCentroid (std::string const &name) |
Set the measurement used for the Centroid slot. | |
ShapeSlotDefinition const & | getShapeSlot () const |
void | defineShape (std::string const &name) |
Set the measurement used for the Shape slot. | |
SourceTable & | operator= (SourceTable const &)=delete |
SourceTable & | operator= (SourceTable &&)=delete |
std::shared_ptr< IdFactory > | getIdFactory () |
Return the object that generates IDs for the table (may be null). | |
std::shared_ptr< IdFactory const > | getIdFactory () const |
Return the object that generates IDs for the table (may be null). | |
void | setIdFactory (std::shared_ptr< IdFactory > f) |
Switch to a new IdFactory – object that generates IDs for the table (may be null). | |
std::shared_ptr< daf::base::PropertyList > | getMetadata () const |
Return the flexible metadata associated with the table. May be null. | |
void | setMetadata (std::shared_ptr< daf::base::PropertyList > const &metadata) |
Set the flexible metadata associated with the table. May be null. | |
std::shared_ptr< daf::base::PropertyList > | popMetadata () |
Return the metadata and set the internal metadata to a null pointer. | |
Schema | getSchema () const |
Return the table's schema. | |
void | preallocate (std::size_t nRecords) |
Allocate contiguous space for new records in advance. | |
std::size_t | getBufferSize () const |
Return the number of additional records space has been already been allocated for. | |
T | shared_from_this (T... args) |
Static Public Member Functions | |
static std::shared_ptr< SourceTable > | make (Schema const &schema, std::shared_ptr< IdFactory > const &idFactory) |
Construct a new table. | |
static std::shared_ptr< SourceTable > | make (Schema const &schema) |
Construct a new table. | |
static Schema | makeMinimalSchema () |
Return a minimal schema for Source tables and records. | |
static bool | checkSchema (Schema const &other) |
Return true if the given schema is a valid SourceTable schema. | |
static Key< RecordId > | getParentKey () |
Key for the parent ID. | |
static Key< RecordId > | getIdKey () |
Get keys for standard fields shared by all references. | |
static CoordKey | getCoordKey () |
Key for the celestial coordinates. | |
Static Public Attributes | |
static int | nRecordsPerBlock = 100 |
Number of records in each memory block. | |
Protected Member Functions | |
SourceTable (Schema const &schema, std::shared_ptr< IdFactory > const &idFactory) | |
SourceTable (SourceTable const &other) | |
void | handleAliasChange (std::string const &alias) override |
std::shared_ptr< BaseTable > | _clone () const override |
Clone implementation with noncovariant return types. | |
std::shared_ptr< BaseRecord > | _makeRecord () override |
Default-construct an associated record (protected implementation). | |
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. | |
Private Member Functions | |
std::shared_ptr< io::FitsWriter > | makeFitsWriter (fits::Fits *fitsfile, int flags) const override |
Friends | |
class | io::FitsWriter |
class | SourceRecord |
Table class that contains measurements made on a single exposure.
|
protected |
Definition at line 411 of file Source.cc.
|
protecteddefault |
|
overrideprotectedvirtual |
Clone implementation with noncovariant return types.
Reimplemented from lsst::afw::table::SimpleTable.
Definition at line 437 of file Source.cc.
|
overrideprotectedvirtual |
Default-construct an associated record (protected implementation).
Reimplemented from lsst::afw::table::SimpleTable.
Definition at line 443 of file Source.cc.
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 270 of file Source.h.
|
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 276 of file Source.h.
|
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.
|
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 284 of file Source.h.
|
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 289 of file Source.h.
|
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 328 of file Source.h.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
inline |
|
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 112 of file BaseTable.cc.
|
inline |
|
inline |
|
inline |
Definition at line 332 of file Source.h.
|
inlineinherited |
|
inlineinherited |
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.
|
inlineinherited |
Return the flexible metadata associated with the table. May be null.
Definition at line 79 of file BaseTable.h.
|
inline |
|
inline |
|
inlineinherited |
|
inline |
|
overrideprotectedvirtual |
Reimplemented from lsst::afw::table::BaseTable.
Definition at line 416 of file Source.cc.
|
inlinestatic |
Construct a new table.
[in] | schema | Schema that defines the fields, offsets, and record size for the table. |
This overload sets the ID factory to IdFactory::makeSimple().
Definition at line 244 of file Source.h.
|
static |
Construct a new table.
[in] | schema | Schema that defines the fields, offsets, and record size for the table. |
[in] | idFactory | Factory 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 400 of file Source.cc.
|
overrideprivatevirtual |
Reimplemented from lsst::afw::table::SimpleTable.
Definition at line 433 of file Source.cc.
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.
|
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 279 of file Source.h.
|
delete |
|
delete |
|
inlineinherited |
Return the metadata and set the internal metadata to a null pointer.
Definition at line 85 of file BaseTable.h.
|
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 110 of file BaseTable.cc.
|
inlineinherited |
|
inlineinherited |
Set the flexible metadata associated with the table. May be null.
Definition at line 82 of file BaseTable.h.
|
friend |
|
friend |
|
staticinherited |
Number of records in each memory block.
Definition at line 76 of file BaseTable.h.