LSSTApplications  16.0-10-g0ee56ad+5,16.0-11-ga33d1f2+5,16.0-12-g3ef5c14+3,16.0-12-g71e5ef5+18,16.0-12-gbdf3636+3,16.0-13-g118c103+3,16.0-13-g8f68b0a+3,16.0-15-gbf5c1cb+4,16.0-16-gfd17674+3,16.0-17-g7c01f5c+3,16.0-18-g0a50484+1,16.0-20-ga20f992+8,16.0-21-g0e05fd4+6,16.0-21-g15e2d33+4,16.0-22-g62d8060+4,16.0-22-g847a80f+4,16.0-25-gf00d9b8+1,16.0-28-g3990c221+4,16.0-3-gf928089+3,16.0-32-g88a4f23+5,16.0-34-gd7987ad+3,16.0-37-gc7333cb+2,16.0-4-g10fc685+2,16.0-4-g18f3627+26,16.0-4-g5f3a788+26,16.0-5-gaf5c3d7+4,16.0-5-gcc1f4bb+1,16.0-6-g3b92700+4,16.0-6-g4412fcd+3,16.0-6-g7235603+4,16.0-69-g2562ce1b+2,16.0-8-g14ebd58+4,16.0-8-g2df868b+1,16.0-8-g4cec79c+6,16.0-8-gadf6c7a+1,16.0-8-gfc7ad86,16.0-82-g59ec2a54a+1,16.0-9-g5400cdc+2,16.0-9-ge6233d7+5,master-g2880f2d8cf+3,v17.0.rc1
LSSTDataManagementBasePackage
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 // THIS FILE IS AUTOMATICALLY GENERATED from Source.h.m4, AND WILL BE OVERWRITTEN IF EDITED MANUALLY.
25 
26 #ifndef AFW_TABLE_Source_h_INCLUDED
27 #define AFW_TABLE_Source_h_INCLUDED
28 
29 #include "boost/array.hpp"
30 #include "boost/type_traits/is_convertible.hpp"
31 
33 #include "lsst/afw/table/Simple.h"
36 #include "lsst/afw/table/Catalog.h"
38 #include "lsst/afw/table/slots.h"
40 
41 namespace lsst {
42 namespace afw {
43 
44 namespace geom {
45 class SkyWcs;
46 } // namespace geom
47 
48 namespace table {
49 
59 };
60 
62 
63 class SourceRecord;
64 class SourceTable;
65 
66 template <typename RecordT>
67 class SourceColumnViewT;
68 
82 class SourceRecord : public SimpleRecord {
83 public:
84  typedef SourceTable Table;
88 
89  std::shared_ptr<Footprint> getFootprint() const { return _footprint; }
90 
91  void setFootprint(std::shared_ptr<Footprint> const &footprint) { _footprint = footprint; }
92 
94  return std::static_pointer_cast<SourceTable const>(BaseRecord::getTable());
95  }
96 
98  RecordId getParent() const;
100  void setParent(RecordId id);
102 
104  FluxSlotDefinition::MeasValue getPsfInstFlux() const;
105 
107  FluxSlotDefinition::ErrValue getPsfInstFluxErr() const;
108 
110  bool getPsfFluxFlag() const;
111 
113  FluxSlotDefinition::MeasValue getModelInstFlux() const;
114 
116  FluxSlotDefinition::ErrValue getModelInstFluxErr() const;
117 
119  bool getModelFluxFlag() const;
120 
122  FluxSlotDefinition::MeasValue getApInstFlux() const;
123 
125  FluxSlotDefinition::ErrValue getApInstFluxErr() const;
126 
128  bool getApFluxFlag() const;
129 
131  FluxSlotDefinition::MeasValue getGaussianInstFlux() const;
132 
134  FluxSlotDefinition::ErrValue getGaussianInstFluxErr() const;
135 
137  bool getGaussianFluxFlag() const;
138 
140  FluxSlotDefinition::MeasValue getCalibInstFlux() const;
141 
143  FluxSlotDefinition::ErrValue getCalibInstFluxErr() const;
144 
146  bool getCalibFluxFlag() const;
147 
149  CentroidSlotDefinition::MeasValue getCentroid() const;
150 
152  CentroidSlotDefinition::ErrValue getCentroidErr() const;
153 
155  bool getCentroidFlag() const;
156 
158  ShapeSlotDefinition::MeasValue getShape() const;
159 
161  ShapeSlotDefinition::ErrValue getShapeErr() const;
162 
164  bool getShapeFlag() const;
165 
167  double getX() const;
168 
170  double getY() const;
171 
173  double getIxx() const;
174 
176  double getIyy() const;
177 
179  double getIxy() const;
180 
182  void updateCoord(geom::SkyWcs const &wcs);
183 
185  void updateCoord(geom::SkyWcs const &wcs, PointKey<double> const &key);
186 
187  SourceRecord(const SourceRecord &) = delete;
188  SourceRecord &operator=(const SourceRecord &) = delete;
189  SourceRecord(SourceRecord &&) = delete;
190  SourceRecord &operator=(SourceRecord &&) = delete;
191  ~SourceRecord();
192 
193 protected:
195 
196  virtual void _assign(BaseRecord const &other);
197 
198 private:
199  friend class SourceTable;
200 
201  std::shared_ptr<Footprint> _footprint;
202 };
203 
209 class SourceTable : public SimpleTable {
210 public:
215 
226  static std::shared_ptr<SourceTable> make(Schema const &schema,
228 
237  return make(schema, IdFactory::makeSimple());
238  }
239 
251  Schema r = getMinimalSchema().schema;
252  r.disconnectAliases();
253  return r;
254  }
255 
262  static bool checkSchema(Schema const &other) { return other.contains(getMinimalSchema().schema); }
263 
265  static Key<RecordId> getParentKey() { return getMinimalSchema().parent; }
266 
269 
272  return std::static_pointer_cast<SourceRecord>(_makeRecord());
273  }
274 
277  return std::static_pointer_cast<SourceRecord>(BaseTable::copyRecord(other));
278  }
279 
282  return std::static_pointer_cast<SourceRecord>(BaseTable::copyRecord(other, mapper));
283  }
284 
285  FluxSlotDefinition const &getPsfFluxSlot() const { return _slots.defPsfFlux; }
286 
295  getSchema().getAliasMap()->set(getPsfFluxSlot().getAlias(), name);
296  }
297 
298  FluxSlotDefinition const &getModelFluxSlot() const { return _slots.defModelFlux; }
299 
308  getSchema().getAliasMap()->set(getModelFluxSlot().getAlias(), name);
309  }
310 
311  FluxSlotDefinition const &getApFluxSlot() const { return _slots.defApFlux; }
312 
321  getSchema().getAliasMap()->set(getApFluxSlot().getAlias(), name);
322  }
323 
324  FluxSlotDefinition const &getGaussianFluxSlot() const { return _slots.defGaussianFlux; }
325 
334  getSchema().getAliasMap()->set(getGaussianFluxSlot().getAlias(), name);
335  }
336 
337  FluxSlotDefinition const &getCalibFluxSlot() const { return _slots.defCalibFlux; }
338 
347  getSchema().getAliasMap()->set(getCalibFluxSlot().getAlias(), name);
348  }
349 
350  CentroidSlotDefinition const &getCentroidSlot() const { return _slots.defCentroid; }
351 
360  getSchema().getAliasMap()->set(getCentroidSlot().getAlias(), name);
361  }
362 
373  return getSchema().getAliasMap()->get(getCentroidSlot().getAlias());
374  }
375 
381  bool hasCentroidSlot() const { return getCentroidSlot().isValid(); }
382 
388  CentroidSlotDefinition::MeasKey getCentroidKey() const { return getCentroidSlot().getMeasKey(); }
389 
395  CentroidSlotDefinition::ErrKey getCentroidErrKey() const { return getCentroidSlot().getErrKey(); }
396 
402  Key<Flag> getCentroidFlagKey() const { return getCentroidSlot().getFlagKey(); }
403 
404  ShapeSlotDefinition const &getShapeSlot() const { return _slots.defShape; }
405 
413  void defineShape(std::string const &name) {
414  getSchema().getAliasMap()->set(getShapeSlot().getAlias(), name);
415  }
416 
427  return getSchema().getAliasMap()->get(getShapeSlot().getAlias());
428  }
429 
435  bool hasShapeSlot() const { return getShapeSlot().isValid(); }
436 
442  ShapeSlotDefinition::MeasKey getShapeKey() const { return getShapeSlot().getMeasKey(); }
443 
449  ShapeSlotDefinition::ErrKey getShapeErrKey() const { return getShapeSlot().getErrKey(); }
450 
456  Key<Flag> getShapeFlagKey() const { return getShapeSlot().getFlagKey(); }
457 
458  SourceTable &operator=(SourceTable const &) = delete;
459  SourceTable &operator=(SourceTable &&) = delete;
460 
461 protected:
463 
464  SourceTable(SourceTable const &other);
465  SourceTable(SourceTable &&other);
466 
467  void handleAliasChange(std::string const &alias) override;
468 
469  std::shared_ptr<BaseTable> _clone() const override;
470 
471  std::shared_ptr<BaseRecord> _makeRecord() override;
472 
473 private:
474  // Struct that holds the minimal schema and the special keys we've added to it.
475  struct MinimalSchema {
476  Schema schema;
477  Key<RecordId> parent;
478 
479  MinimalSchema();
480  };
481 
482  // Return the singleton minimal schema.
483  static MinimalSchema &getMinimalSchema();
484 
485  friend class io::FitsWriter;
486  friend class SourceRecord;
487 
488  // Return a writer object that knows how to save in FITS format. See also FitsWriter.
489  std::shared_ptr<io::FitsWriter> makeFitsWriter(fits::Fits *fitsfile, int flags) const override;
490 
491  SlotSuite _slots;
492 };
493 
494 template <typename RecordT>
495 class SourceColumnViewT : public ColumnViewT<RecordT> {
496 public:
497  typedef RecordT Record;
498  typedef typename RecordT::Table Table;
499 
500  // See the documentation for BaseColumnView for an explanation of why these
501  // accessors *appear* to violate const-correctness.
502 
504  ndarray::Array<double, 1> getPsfInstFlux() const {
505  return this->operator[](this->getTable()->getPsfFluxSlot().getMeasKey());
506  }
508  ndarray::Array<double, 1> getPsfInstFluxErr() const {
509  return this->operator[](this->getTable()->getPsfFluxSlot().getErrKey());
510  }
511 
513  ndarray::Array<double, 1> getApInstFlux() const {
514  return this->operator[](this->getTable()->getApFluxSlot().getMeasKey());
515  }
517  ndarray::Array<double, 1> getApInstFluxErr() const {
518  return this->operator[](this->getTable()->getApFluxSlot().getErrKey());
519  }
520 
522  ndarray::Array<double, 1> getModelInstFlux() const {
523  return this->operator[](this->getTable()->getModelFluxSlot().getMeasKey());
524  }
526  ndarray::Array<double, 1> getModelInstFluxErr() const {
527  return this->operator[](this->getTable()->getModelFluxSlot().getErrKey());
528  }
529 
531  ndarray::Array<double, 1> getGaussianInstFlux() const {
532  return this->operator[](this->getTable()->getGaussianFluxSlot().getMeasKey());
533  }
535  ndarray::Array<double, 1> getGaussianInstFluxErr() const {
536  return this->operator[](this->getTable()->getGaussianFluxSlot().getErrKey());
537  }
538 
540  ndarray::Array<double, 1> getCalibInstFlux() const {
541  return this->operator[](this->getTable()->getCalibFluxSlot().getMeasKey());
542  }
544  ndarray::Array<double, 1> getCalibInstFluxErr() const {
545  return this->operator[](this->getTable()->getCalibFluxSlot().getErrKey());
546  }
547 
548  ndarray::Array<double, 1> const getX() const {
549  return this->operator[](this->getTable()->getCentroidKey().getX());
550  }
551  ndarray::Array<double, 1> const getY() const {
552  return this->operator[](this->getTable()->getCentroidKey().getY());
553  }
554 
555  ndarray::Array<double, 1> const getIxx() const {
556  return this->operator[](this->getTable()->getShapeKey().getIxx());
557  }
558  ndarray::Array<double, 1> const getIyy() const {
559  return this->operator[](this->getTable()->getShapeKey().getIyy());
560  }
561  ndarray::Array<double, 1> const getIxy() const {
562  return this->operator[](this->getTable()->getShapeKey().getIxy());
563  }
564 
566  template <typename InputIterator>
567  static SourceColumnViewT make(std::shared_ptr<Table> const &table, InputIterator first,
568  InputIterator last) {
569  return SourceColumnViewT(BaseColumnView::make(table, first, last));
570  }
571 
572  SourceColumnViewT(SourceColumnViewT const &) = default;
573  SourceColumnViewT(SourceColumnViewT &&) = default;
574  SourceColumnViewT &operator=(SourceColumnViewT const &) = default;
575  SourceColumnViewT &operator=(SourceColumnViewT &&) = default;
576  ~SourceColumnViewT() = default;
577 
578 protected:
579  explicit SourceColumnViewT(BaseColumnView const &base) : ColumnViewT<RecordT>(base) {}
580 };
581 
583 
584 inline FluxSlotDefinition::MeasValue SourceRecord::getPsfInstFlux() const {
585  return this->get(getTable()->getPsfFluxSlot().getMeasKey());
586 }
587 
588 inline FluxSlotDefinition::ErrValue SourceRecord::getPsfInstFluxErr() const {
589  return this->get(getTable()->getPsfFluxSlot().getErrKey());
590 }
591 
592 inline bool SourceRecord::getPsfFluxFlag() const {
593  return this->get(getTable()->getPsfFluxSlot().getFlagKey());
594 }
595 
596 inline FluxSlotDefinition::MeasValue SourceRecord::getModelInstFlux() const {
597  return this->get(getTable()->getModelFluxSlot().getMeasKey());
598 }
599 
600 inline FluxSlotDefinition::ErrValue SourceRecord::getModelInstFluxErr() const {
601  return this->get(getTable()->getModelFluxSlot().getErrKey());
602 }
603 
604 inline bool SourceRecord::getModelFluxFlag() const {
605  return this->get(getTable()->getModelFluxSlot().getFlagKey());
606 }
607 
608 inline FluxSlotDefinition::MeasValue SourceRecord::getApInstFlux() const {
609  return this->get(getTable()->getApFluxSlot().getMeasKey());
610 }
611 
612 inline FluxSlotDefinition::ErrValue SourceRecord::getApInstFluxErr() const {
613  return this->get(getTable()->getApFluxSlot().getErrKey());
614 }
615 
616 inline bool SourceRecord::getApFluxFlag() const {
617  return this->get(getTable()->getApFluxSlot().getFlagKey());
618 }
619 
620 inline FluxSlotDefinition::MeasValue SourceRecord::getGaussianInstFlux() const {
621  return this->get(getTable()->getGaussianFluxSlot().getMeasKey());
622 }
623 
624 inline FluxSlotDefinition::ErrValue SourceRecord::getGaussianInstFluxErr() const {
625  return this->get(getTable()->getGaussianFluxSlot().getErrKey());
626 }
627 
628 inline bool SourceRecord::getGaussianFluxFlag() const {
629  return this->get(getTable()->getGaussianFluxSlot().getFlagKey());
630 }
631 
632 inline FluxSlotDefinition::MeasValue SourceRecord::getCalibInstFlux() const {
633  return this->get(getTable()->getCalibFluxSlot().getMeasKey());
634 }
635 
636 inline FluxSlotDefinition::ErrValue SourceRecord::getCalibInstFluxErr() const {
637  return this->get(getTable()->getCalibFluxSlot().getErrKey());
638 }
639 
640 inline bool SourceRecord::getCalibFluxFlag() const {
641  return this->get(getTable()->getCalibFluxSlot().getFlagKey());
642 }
643 
644 inline CentroidSlotDefinition::MeasValue SourceRecord::getCentroid() const {
645  return this->get(getTable()->getCentroidSlot().getMeasKey());
646 }
647 
648 inline CentroidSlotDefinition::ErrValue SourceRecord::getCentroidErr() const {
649  return this->get(getTable()->getCentroidSlot().getErrKey());
650 }
651 
652 inline bool SourceRecord::getCentroidFlag() const {
653  return this->get(getTable()->getCentroidSlot().getFlagKey());
654 }
655 
656 inline ShapeSlotDefinition::MeasValue SourceRecord::getShape() const {
657  return this->get(getTable()->getShapeSlot().getMeasKey());
658 }
659 
660 inline ShapeSlotDefinition::ErrValue SourceRecord::getShapeErr() const {
661  return this->get(getTable()->getShapeSlot().getErrKey());
662 }
663 
664 inline bool SourceRecord::getShapeFlag() const { return this->get(getTable()->getShapeSlot().getFlagKey()); }
665 
666 inline RecordId SourceRecord::getParent() const { return get(SourceTable::getParentKey()); }
667 inline void SourceRecord::setParent(RecordId id) { set(SourceTable::getParentKey(), id); }
668 inline double SourceRecord::getX() const { return get(getTable()->getCentroidKey().getX()); }
669 inline double SourceRecord::getY() const { return get(getTable()->getCentroidKey().getY()); }
670 inline double SourceRecord::getIxx() const { return get(getTable()->getShapeKey().getIxx()); }
671 inline double SourceRecord::getIyy() const { return get(getTable()->getShapeKey().getIyy()); }
672 inline double SourceRecord::getIxy() const { return get(getTable()->getShapeKey().getIxy()); }
673 
674 } // namespace table
675 } // namespace afw
676 } // namespace lsst
677 
678 #endif // !AFW_TABLE_Source_h_INCLUDED
FluxSlotDefinition const & getGaussianFluxSlot() const
Definition: Source.h:324
An ellipse core with quadrupole moments as parameters.
Definition: Quadrupole.h:47
bool hasCentroidSlot() const
Return true if the Centroid slot corresponds to a valid field.
Definition: Source.h:381
Defines the fields and offsets for a table.
Definition: Schema.h:50
ndarray::Array< double, 1 > getCalibInstFlux() const
Get the value of the CalibFlux slot measurement.
Definition: Source.h:540
A 2-dimensional celestial WCS that transform pixels to ICRS RA/Dec, using the LSST standard for pixel...
Definition: SkyWcs.h:115
Column-wise view into a sequence of records that have been allocated contiguously.
Writer object for FITS binary tables.
Definition: FitsWriter.h:25
FluxSlotDefinition const & getApFluxSlot() const
Definition: Source.h:311
SortedCatalogT< SourceRecord const > ConstCatalog
Definition: Source.h:87
void defineCalibFlux(std::string const &name)
Set the measurement used for the CalibFlux slot.
Definition: Source.h:346
A mapping between the keys of two Schemas, used to copy data between them.
Definition: SchemaMapper.h:21
SourceColumnViewT(BaseColumnView const &base)
Definition: Source.h:579
SourceColumnViewT< SourceRecord > ColumnView
Definition: Source.h:85
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:404
std::shared_ptr< Footprint > getFootprint() const
Definition: Source.h:89
FluxSlotDefinition const & getCalibFluxSlot() const
Definition: Source.h:337
void disconnectAliases()
Sever the connection between this schema and any others with which it shares aliases.
Definition: Schema.cc:729
SortedCatalogT< Record > Catalog
Definition: Source.h:213
void defineGaussianFlux(std::string const &name)
Set the measurement used for the GaussianFlux slot.
Definition: Source.h:333
table::Key< int > id
Definition: Detector.cc:163
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:276
void definePsfFlux(std::string const &name)
Set the measurement used for the PsfFlux slot.
Definition: Source.h:294
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition: fits.h:296
STL class.
std::string getCentroidDefinition() const
Return the name of the field used for the Centroid slot.
Definition: Source.h:372
ndarray::Array< double, 1 > const getY() const
Definition: Source.h:551
ndarray::Array< double, 1 > const getX() const
Definition: Source.h:548
table::Key< table::Array< std::uint8_t > > wcs
Definition: SkyWcs.cc:71
An aggregate containing all of the current slots used in SourceTable.
Definition: slots.h:219
STL class.
ndarray::Array< double, 1 > const getIxy() const
Definition: Source.h:561
ndarray::Array< double, 1 > getGaussianInstFluxErr() const
Get the uncertainty on the GaussianFlux slot measurement.
Definition: Source.h:535
ndarray::Array< double, 1 > getApInstFlux() const
Get the value of the ApFlux slot measurement.
Definition: Source.h:513
ndarray::Array< double, 1 > getGaussianInstFlux() const
Get the value of the GaussianFlux slot measurement.
Definition: Source.h:531
Table class that must contain a unique ID field and a celestial coordinate field. ...
Definition: Simple.h:91
A base class for image defects.
Custom catalog class for record/table subclasses that are guaranteed to have an ID, and should generally be sorted by that ID.
Definition: fwd.h:63
std::shared_ptr< SourceTable const > getTable() const
Definition: Source.h:93
int contains(Schema const &other, int flags=EQUAL_KEYS) const
Test whether the given schema is a subset of this.
Definition: Schema.cc:679
static SourceColumnViewT make(std::shared_ptr< Table > const &table, InputIterator first, InputIterator last)
Construct a BaseColumnView from an iterator range.
Definition: Source.h:567
CentroidSlotDefinition::MeasKey getCentroidKey() const
Return the key used for the Centroid slot measurement value.
Definition: Source.h:388
ndarray::Array< double, 1 > const getIxx() const
Definition: Source.h:555
bool hasShapeSlot() const
Return true if the Shape slot corresponds to a valid field.
Definition: Source.h:435
table::Schema schema
Definition: Camera.cc:161
static Schema makeMinimalSchema()
Return a minimal schema for Source tables and records.
Definition: Source.h:250
SourceColumnViewT< SourceRecord > SourceColumnView
Definition: fwd.h:83
T static_pointer_cast(T... args)
SortedCatalogT< SourceRecord > Catalog
Definition: Source.h:86
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:281
ndarray::Array< double, 1 > getPsfInstFluxErr() const
Get the uncertainty on the PsfFlux slot measurement.
Definition: Source.h:508
SortedCatalogT< Record const > ConstCatalog
Definition: Source.h:214
Class to describe the properties of a detected object from an image.
Definition: Footprint.h:62
void defineModelFlux(std::string const &name)
Set the measurement used for the ModelFlux slot.
Definition: Source.h:307
SourceFitsFlags
Bitflags to be passed to SourceCatalog::readFits and SourceCatalog::writeFits.
Definition: Source.h:56
Table class that contains measurements made on a single exposure.
Definition: Source.h:209
static std::shared_ptr< SourceTable > make(Schema const &schema)
Construct a new table.
Definition: Source.h:236
Key< Flag > getCentroidFlagKey() const
Return the key used for the Centroid slot failure flag.
Definition: Source.h:402
CentroidSlotDefinition::ErrKey getCentroidErrKey() const
Return the key used for the Centroid slot uncertainty.
Definition: Source.h:395
Base class for all records.
Definition: BaseRecord.h:31
A class used as a handle to a particular field in a table.
Definition: fwd.h:45
Key< U > key
Definition: Schema.cc:281
Key specialization for Flag.
Definition: Flag.h:94
ndarray::Array< double, 1 > getModelInstFluxErr() const
Get the uncertainty on the ModelFlux slot measurement.
Definition: Source.h:526
void setFootprint(std::shared_ptr< Footprint > const &footprint)
Definition: Source.h:91
Eigen::Matrix< float, 3, 3 > ErrValue
Type returned by accessing the slot uncertainty.
Definition: slots.h:170
SlotDefinition specialization for centroids.
Definition: slots.h:120
Read/write heavy footprints as non-heavy footprints.
Definition: Source.h:58
lsst::afw::detection::Footprint Footprint
Definition: Source.h:61
ShapeSlotDefinition::MeasKey getShapeKey() const
Return the key used for the Shape slot measurement value.
Definition: Source.h:442
ItemVariant const * other
Definition: Schema.cc:56
Do not read/write footprints at all.
Definition: Source.h:57
Record class that contains measurements made on a single exposure.
Definition: Source.h:82
void defineShape(std::string const &name)
Set the measurement used for the Shape slot.
Definition: Source.h:413
static Key< RecordId > getParentKey()
Key for the parent ID.
Definition: Source.h:265
std::shared_ptr< SourceTable > clone() const
Return a polymorphic deep copy of the table.
Definition: Source.h:268
FluxSlotDefinition const & getPsfFluxSlot() const
Definition: Source.h:285
void defineCentroid(std::string const &name)
Set the measurement used for the Centroid slot.
Definition: Source.h:359
double ErrValue
Type returned by accessing the slot uncertainty.
Definition: slots.h:76
FluxSlotDefinition const & getModelFluxSlot() const
Definition: Source.h:298
ndarray::Array< double, 1 > getApInstFluxErr() const
Get the uncertainty on the ApFlux slot measurement.
Definition: Source.h:517
Record class that must contain a unique ID field and a celestial coordinate field.
Definition: Simple.h:48
ndarray::Array< double, 1 > getPsfInstFlux() const
Get the value of the PsfFlux slot measurement.
Definition: Source.h:504
SlotDefinition specialization for shapes.
Definition: slots.h:167
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:350
ndarray::Array< double, 1 > const getIyy() const
Definition: Source.h:558
A FunctorKey used to get or set a geom::ellipses::Quadrupole from a tuple of constituent Keys...
Definition: aggregates.h:282
double MeasValue
Type returned by accessing the slot measurement.
Definition: slots.h:75
ShapeSlotDefinition::ErrKey getShapeErrKey() const
Return the key used for the Shape slot uncertainty.
Definition: Source.h:449
SlotDefinition specialization for fluxes.
Definition: slots.h:73
Key< Flag > getShapeFlagKey() const
Return the key used for the Shape slot failure flag.
Definition: Source.h:456
ndarray::Array< double, 1 > getModelInstFlux() const
Get the value of the ModelFlux slot measurement.
Definition: Source.h:522
void defineApFlux(std::string const &name)
Set the measurement used for the ApFlux slot.
Definition: Source.h:320
ndarray::Array< double, 1 > getCalibInstFluxErr() const
Get the uncertainty on the CalibFlux slot measurement.
Definition: Source.h:544
std::string getShapeDefinition() const
Return the name of the field used for the Shape slot.
Definition: Source.h:426
SchemaMapper * mapper
Definition: SchemaMapper.cc:78
static bool checkSchema(Schema const &other)
Return true if the given schema is a valid SourceTable schema.
Definition: Source.h:262
SourceColumnViewT< SourceRecord > ColumnView
Definition: Source.h:212
std::shared_ptr< SourceRecord > makeRecord()
Default-construct an associated record.
Definition: Source.h:271
Eigen::Matrix< float, 2, 2 > ErrValue
Type returned by accessing the slot uncertainty.
Definition: slots.h:123