LSST Applications g00274db5b6+edbf708997,g00d0e8bbd7+edbf708997,g199a45376c+5137f08352,g1fd858c14a+1d4b6db739,g262e1987ae+f4d9505c4f,g29ae962dfc+7156fb1a53,g2cef7863aa+73c82f25e4,g35bb328faa+edbf708997,g3e17d7035e+5b3adc59f5,g3fd5ace14f+852fa6fbcb,g47891489e3+6dc8069a4c,g53246c7159+edbf708997,g64539dfbff+9f17e571f4,g67b6fd64d1+6dc8069a4c,g74acd417e5+ae494d68d9,g786e29fd12+af89c03590,g7ae74a0b1c+a25e60b391,g7aefaa3e3d+536efcc10a,g7cc15d900a+d121454f8d,g87389fa792+a4172ec7da,g89139ef638+6dc8069a4c,g8d7436a09f+28c28d8d6d,g8ea07a8fe4+db21c37724,g92c671f44c+9f17e571f4,g98df359435+b2e6376b13,g99af87f6a8+b0f4ad7b8d,gac66b60396+966efe6077,gb88ae4c679+7dec8f19df,gbaa8f7a6c5+38b34f4976,gbf99507273+edbf708997,gc24b5d6ed1+9f17e571f4,gca7fc764a6+6dc8069a4c,gcc769fe2a4+97d0256649,gd7ef33dd92+6dc8069a4c,gdab6d2f7ff+ae494d68d9,gdbb4c4dda9+9f17e571f4,ge410e46f29+6dc8069a4c,geaed405ab2+e194be0d2b,w.2025.47
LSST Data Management Base Package
Loading...
Searching...
No Matches
Source.h
Go to the documentation of this file.
1// -*- lsst-c++ -*-
2/*
3 * LSST Data Management System
4 * Copyright 2008-2014, 2011 LSST Corporation.
5 *
6 * This product includes software developed by the
7 * LSST Project (http://www.lsst.org/).
8 *
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation, either version 3 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the LSST License Statement and
20 * the GNU General Public License along with this program. If not,
21 * see <http://www.lsstcorp.org/LegalNotices/>.
22 */
23
24#ifndef AFW_TABLE_Source_h_INCLUDED
25#define AFW_TABLE_Source_h_INCLUDED
26
36
37namespace lsst {
38namespace afw {
39
40namespace geom {
41class SkyWcs;
42} // namespace geom
43
44namespace table {
45
56
58
59class SourceRecord;
60class SourceTable;
61
62template <typename RecordT>
64
78class SourceRecord : public SimpleRecord {
79public:
84
95 SimpleRecord(token, std::move(data))
96 {}
97
98 std::shared_ptr<Footprint> getFootprint() const { return _footprint; }
99
100 void setFootprint(std::shared_ptr<Footprint> const &footprint) { _footprint = footprint; }
101
105
107
108 RecordId getParent() const;
109 void setParent(RecordId id);
111
114
117
119 bool getPsfFluxFlag() const;
120
123
126
128 bool getModelFluxFlag() const;
129
132
135
137 bool getApFluxFlag() const;
138
141
144
146 bool getGaussianFluxFlag() const;
147
150
153
155 bool getCalibFluxFlag() const;
156
159
162
164 bool getCentroidFlag() const;
165
168
171
173 bool getShapeFlag() const;
174
176 double getX() const;
177
179 double getY() const;
180
182 double getIxx() const;
183
185 double getIyy() const;
186
188 double getIxy() const;
189
191 void updateCoord(geom::SkyWcs const &wcs, bool include_covariance = true);
192
194 void updateCoord(geom::SkyWcs const &wcs, PointKey<double> const &key, bool include_covariance = true);
195
196 SourceRecord(const SourceRecord &) = delete;
201
202protected:
203
204 virtual void _assign(BaseRecord const &other);
205
206private:
207 friend class SourceTable;
208
210};
211
217class SourceTable : public SimpleTable {
218public:
223
234 static std::shared_ptr<SourceTable> make(Schema const &schema,
235 std::shared_ptr<IdFactory> const &idFactory);
236
245 return make(schema, IdFactory::makeSimple());
246 }
247
259 Schema r = getMinimalSchema().schema;
260 r.disconnectAliases();
261 return r;
262 }
263
270 static bool checkSchema(Schema const &other) { return other.contains(getMinimalSchema().schema); }
271
273 static Key<RecordId> getParentKey() { return getMinimalSchema().parent; }
274
277
282
287
292
293 FluxSlotDefinition const &getPsfFluxSlot() const { return _slots.defPsfFlux; }
294
302 void definePsfFlux(std::string const &name) {
303 getSchema().getAliasMap()->set(getPsfFluxSlot().getAlias(), name);
304 }
305
306 FluxSlotDefinition const &getModelFluxSlot() const { return _slots.defModelFlux; }
307
315 void defineModelFlux(std::string const &name) {
316 getSchema().getAliasMap()->set(getModelFluxSlot().getAlias(), name);
317 }
318
319 FluxSlotDefinition const &getApFluxSlot() const { return _slots.defApFlux; }
320
328 void defineApFlux(std::string const &name) {
329 getSchema().getAliasMap()->set(getApFluxSlot().getAlias(), name);
330 }
331
332 FluxSlotDefinition const &getGaussianFluxSlot() const { return _slots.defGaussianFlux; }
333
341 void defineGaussianFlux(std::string const &name) {
342 getSchema().getAliasMap()->set(getGaussianFluxSlot().getAlias(), name);
343 }
344
345 FluxSlotDefinition const &getCalibFluxSlot() const { return _slots.defCalibFlux; }
346
354 void defineCalibFlux(std::string const &name) {
355 getSchema().getAliasMap()->set(getCalibFluxSlot().getAlias(), name);
356 }
357
358 CentroidSlotDefinition const &getCentroidSlot() const { return _slots.defCentroid; }
359
367 void defineCentroid(std::string const &name) {
368 getSchema().getAliasMap()->set(getCentroidSlot().getAlias(), name);
369 }
370
371 ShapeSlotDefinition const &getShapeSlot() const { return _slots.defShape; }
372
380 void defineShape(std::string const &name) {
381 getSchema().getAliasMap()->set(getShapeSlot().getAlias(), name);
382 }
383
386
387protected:
388 SourceTable(Schema const &schema, std::shared_ptr<IdFactory> const &idFactory);
389
391
392 void handleAliasChange(std::string const &alias) override;
393
394 std::shared_ptr<BaseTable> _clone() const override;
395
397
398private:
399 // Struct that holds the minimal schema and the special keys we've added to it.
400 struct MinimalSchema {
401 Schema schema;
402 Key<RecordId> parent;
403
404 MinimalSchema();
405 };
406
407 // Return the singleton minimal schema.
408 static MinimalSchema &getMinimalSchema();
409
410 friend class io::FitsWriter;
411 friend class SourceRecord;
412
413 // Return a writer object that knows how to save in FITS format. See also FitsWriter.
414 std::shared_ptr<io::FitsWriter> makeFitsWriter(fits::Fits *fitsfile, int flags) const override;
415
416 SlotSuite _slots;
417};
418
419template <typename RecordT>
420class SourceColumnViewT : public ColumnViewT<RecordT> {
421public:
422 using Record = RecordT;
423 using Table = typename RecordT::Table;
424
425 // See the documentation for BaseColumnView for an explanation of why these
426 // accessors *appear* to violate const-correctness.
427
429 ndarray::Array<double, 1> getPsfInstFlux() const {
430 return this->operator[](this->getTable()->getPsfFluxSlot().getMeasKey());
431 }
432
433 ndarray::Array<double, 1> getPsfInstFluxErr() const {
434 return this->operator[](this->getTable()->getPsfFluxSlot().getErrKey());
435 }
436
438 ndarray::Array<double, 1> getApInstFlux() const {
439 return this->operator[](this->getTable()->getApFluxSlot().getMeasKey());
440 }
441
442 ndarray::Array<double, 1> getApInstFluxErr() const {
443 return this->operator[](this->getTable()->getApFluxSlot().getErrKey());
444 }
445
447 ndarray::Array<double, 1> getModelInstFlux() const {
448 return this->operator[](this->getTable()->getModelFluxSlot().getMeasKey());
449 }
450
451 ndarray::Array<double, 1> getModelInstFluxErr() const {
452 return this->operator[](this->getTable()->getModelFluxSlot().getErrKey());
453 }
454
456 ndarray::Array<double, 1> getGaussianInstFlux() const {
457 return this->operator[](this->getTable()->getGaussianFluxSlot().getMeasKey());
458 }
459
460 ndarray::Array<double, 1> getGaussianInstFluxErr() const {
461 return this->operator[](this->getTable()->getGaussianFluxSlot().getErrKey());
462 }
463
465 ndarray::Array<double, 1> getCalibInstFlux() const {
466 return this->operator[](this->getTable()->getCalibFluxSlot().getMeasKey());
467 }
468
469 ndarray::Array<double, 1> getCalibInstFluxErr() const {
470 return this->operator[](this->getTable()->getCalibFluxSlot().getErrKey());
471 }
472
473 ndarray::Array<double, 1> const getX() const {
474 return this->operator[](this->getTable()->getCentroidSlot().getMeasKey().getX());
475 }
476 ndarray::Array<double, 1> const getY() const {
477 return this->operator[](this->getTable()->getCentroidSlot().getMeasKey().getY());
478 }
479
480 ndarray::Array<double, 1> const getIxx() const {
481 return this->operator[](this->getTable()->getShapeSlot().getMeasKey().getIxx());
482 }
483 ndarray::Array<double, 1> const getIyy() const {
484 return this->operator[](this->getTable()->getShapeSlot().getMeasKey().getIyy());
485 }
486 ndarray::Array<double, 1> const getIxy() const {
487 return this->operator[](this->getTable()->getShapeSlot().getMeasKey().getIxy());
488 }
489
491 template <typename InputIterator>
493 InputIterator last) {
495 }
496
502
503protected:
504 explicit SourceColumnViewT(BaseColumnView const &base) : ColumnViewT<RecordT>(base) {}
505};
506
507using SourceColumnView = SourceColumnViewT<SourceRecord>;
508
510 return this->get(getTable()->getPsfFluxSlot().getMeasKey());
511}
512
514 return this->get(getTable()->getPsfFluxSlot().getErrKey());
515}
516
517inline bool SourceRecord::getPsfFluxFlag() const {
518 return this->get(getTable()->getPsfFluxSlot().getFlagKey());
519}
520
522 return this->get(getTable()->getModelFluxSlot().getMeasKey());
523}
524
526 return this->get(getTable()->getModelFluxSlot().getErrKey());
527}
528
530 return this->get(getTable()->getModelFluxSlot().getFlagKey());
531}
532
534 return this->get(getTable()->getApFluxSlot().getMeasKey());
535}
536
538 return this->get(getTable()->getApFluxSlot().getErrKey());
539}
540
541inline bool SourceRecord::getApFluxFlag() const {
542 return this->get(getTable()->getApFluxSlot().getFlagKey());
543}
544
546 return this->get(getTable()->getGaussianFluxSlot().getMeasKey());
547}
548
550 return this->get(getTable()->getGaussianFluxSlot().getErrKey());
551}
552
554 return this->get(getTable()->getGaussianFluxSlot().getFlagKey());
555}
556
558 return this->get(getTable()->getCalibFluxSlot().getMeasKey());
559}
560
562 return this->get(getTable()->getCalibFluxSlot().getErrKey());
563}
564
566 return this->get(getTable()->getCalibFluxSlot().getFlagKey());
567}
568
570 return this->get(getTable()->getCentroidSlot().getMeasKey());
571}
572
574 return this->get(getTable()->getCentroidSlot().getErrKey());
575}
576
577inline bool SourceRecord::getCentroidFlag() const {
578 return this->get(getTable()->getCentroidSlot().getFlagKey());
579}
580
582 return this->get(getTable()->getShapeSlot().getMeasKey());
583}
584
586 return this->get(getTable()->getShapeSlot().getErrKey());
587}
588
589inline bool SourceRecord::getShapeFlag() const { return this->get(getTable()->getShapeSlot().getFlagKey()); }
590
593inline double SourceRecord::getX() const { return get(getTable()->getCentroidSlot().getMeasKey().getX()); }
594inline double SourceRecord::getY() const { return get(getTable()->getCentroidSlot().getMeasKey().getY()); }
595inline double SourceRecord::getIxx() const { return get(getTable()->getShapeSlot().getMeasKey().getIxx()); }
596inline double SourceRecord::getIyy() const { return get(getTable()->getShapeSlot().getMeasKey().getIyy()); }
597inline double SourceRecord::getIxy() const { return get(getTable()->getShapeSlot().getMeasKey().getIxy()); }
598
599} // namespace table
600} // namespace afw
601} // namespace lsst
602
603#endif // !AFW_TABLE_Source_h_INCLUDED
Class to describe the properties of a detected object from an image.
Definition Footprint.h:63
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition fits.h:242
A 2-dimensional celestial WCS that transform pixels to ICRS RA/Dec, using the LSST standard for pixel...
Definition SkyWcs.h:118
Column-wise view into a sequence of records that have been allocated contiguously.
static BaseColumnView make(std::shared_ptr< BaseTable > const &table, InputIterator first, InputIterator last)
Construct a BaseColumnView from an iterator range.
ndarray::ArrayRef< T, 1 > const operator[](Key< T > const &key) const
Return a 1-d array corresponding to a scalar field (or subfield).
Base class for all records.
Definition BaseRecord.h:31
Field< T >::Value get(Key< T > const &key) const
Return the value of a field for the given key.
Definition BaseRecord.h:151
std::shared_ptr< BaseTable const > getTable() const
Return the table this record is associated with.
Definition BaseRecord.h:83
void set(Key< T > const &key, U const &value)
Set value of a field for the given key.
Definition BaseRecord.h:164
Schema getSchema() const
Return the table's schema.
Definition BaseTable.h:137
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:128
SlotDefinition specialization for centroids.
Definition slots.h:120
lsst::geom::Point2D MeasValue
Type returned by accessing the slot measurement.
Definition slots.h:122
Eigen::Matrix< float, 2, 2 > ErrValue
Type returned by accessing the slot uncertainty.
Definition slots.h:123
std::shared_ptr< Table > getTable() const
Return the table that owns the records.
ColumnViewT(ColumnViewT const &)=default
SlotDefinition specialization for fluxes.
Definition slots.h:73
double ErrValue
Type returned by accessing the slot uncertainty.
Definition slots.h:76
double MeasValue
Type returned by accessing the slot measurement.
Definition slots.h:75
static std::shared_ptr< IdFactory > makeSimple()
Return a simple IdFactory that simply counts from 1.
Definition IdFactory.cc:70
A class used as a handle to a particular field in a table.
Definition Key.h:53
A FunctorKey used to get or set a lsst::geom::Point from an (x,y) pair of int or double Keys.
Definition aggregates.h:51
Defines the fields and offsets for a table.
Definition Schema.h:51
std::shared_ptr< AliasMap > getAliasMap() const
Return the map of aliases.
Definition Schema.h:279
int contains(Schema const &other, int flags=EQUAL_KEYS) const
Test whether the given schema is a subset of this.
Definition Schema.cc:490
A mapping between the keys of two Schemas, used to copy data between them.
SlotDefinition specialization for shapes.
Definition slots.h:167
Eigen::Matrix< float, 3, 3 > ErrValue
Type returned by accessing the slot uncertainty.
Definition slots.h:170
geom::ellipses::Quadrupole MeasValue
Type returned by accessing the slot measurement.
Definition slots.h:169
SimpleRecord(ConstructionToken const &token, detail::RecordData &&data)
Constructor used by SimpleTable.
Definition Simple.h:64
SimpleTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition Simple.cc:86
Custom catalog class for record/table subclasses that are guaranteed to have an ID,...
ndarray::Array< double, 1 > getApInstFluxErr() const
Get the uncertainty on the ApFlux slot measurement.
Definition Source.h:442
ndarray::Array< double, 1 > const getY() const
Definition Source.h:476
ndarray::Array< double, 1 > getModelInstFluxErr() const
Get the uncertainty on the ModelFlux slot measurement.
Definition Source.h:451
ndarray::Array< double, 1 > getPsfInstFluxErr() const
Get the uncertainty on the PsfFlux slot measurement.
Definition Source.h:433
SourceColumnViewT(BaseColumnView const &base)
Definition Source.h:504
ndarray::Array< double, 1 > getGaussianInstFluxErr() const
Get the uncertainty on the GaussianFlux slot measurement.
Definition Source.h:460
SourceColumnViewT & operator=(SourceColumnViewT const &)=default
SourceColumnViewT & operator=(SourceColumnViewT &&)=default
ndarray::Array< double, 1 > getCalibInstFlux() const
Get the value of the CalibFlux slot measurement.
Definition Source.h:465
static SourceColumnViewT make(std::shared_ptr< Table > const &table, InputIterator first, InputIterator last)
Construct a BaseColumnView from an iterator range.
Definition Source.h:492
ndarray::Array< double, 1 > getCalibInstFluxErr() const
Get the uncertainty on the CalibFlux slot measurement.
Definition Source.h:469
ndarray::Array< double, 1 > getApInstFlux() const
Get the value of the ApFlux slot measurement.
Definition Source.h:438
ndarray::Array< double, 1 > const getIyy() const
Definition Source.h:483
SourceColumnViewT(SourceColumnViewT &&)=default
ndarray::Array< double, 1 > getGaussianInstFlux() const
Get the value of the GaussianFlux slot measurement.
Definition Source.h:456
SourceColumnViewT(SourceColumnViewT const &)=default
ndarray::Array< double, 1 > const getX() const
Definition Source.h:473
ndarray::Array< double, 1 > const getIxx() const
Definition Source.h:480
ndarray::Array< double, 1 > const getIxy() const
Definition Source.h:486
ndarray::Array< double, 1 > getModelInstFlux() const
Get the value of the ModelFlux slot measurement.
Definition Source.h:447
ndarray::Array< double, 1 > getPsfInstFlux() const
Get the value of the PsfFlux slot measurement.
Definition Source.h:429
Record class that contains measurements made on a single exposure.
Definition Source.h:78
FluxSlotDefinition::ErrValue getCalibInstFluxErr() const
Get the uncertainty on the CalibFlux slot measurement.
Definition Source.h:561
virtual void _assign(BaseRecord const &other)
Called by assign() after transferring fields to allow subclass data members to be copied.
Definition Source.cc:394
double getIxx() const
Return the shape slot Ixx value.
Definition Source.h:595
bool getCalibFluxFlag() const
Return true if the measurement in the CalibFlux slot failed.
Definition Source.h:565
FluxSlotDefinition::ErrValue getGaussianInstFluxErr() const
Get the uncertainty on the GaussianFlux slot measurement.
Definition Source.h:549
bool getShapeFlag() const
Return true if the measurement in the Shape slot failed.
Definition Source.h:589
double getX() const
Return the centroid slot x coordinate.
Definition Source.h:593
SourceRecord & operator=(const SourceRecord &)=delete
double getY() const
Return the centroid slot y coordinate.
Definition Source.h:594
FluxSlotDefinition::MeasValue getGaussianInstFlux() const
Get the value of the GaussianFlux slot measurement.
Definition Source.h:545
double getIyy() const
Return the shape slot Iyy value.
Definition Source.h:596
CentroidSlotDefinition::MeasValue getCentroid() const
Get the value of the Centroid slot measurement.
Definition Source.h:569
bool getCentroidFlag() const
Return true if the measurement in the Centroid slot failed.
Definition Source.h:577
FluxSlotDefinition::MeasValue getApInstFlux() const
Get the value of the ApFlux slot measurement.
Definition Source.h:533
std::shared_ptr< SourceTable const > getTable() const
Definition Source.h:102
bool getModelFluxFlag() const
Return true if the measurement in the ModelFlux slot failed.
Definition Source.h:529
void setParent(RecordId id)
Definition Source.h:592
FluxSlotDefinition::MeasValue getModelInstFlux() const
Get the value of the ModelFlux slot measurement.
Definition Source.h:521
SortedCatalogT< SourceRecord > Catalog
Definition Source.h:82
double getIxy() const
Return the shape slot Ixy value.
Definition Source.h:597
SourceRecord(const SourceRecord &)=delete
ShapeSlotDefinition::ErrValue getShapeErr() const
Get the uncertainty on the Shape slot measurement.
Definition Source.h:585
FluxSlotDefinition::ErrValue getPsfInstFluxErr() const
Get the uncertainty on the PsfFlux slot measurement.
Definition Source.h:513
std::shared_ptr< Footprint > getFootprint() const
Definition Source.h:98
ShapeSlotDefinition::MeasValue getShape() const
Get the value of the Shape slot measurement.
Definition Source.h:581
RecordId getParent() const
Convenience accessors for the keys in the minimal source schema.
Definition Source.h:591
CentroidSlotDefinition::ErrValue getCentroidErr() const
Get the uncertainty on the Centroid slot measurement.
Definition Source.h:573
FluxSlotDefinition::MeasValue getPsfInstFlux() const
Get the value of the PsfFlux slot measurement.
Definition Source.h:509
SourceRecord & operator=(SourceRecord &&)=delete
FluxSlotDefinition::ErrValue getApInstFluxErr() const
Get the uncertainty on the ApFlux slot measurement.
Definition Source.h:537
SourceRecord(SourceRecord &&)=delete
void setFootprint(std::shared_ptr< Footprint > const &footprint)
Definition Source.h:100
SortedCatalogT< const SourceRecord > ConstCatalog
Definition Source.h:83
bool getGaussianFluxFlag() const
Return true if the measurement in the GaussianFlux slot failed.
Definition Source.h:553
FluxSlotDefinition::ErrValue getModelInstFluxErr() const
Get the uncertainty on the ModelFlux slot measurement.
Definition Source.h:525
FluxSlotDefinition::MeasValue getCalibInstFlux() const
Get the value of the CalibFlux slot measurement.
Definition Source.h:557
bool getPsfFluxFlag() const
Return true if the measurement in the PsfFlux slot failed.
Definition Source.h:517
SourceRecord(ConstructionToken const &token, detail::RecordData &&data)
Constructor used by SourceTable.
Definition Source.h:94
bool getApFluxFlag() const
Return true if the measurement in the ApFlux slot failed.
Definition Source.h:541
void updateCoord(geom::SkyWcs const &wcs, bool include_covariance=true)
Update the coord field using the given Wcs and the field in the centroid slot.
Definition Source.cc:370
SourceColumnViewT< SourceRecord > ColumnView
Definition Source.h:81
Table class that contains measurements made on a single exposure.
Definition Source.h:217
std::shared_ptr< SourceRecord > copyRecord(BaseRecord const &other)
Deep-copy a record, requiring that it have the same schema as this table.
Definition Source.h:284
SourceTable & operator=(SourceTable const &)=delete
void defineCalibFlux(std::string const &name)
Set the measurement used for the CalibFlux slot.
Definition Source.h:354
static std::shared_ptr< SourceTable > make(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Construct a new table.
Definition Source.cc:402
SourceTable(SourceTable const &other)
SourceTable & operator=(SourceTable &&)=delete
std::shared_ptr< SourceRecord > makeRecord()
Default-construct an associated record.
Definition Source.h:279
SourceTable(Schema const &schema, std::shared_ptr< IdFactory > const &idFactory)
Definition Source.cc:413
void defineApFlux(std::string const &name)
Set the measurement used for the ApFlux slot.
Definition Source.h:328
std::shared_ptr< BaseRecord > _makeRecord() override
Default-construct an associated record (protected implementation).
Definition Source.cc:445
void definePsfFlux(std::string const &name)
Set the measurement used for the PsfFlux slot.
Definition Source.h:302
FluxSlotDefinition const & getModelFluxSlot() const
Definition Source.h:306
static Schema makeMinimalSchema()
Return a minimal schema for Source tables and records.
Definition Source.h:258
static Key< RecordId > getParentKey()
Key for the parent ID.
Definition Source.h:273
void defineGaussianFlux(std::string const &name)
Set the measurement used for the GaussianFlux slot.
Definition Source.h:341
SortedCatalogT< const Record > ConstCatalog
Definition Source.h:222
FluxSlotDefinition const & getGaussianFluxSlot() const
Definition Source.h:332
std::shared_ptr< SourceTable > clone() const
Return a polymorphic deep copy of the table.
Definition Source.h:276
void defineShape(std::string const &name)
Set the measurement used for the Shape slot.
Definition Source.h:380
std::shared_ptr< io::FitsWriter > makeFitsWriter(fits::Fits *fitsfile, int flags) const override
Definition Source.cc:435
std::shared_ptr< BaseTable > _clone() const override
Clone implementation with noncovariant return types.
Definition Source.cc:439
SourceColumnViewT< SourceRecord > ColumnView
Definition Source.h:220
CentroidSlotDefinition const & getCentroidSlot() const
Definition Source.h:358
FluxSlotDefinition const & getPsfFluxSlot() const
Definition Source.h:293
void handleAliasChange(std::string const &alias) override
Definition Source.cc:418
FluxSlotDefinition const & getApFluxSlot() const
Definition Source.h:319
ShapeSlotDefinition const & getShapeSlot() const
Definition Source.h:371
void defineCentroid(std::string const &name)
Set the measurement used for the Centroid slot.
Definition Source.h:367
static std::shared_ptr< SourceTable > make(Schema const &schema)
Construct a new table.
Definition Source.h:244
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.
Definition Source.h:289
void defineModelFlux(std::string const &name)
Set the measurement used for the ModelFlux slot.
Definition Source.h:315
FluxSlotDefinition const & getCalibFluxSlot() const
Definition Source.h:345
SortedCatalogT< Record > Catalog
Definition Source.h:221
static bool checkSchema(Schema const &other)
Return true if the given schema is a valid SourceTable schema.
Definition Source.h:270
Writer object for FITS binary tables.
Definition FitsWriter.h:25
lsst::afw::detection::Footprint Footprint
Definition Source.h:57
SourceFitsFlags
Bitflags to be passed to SourceCatalog::readFits and SourceCatalog::writeFits.
Definition Source.h:52
@ SOURCE_IO_NO_FOOTPRINTS
Do not read/write footprints at all.
Definition Source.h:53
@ SOURCE_IO_NO_HEAVY_FOOTPRINTS
Read/write heavy footprints as non-heavy footprints.
Definition Source.h:54
std::int64_t RecordId
Type used for unique IDs for records.
Definition misc.h:21
SourceColumnViewT< SourceRecord > SourceColumnView
Definition fwd.h:84
STL namespace.
T static_pointer_cast(T... args)
An aggregate containing all of the current slots used in SourceTable.
Definition slots.h:219
Helper struct that contains the information passed from BaseTable to BaseRecord at construction.
Definition BaseTable.h:32