LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lsst::meas::base::ApertureFluxTransform Class Reference

Measurement transformation for aperture fluxes. More...

#include <ApertureFlux.h>

Inheritance diagram for lsst::meas::base::ApertureFluxTransform:
lsst::meas::base::BaseTransform

Public Types

typedef ApertureFluxControl Control
 

Public Member Functions

 ApertureFluxTransform (Control const &ctrl, std::string const &name, afw::table::SchemaMapper &mapper)
 
virtual void operator() (afw::table::SourceCatalog const &inputCatalog, afw::table::BaseCatalog &outputCatalog, afw::geom::SkyWcs const &wcs, afw::image::PhotoCalib const &photoCalib) const
 

Protected Member Functions

void checkCatalogSize (afw::table::BaseCatalog const &cat1, afw::table::BaseCatalog const &cat2) const
 Ensure that catalogs have the same size. More...
 

Protected Attributes

std::string _name
 

Detailed Description

Measurement transformation for aperture fluxes.

Transforms instFluxes with associated errors to magnitudes. Correctly handles multiple apertures. Flags are propagated from input to output.

Definition at line 242 of file ApertureFlux.h.

Member Typedef Documentation

◆ Control

Definition at line 244 of file ApertureFlux.h.

Constructor & Destructor Documentation

◆ ApertureFluxTransform()

lsst::meas::base::ApertureFluxTransform::ApertureFluxTransform ( Control const &  ctrl,
std::string const &  name,
afw::table::SchemaMapper mapper 
)

Definition at line 256 of file ApertureFlux.cc.

258  : BaseTransform(name), _ctrl(ctrl) {
259  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
261  FlagDefinition const &flag = ApertureFluxAlgorithm::getFlagDefinitions()[j];
262  if (_ctrl.radii[i] > _ctrl.maxSincRadius &&
264  continue;
265  }
266  mapper.addMapping(
267  mapper.getInputSchema()
268  .find<afw::table::Flag>(
269  (boost::format("%s_%s") %
270  ApertureFluxAlgorithm::makeFieldPrefix(name, _ctrl.radii[i]) % flag.name)
271  .str())
272  .key);
273  }
274  _magKeys.push_back(MagResultKey::addFields(
275  mapper.editOutputSchema(), ApertureFluxAlgorithm::makeFieldPrefix(name, _ctrl.radii[i])));
276  }
277 }
table::Key< std::string > name
Definition: Amplifier.cc:116
SchemaMapper * mapper
Definition: SchemaMapper.cc:71
static FlagDefinitionList const & getFlagDefinitions()
Definition: ApertureFlux.cc:49
static FlagDefinition const SINC_COEFFS_TRUNCATED
Definition: ApertureFlux.h:87
static std::string makeFieldPrefix(std::string const &name, double radius)
Construct an appropriate prefix for table fields.
Definition: ApertureFlux.cc:57
double maxSincRadius
"Maximum radius (in pixels) for which the sinc algorithm should be used instead of the " "faster naiv...
Definition: ApertureFlux.h:58
std::vector< double > radii
"Radius (in pixels) of apertures." ;
Definition: ApertureFlux.h:53
BaseTransform(std::string const &name)
Definition: Transform.h:88
std::size_t size() const
return the current size (number of defined elements) of the collection
Definition: FlagHandler.h:125
static MagResultKey addFields(afw::table::Schema &schema, std::string const &name)
Add a pair of _mag, _magErr fields to a Schema, and return a MagResultKey that points to them.
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
T size(T... args)

Member Function Documentation

◆ checkCatalogSize()

void lsst::meas::base::BaseTransform::checkCatalogSize ( afw::table::BaseCatalog const &  cat1,
afw::table::BaseCatalog const &  cat2 
) const
inlineprotectedinherited

Ensure that catalogs have the same size.

Parameters
[in]cat1Catalog for comparison
[in]cat2Catalog for comparison
Exceptions
LengthErrorCatalog sizes do not match

Definition at line 102 of file Transform.h.

102  {
103  if (cat1.size() != cat2.size()) {
104  throw LSST_EXCEPT(pex::exceptions::LengthError, "Catalog size mismatch");
105  }
106  }
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ operator()()

void lsst::meas::base::ApertureFluxTransform::operator() ( afw::table::SourceCatalog const &  inputCatalog,
afw::table::BaseCatalog outputCatalog,
afw::geom::SkyWcs const &  wcs,
afw::image::PhotoCalib const &  photoCalib 
) const
virtual

Implements lsst::meas::base::BaseTransform.

Definition at line 279 of file ApertureFlux.cc.

281  {
282  checkCatalogSize(inputCatalog, outputCatalog);
283  std::vector<FluxResultKey> instFluxKeys;
284  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
285  instFluxKeys.push_back(FluxResultKey(
286  inputCatalog.getSchema()[ApertureFluxAlgorithm::makeFieldPrefix(_name, _ctrl.radii[i])]));
287  }
288  afw::table::SourceCatalog::const_iterator inSrc = inputCatalog.begin();
289  afw::table::BaseCatalog::iterator outSrc = outputCatalog.begin();
290  {
291  for (; inSrc != inputCatalog.end() && outSrc != outputCatalog.end(); ++inSrc, ++outSrc) {
292  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
293  FluxResult instFluxResult = instFluxKeys[i].get(*inSrc);
294  _magKeys[i].set(*outSrc, photoCalib.instFluxToMagnitude(instFluxResult.instFlux,
295  instFluxResult.instFluxErr));
296  }
297  }
298  }
299 }
CatalogIterator< typename Internal::iterator > iterator
Definition: Catalog.h:111
void checkCatalogSize(afw::table::BaseCatalog const &cat1, afw::table::BaseCatalog const &cat2) const
Ensure that catalogs have the same size.
Definition: Transform.h:102
T push_back(T... args)
Key< int > photoCalib
Definition: Exposure.cc:67

Member Data Documentation

◆ _name

std::string lsst::meas::base::BaseTransform::_name
protectedinherited

Definition at line 107 of file Transform.h.


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