LSSTApplications  17.0+124,17.0+14,17.0+73,18.0.0+37,18.0.0+80,18.0.0-4-g68ffd23+4,18.1.0-1-g0001055+12,18.1.0-1-g03d53ef+5,18.1.0-1-g1349e88+55,18.1.0-1-g2505f39+44,18.1.0-1-g5315e5e+4,18.1.0-1-g5e4b7ea+14,18.1.0-1-g7e8fceb+4,18.1.0-1-g85f8cd4+48,18.1.0-1-g8ff0b9f+4,18.1.0-1-ga2c679d+1,18.1.0-1-gd55f500+35,18.1.0-10-gb58edde+2,18.1.0-11-g0997b02+4,18.1.0-13-gfe4edf0b+12,18.1.0-14-g259bd21+21,18.1.0-19-gdb69f3f+2,18.1.0-2-g5f9922c+24,18.1.0-2-gd3b74e5+11,18.1.0-2-gfbf3545+32,18.1.0-26-g728bddb4+5,18.1.0-27-g6ff7ca9+2,18.1.0-3-g52aa583+25,18.1.0-3-g8ea57af+9,18.1.0-3-gb69f684+42,18.1.0-3-gfcaddf3+6,18.1.0-32-gd8786685a,18.1.0-4-gf3f9b77+6,18.1.0-5-g1dd662b+2,18.1.0-5-g6dbcb01+41,18.1.0-6-gae77429+3,18.1.0-7-g9d75d83+9,18.1.0-7-gae09a6d+30,18.1.0-9-gc381ef5+4,w.2019.45
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 
99  SimpleRecord(token, std::move(data))
100  {}
101 
102  std::shared_ptr<Footprint> getFootprint() const { return _footprint; }
103 
104  void setFootprint(std::shared_ptr<Footprint> const &footprint) { _footprint = footprint; }
105 
107  return std::static_pointer_cast<SourceTable const>(BaseRecord::getTable());
108  }
109 
111  RecordId getParent() const;
113  void setParent(RecordId id);
115 
117  FluxSlotDefinition::MeasValue getPsfInstFlux() const;
118 
120  FluxSlotDefinition::ErrValue getPsfInstFluxErr() const;
121 
123  bool getPsfFluxFlag() const;
124 
126  FluxSlotDefinition::MeasValue getModelInstFlux() const;
127 
129  FluxSlotDefinition::ErrValue getModelInstFluxErr() const;
130 
132  bool getModelFluxFlag() const;
133 
135  FluxSlotDefinition::MeasValue getApInstFlux() const;
136 
138  FluxSlotDefinition::ErrValue getApInstFluxErr() const;
139 
141  bool getApFluxFlag() const;
142 
144  FluxSlotDefinition::MeasValue getGaussianInstFlux() const;
145 
147  FluxSlotDefinition::ErrValue getGaussianInstFluxErr() const;
148 
150  bool getGaussianFluxFlag() const;
151 
153  FluxSlotDefinition::MeasValue getCalibInstFlux() const;
154 
156  FluxSlotDefinition::ErrValue getCalibInstFluxErr() const;
157 
159  bool getCalibFluxFlag() const;
160 
162  CentroidSlotDefinition::MeasValue getCentroid() const;
163 
165  CentroidSlotDefinition::ErrValue getCentroidErr() const;
166 
168  bool getCentroidFlag() const;
169 
171  ShapeSlotDefinition::MeasValue getShape() const;
172 
174  ShapeSlotDefinition::ErrValue getShapeErr() const;
175 
177  bool getShapeFlag() const;
178 
180  double getX() const;
181 
183  double getY() const;
184 
186  double getIxx() const;
187 
189  double getIyy() const;
190 
192  double getIxy() const;
193 
195  void updateCoord(geom::SkyWcs const &wcs);
196 
198  void updateCoord(geom::SkyWcs const &wcs, PointKey<double> const &key);
199 
200  SourceRecord(const SourceRecord &) = delete;
201  SourceRecord &operator=(const SourceRecord &) = delete;
202  SourceRecord(SourceRecord &&) = delete;
203  SourceRecord &operator=(SourceRecord &&) = delete;
204  ~SourceRecord();
205 
206 protected:
207 
208  virtual void _assign(BaseRecord const &other);
209 
210 private:
211  friend class SourceTable;
212 
213  std::shared_ptr<Footprint> _footprint;
214 };
215 
221 class SourceTable : public SimpleTable {
222 public:
227 
238  static std::shared_ptr<SourceTable> make(Schema const &schema,
239  std::shared_ptr<IdFactory> const &idFactory);
240 
249  return make(schema, IdFactory::makeSimple());
250  }
251 
263  Schema r = getMinimalSchema().schema;
264  r.disconnectAliases();
265  return r;
266  }
267 
274  static bool checkSchema(Schema const &other) { return other.contains(getMinimalSchema().schema); }
275 
277  static Key<RecordId> getParentKey() { return getMinimalSchema().parent; }
278 
281 
284  return std::static_pointer_cast<SourceRecord>(_makeRecord());
285  }
286 
289  return std::static_pointer_cast<SourceRecord>(BaseTable::copyRecord(other));
290  }
291 
294  return std::static_pointer_cast<SourceRecord>(BaseTable::copyRecord(other, mapper));
295  }
296 
297  FluxSlotDefinition const &getPsfFluxSlot() const { return _slots.defPsfFlux; }
298 
307  getSchema().getAliasMap()->set(getPsfFluxSlot().getAlias(), name);
308  }
309 
310  FluxSlotDefinition const &getModelFluxSlot() const { return _slots.defModelFlux; }
311 
320  getSchema().getAliasMap()->set(getModelFluxSlot().getAlias(), name);
321  }
322 
323  FluxSlotDefinition const &getApFluxSlot() const { return _slots.defApFlux; }
324 
333  getSchema().getAliasMap()->set(getApFluxSlot().getAlias(), name);
334  }
335 
336  FluxSlotDefinition const &getGaussianFluxSlot() const { return _slots.defGaussianFlux; }
337 
346  getSchema().getAliasMap()->set(getGaussianFluxSlot().getAlias(), name);
347  }
348 
349  FluxSlotDefinition const &getCalibFluxSlot() const { return _slots.defCalibFlux; }
350 
359  getSchema().getAliasMap()->set(getCalibFluxSlot().getAlias(), name);
360  }
361 
362  CentroidSlotDefinition const &getCentroidSlot() const { return _slots.defCentroid; }
363 
372  getSchema().getAliasMap()->set(getCentroidSlot().getAlias(), name);
373  }
374 
385  return getSchema().getAliasMap()->get(getCentroidSlot().getAlias());
386  }
387 
393  bool hasCentroidSlot() const { return getCentroidSlot().isValid(); }
394 
400  CentroidSlotDefinition::MeasKey getCentroidKey() const { return getCentroidSlot().getMeasKey(); }
401 
407  CentroidSlotDefinition::ErrKey getCentroidErrKey() const { return getCentroidSlot().getErrKey(); }
408 
414  Key<Flag> getCentroidFlagKey() const { return getCentroidSlot().getFlagKey(); }
415 
416  ShapeSlotDefinition const &getShapeSlot() const { return _slots.defShape; }
417 
425  void defineShape(std::string const &name) {
426  getSchema().getAliasMap()->set(getShapeSlot().getAlias(), name);
427  }
428 
439  return getSchema().getAliasMap()->get(getShapeSlot().getAlias());
440  }
441 
447  bool hasShapeSlot() const { return getShapeSlot().isValid(); }
448 
454  ShapeSlotDefinition::MeasKey getShapeKey() const { return getShapeSlot().getMeasKey(); }
455 
461  ShapeSlotDefinition::ErrKey getShapeErrKey() const { return getShapeSlot().getErrKey(); }
462 
468  Key<Flag> getShapeFlagKey() const { return getShapeSlot().getFlagKey(); }
469 
470  SourceTable &operator=(SourceTable const &) = delete;
471  SourceTable &operator=(SourceTable &&) = delete;
472 
473 protected:
474  SourceTable(Schema const &schema, std::shared_ptr<IdFactory> const &idFactory);
475 
476  SourceTable(SourceTable const &other);
477  SourceTable(SourceTable &&other);
478 
479  void handleAliasChange(std::string const &alias) override;
480 
481  std::shared_ptr<BaseTable> _clone() const override;
482 
483  std::shared_ptr<BaseRecord> _makeRecord() override;
484 
485 private:
486  // Struct that holds the minimal schema and the special keys we've added to it.
487  struct MinimalSchema {
488  Schema schema;
489  Key<RecordId> parent;
490 
491  MinimalSchema();
492  };
493 
494  // Return the singleton minimal schema.
495  static MinimalSchema &getMinimalSchema();
496 
497  friend class io::FitsWriter;
498  friend class SourceRecord;
499 
500  // Return a writer object that knows how to save in FITS format. See also FitsWriter.
501  std::shared_ptr<io::FitsWriter> makeFitsWriter(fits::Fits *fitsfile, int flags) const override;
502 
503  SlotSuite _slots;
504 };
505 
506 template <typename RecordT>
507 class SourceColumnViewT : public ColumnViewT<RecordT> {
508 public:
509  typedef RecordT Record;
510  typedef typename RecordT::Table Table;
511 
512  // See the documentation for BaseColumnView for an explanation of why these
513  // accessors *appear* to violate const-correctness.
514 
516  ndarray::Array<double, 1> getPsfInstFlux() const {
517  return this->operator[](this->getTable()->getPsfFluxSlot().getMeasKey());
518  }
520  ndarray::Array<double, 1> getPsfInstFluxErr() const {
521  return this->operator[](this->getTable()->getPsfFluxSlot().getErrKey());
522  }
523 
525  ndarray::Array<double, 1> getApInstFlux() const {
526  return this->operator[](this->getTable()->getApFluxSlot().getMeasKey());
527  }
529  ndarray::Array<double, 1> getApInstFluxErr() const {
530  return this->operator[](this->getTable()->getApFluxSlot().getErrKey());
531  }
532 
534  ndarray::Array<double, 1> getModelInstFlux() const {
535  return this->operator[](this->getTable()->getModelFluxSlot().getMeasKey());
536  }
538  ndarray::Array<double, 1> getModelInstFluxErr() const {
539  return this->operator[](this->getTable()->getModelFluxSlot().getErrKey());
540  }
541 
543  ndarray::Array<double, 1> getGaussianInstFlux() const {
544  return this->operator[](this->getTable()->getGaussianFluxSlot().getMeasKey());
545  }
547  ndarray::Array<double, 1> getGaussianInstFluxErr() const {
548  return this->operator[](this->getTable()->getGaussianFluxSlot().getErrKey());
549  }
550 
552  ndarray::Array<double, 1> getCalibInstFlux() const {
553  return this->operator[](this->getTable()->getCalibFluxSlot().getMeasKey());
554  }
556  ndarray::Array<double, 1> getCalibInstFluxErr() const {
557  return this->operator[](this->getTable()->getCalibFluxSlot().getErrKey());
558  }
559 
560  ndarray::Array<double, 1> const getX() const {
561  return this->operator[](this->getTable()->getCentroidKey().getX());
562  }
563  ndarray::Array<double, 1> const getY() const {
564  return this->operator[](this->getTable()->getCentroidKey().getY());
565  }
566 
567  ndarray::Array<double, 1> const getIxx() const {
568  return this->operator[](this->getTable()->getShapeKey().getIxx());
569  }
570  ndarray::Array<double, 1> const getIyy() const {
571  return this->operator[](this->getTable()->getShapeKey().getIyy());
572  }
573  ndarray::Array<double, 1> const getIxy() const {
574  return this->operator[](this->getTable()->getShapeKey().getIxy());
575  }
576 
578  template <typename InputIterator>
579  static SourceColumnViewT make(std::shared_ptr<Table> const &table, InputIterator first,
580  InputIterator last) {
581  return SourceColumnViewT(BaseColumnView::make(table, first, last));
582  }
583 
584  SourceColumnViewT(SourceColumnViewT const &) = default;
585  SourceColumnViewT(SourceColumnViewT &&) = default;
586  SourceColumnViewT &operator=(SourceColumnViewT const &) = default;
587  SourceColumnViewT &operator=(SourceColumnViewT &&) = default;
588  ~SourceColumnViewT() = default;
589 
590 protected:
591  explicit SourceColumnViewT(BaseColumnView const &base) : ColumnViewT<RecordT>(base) {}
592 };
593 
595 
596 inline FluxSlotDefinition::MeasValue SourceRecord::getPsfInstFlux() const {
597  return this->get(getTable()->getPsfFluxSlot().getMeasKey());
598 }
599 
600 inline FluxSlotDefinition::ErrValue SourceRecord::getPsfInstFluxErr() const {
601  return this->get(getTable()->getPsfFluxSlot().getErrKey());
602 }
603 
604 inline bool SourceRecord::getPsfFluxFlag() const {
605  return this->get(getTable()->getPsfFluxSlot().getFlagKey());
606 }
607 
608 inline FluxSlotDefinition::MeasValue SourceRecord::getModelInstFlux() const {
609  return this->get(getTable()->getModelFluxSlot().getMeasKey());
610 }
611 
612 inline FluxSlotDefinition::ErrValue SourceRecord::getModelInstFluxErr() const {
613  return this->get(getTable()->getModelFluxSlot().getErrKey());
614 }
615 
616 inline bool SourceRecord::getModelFluxFlag() const {
617  return this->get(getTable()->getModelFluxSlot().getFlagKey());
618 }
619 
620 inline FluxSlotDefinition::MeasValue SourceRecord::getApInstFlux() const {
621  return this->get(getTable()->getApFluxSlot().getMeasKey());
622 }
623 
624 inline FluxSlotDefinition::ErrValue SourceRecord::getApInstFluxErr() const {
625  return this->get(getTable()->getApFluxSlot().getErrKey());
626 }
627 
628 inline bool SourceRecord::getApFluxFlag() const {
629  return this->get(getTable()->getApFluxSlot().getFlagKey());
630 }
631 
632 inline FluxSlotDefinition::MeasValue SourceRecord::getGaussianInstFlux() const {
633  return this->get(getTable()->getGaussianFluxSlot().getMeasKey());
634 }
635 
636 inline FluxSlotDefinition::ErrValue SourceRecord::getGaussianInstFluxErr() const {
637  return this->get(getTable()->getGaussianFluxSlot().getErrKey());
638 }
639 
640 inline bool SourceRecord::getGaussianFluxFlag() const {
641  return this->get(getTable()->getGaussianFluxSlot().getFlagKey());
642 }
643 
644 inline FluxSlotDefinition::MeasValue SourceRecord::getCalibInstFlux() const {
645  return this->get(getTable()->getCalibFluxSlot().getMeasKey());
646 }
647 
648 inline FluxSlotDefinition::ErrValue SourceRecord::getCalibInstFluxErr() const {
649  return this->get(getTable()->getCalibFluxSlot().getErrKey());
650 }
651 
652 inline bool SourceRecord::getCalibFluxFlag() const {
653  return this->get(getTable()->getCalibFluxSlot().getFlagKey());
654 }
655 
656 inline CentroidSlotDefinition::MeasValue SourceRecord::getCentroid() const {
657  return this->get(getTable()->getCentroidSlot().getMeasKey());
658 }
659 
660 inline CentroidSlotDefinition::ErrValue SourceRecord::getCentroidErr() const {
661  return this->get(getTable()->getCentroidSlot().getErrKey());
662 }
663 
664 inline bool SourceRecord::getCentroidFlag() const {
665  return this->get(getTable()->getCentroidSlot().getFlagKey());
666 }
667 
668 inline ShapeSlotDefinition::MeasValue SourceRecord::getShape() const {
669  return this->get(getTable()->getShapeSlot().getMeasKey());
670 }
671 
672 inline ShapeSlotDefinition::ErrValue SourceRecord::getShapeErr() const {
673  return this->get(getTable()->getShapeSlot().getErrKey());
674 }
675 
676 inline bool SourceRecord::getShapeFlag() const { return this->get(getTable()->getShapeSlot().getFlagKey()); }
677 
678 inline RecordId SourceRecord::getParent() const { return get(SourceTable::getParentKey()); }
679 inline void SourceRecord::setParent(RecordId id) { set(SourceTable::getParentKey(), id); }
680 inline double SourceRecord::getX() const { return get(getTable()->getCentroidKey().getX()); }
681 inline double SourceRecord::getY() const { return get(getTable()->getCentroidKey().getY()); }
682 inline double SourceRecord::getIxx() const { return get(getTable()->getShapeKey().getIxx()); }
683 inline double SourceRecord::getIyy() const { return get(getTable()->getShapeKey().getIyy()); }
684 inline double SourceRecord::getIxy() const { return get(getTable()->getShapeKey().getIxy()); }
685 
686 } // namespace table
687 } // namespace afw
688 } // namespace lsst
689 
690 #endif // !AFW_TABLE_Source_h_INCLUDED
FluxSlotDefinition const & getGaussianFluxSlot() const
Definition: Source.h:336
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:393
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:552
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:323
SortedCatalogT< SourceRecord const > ConstCatalog
Definition: Source.h:87
Helper struct that contains the information passed from BaseTable to BaseRecord at construction...
Definition: BaseTable.h:32
void defineCalibFlux(std::string const &name)
Set the measurement used for the CalibFlux slot.
Definition: Source.h:358
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:591
SourceColumnViewT< SourceRecord > ColumnView
Definition: Source.h:85
ShapeSlotDefinition const & getShapeSlot() const
Definition: Source.h:416
std::shared_ptr< Footprint > getFootprint() const
Definition: Source.h:102
FluxSlotDefinition const & getCalibFluxSlot() const
Definition: Source.h:349
void disconnectAliases()
Sever the connection between this schema and any others with which it shares aliases.
Definition: Schema.cc:729
STL namespace.
SortedCatalogT< Record > Catalog
Definition: Source.h:225
void defineGaussianFlux(std::string const &name)
Set the measurement used for the GaussianFlux slot.
Definition: Source.h:345
table::Key< int > id
Definition: Detector.cc:162
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:288
ItemVariant const * other
Definition: Schema.cc:56
SchemaMapper * mapper
Definition: SchemaMapper.cc:78
void definePsfFlux(std::string const &name)
Set the measurement used for the PsfFlux slot.
Definition: Source.h:306
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition: fits.h:297
std::string getCentroidDefinition() const
Return the name of the field used for the Centroid slot.
Definition: Source.h:384
ndarray::Array< double, 1 > const getY() const
Definition: Source.h:563
ndarray::Array< double, 1 > const getX() const
Definition: Source.h:560
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.
SourceRecord(ConstructionToken const &token, detail::RecordData &&data)
Constructor used by SourceTable.
Definition: Source.h:98
ndarray::Array< double, 1 > const getIxy() const
Definition: Source.h:573
ndarray::Array< double, 1 > getGaussianInstFluxErr() const
Get the uncertainty on the GaussianFlux slot measurement.
Definition: Source.h:547
ndarray::Array< double, 1 > getApInstFlux() const
Get the value of the ApFlux slot measurement.
Definition: Source.h:525
ndarray::Array< double, 1 > getGaussianInstFlux() const
Get the value of the GaussianFlux slot measurement.
Definition: Source.h:543
Table class that must contain a unique ID field and a celestial coordinate field. ...
Definition: Simple.h:102
A base class for image defects.
char * data
Definition: BaseRecord.cc:62
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:106
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:579
CentroidSlotDefinition::MeasKey getCentroidKey() const
Return the key used for the Centroid slot measurement value.
Definition: Source.h:400
table::Schema schema
Definition: Amplifier.cc:115
ndarray::Array< double, 1 > const getIxx() const
Definition: Source.h:567
bool hasShapeSlot() const
Return true if the Shape slot corresponds to a valid field.
Definition: Source.h:447
Key< U > key
Definition: Schema.cc:281
static Schema makeMinimalSchema()
Return a minimal schema for Source tables and records.
Definition: Source.h:262
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:293
ndarray::Array< double, 1 > getPsfInstFluxErr() const
Get the uncertainty on the PsfFlux slot measurement.
Definition: Source.h:520
SortedCatalogT< Record const > ConstCatalog
Definition: Source.h:226
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:319
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:221
static std::shared_ptr< SourceTable > make(Schema const &schema)
Construct a new table.
Definition: Source.h:248
Definition: __init__.py:1
Key< Flag > getCentroidFlagKey() const
Return the key used for the Centroid slot failure flag.
Definition: Source.h:414
CentroidSlotDefinition::ErrKey getCentroidErrKey() const
Return the key used for the Centroid slot uncertainty.
Definition: Source.h:407
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 specialization for Flag.
Definition: Flag.h:94
ndarray::Array< double, 1 > getModelInstFluxErr() const
Get the uncertainty on the ModelFlux slot measurement.
Definition: Source.h:538
void setFootprint(std::shared_ptr< Footprint > const &footprint)
Definition: Source.h:104
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:454
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:425
static Key< RecordId > getParentKey()
Key for the parent ID.
Definition: Source.h:277
std::shared_ptr< SourceTable > clone() const
Return a polymorphic deep copy of the table.
Definition: Source.h:280
FluxSlotDefinition const & getPsfFluxSlot() const
Definition: Source.h:297
void defineCentroid(std::string const &name)
Set the measurement used for the Centroid slot.
Definition: Source.h:371
double ErrValue
Type returned by accessing the slot uncertainty.
Definition: slots.h:76
FluxSlotDefinition const & getModelFluxSlot() const
Definition: Source.h:310
ndarray::Array< double, 1 > getApInstFluxErr() const
Get the uncertainty on the ApFlux slot measurement.
Definition: Source.h:529
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:516
SlotDefinition specialization for shapes.
Definition: slots.h:167
CentroidSlotDefinition const & getCentroidSlot() const
Definition: Source.h:362
ndarray::Array< double, 1 > const getIyy() const
Definition: Source.h:570
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:461
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:468
ndarray::Array< double, 1 > getModelInstFlux() const
Get the value of the ModelFlux slot measurement.
Definition: Source.h:534
void defineApFlux(std::string const &name)
Set the measurement used for the ApFlux slot.
Definition: Source.h:332
ndarray::Array< double, 1 > getCalibInstFluxErr() const
Get the uncertainty on the CalibFlux slot measurement.
Definition: Source.h:556
std::string getShapeDefinition() const
Return the name of the field used for the Shape slot.
Definition: Source.h:438
static bool checkSchema(Schema const &other)
Return true if the given schema is a valid SourceTable schema.
Definition: Source.h:274
SourceColumnViewT< SourceRecord > ColumnView
Definition: Source.h:224
std::shared_ptr< SourceRecord > makeRecord()
Default-construct an associated record.
Definition: Source.h:283
Eigen::Matrix< float, 2, 2 > ErrValue
Type returned by accessing the slot uncertainty.
Definition: slots.h:123