LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Private Attributes | List of all members
lsst::meas::base::ApertureFluxTransform Class Reference

#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::image::Wcs const &wcs, afw::image::Calib const &calib) const
 
- Public Member Functions inherited from lsst::meas::base::BaseTransform
 BaseTransform (std::string const &name)
 
virtual ~BaseTransform ()
 

Private Attributes

std::vector< MagResultKey_magKeys
 
Control _ctrl
 

Additional Inherited Members

- Protected Member Functions inherited from lsst::meas::base::BaseTransform
void checkCatalogSize (afw::table::BaseCatalog const &cat1, afw::table::BaseCatalog const &cat2) const
 Ensure that catalogs have the same size. More...
 
- Protected Attributes inherited from lsst::meas::base::BaseTransform
std::string _name
 

Detailed Description

Measurement transformation for aperture fluxes

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

Definition at line 269 of file ApertureFlux.h.

Member Typedef Documentation

Definition at line 271 of file ApertureFlux.h.

Constructor & Destructor Documentation

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

Definition at line 323 of file ApertureFlux.cc.

327  :
329  _ctrl(ctrl)
330 {
331  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
332  for (auto flag = getFlagDefinitions().begin();
333  flag < getFlagDefinitions().begin() + (_ctrl.radii[i] <= _ctrl.maxSincRadius ? 3 : 2); flag++) {
334  mapper.addMapping(mapper.getInputSchema().find<afw::table::Flag>((boost::format("%s_%s") %
336  flag->name).str()).key);
337  }
338  _magKeys.push_back(MagResultKey::addFields(mapper.editOutputSchema(),
340  }
341 }
table::Key< std::string > name
Definition: ApCorrMap.cc:71
BaseTransform(std::string const &name)
Definition: Transform.h:85
double maxSincRadius
&quot;Maximum radius (in pixels) for which the sinc algorithm should be used instead of the &quot; &quot;faster naiv...
Definition: ApertureFlux.h:56
static std::string makeFieldPrefix(std::string const &name, double radius)
Definition: ApertureFlux.cc:62
static MagResultKey addFields(afw::table::Schema &schema, std::string const &name)
std::vector< MagResultKey > _magKeys
Definition: ApertureFlux.h:288
std::vector< double > radii
&quot;Radius (in pixels) of apertures.&quot; ;
Definition: ApertureFlux.h:50

Member Function Documentation

void lsst::meas::base::ApertureFluxTransform::operator() ( afw::table::SourceCatalog const &  inputCatalog,
afw::table::BaseCatalog outputCatalog,
afw::image::Wcs const &  wcs,
afw::image::Calib const &  calib 
) const
virtual

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

Definition at line 343 of file ApertureFlux.cc.

348  {
349  checkCatalogSize(inputCatalog, outputCatalog);
350  std::vector<FluxResultKey> fluxKeys;
351  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
352  fluxKeys.push_back(FluxResultKey(inputCatalog.getSchema()[
354  }
355  afw::table::SourceCatalog::const_iterator inSrc = inputCatalog.begin();
356  afw::table::BaseCatalog::iterator outSrc = outputCatalog.begin();
357  {
358  // While noThrow is in scope, converting a negative flux to a magnitude
359  // returns NaN rather than throwing.
360  NoThrowOnNegativeFluxContext noThrow;
361  for (; inSrc != inputCatalog.end() && outSrc != outputCatalog.end(); ++inSrc, ++outSrc) {
362  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
363  FluxResult fluxResult = fluxKeys[i].get(*inSrc);
364  _magKeys[i].set(*outSrc, calib.getMagnitude(fluxResult.flux, fluxResult.fluxSigma));
365  }
366  }
367  }
368 }
void checkCatalogSize(afw::table::BaseCatalog const &cat1, afw::table::BaseCatalog const &cat2) const
Ensure that catalogs have the same size.
Definition: Transform.h:101
static std::string makeFieldPrefix(std::string const &name, double radius)
Definition: ApertureFlux.cc:62
Base::const_iterator const_iterator
Definition: SortedCatalog.h:49
std::vector< MagResultKey > _magKeys
Definition: ApertureFlux.h:288
std::vector< double > radii
&quot;Radius (in pixels) of apertures.&quot; ;
Definition: ApertureFlux.h:50
CatalogIterator< typename Internal::iterator > iterator
Definition: Catalog.h:107

Member Data Documentation

Control lsst::meas::base::ApertureFluxTransform::_ctrl
private

Definition at line 289 of file ApertureFlux.h.

std::vector<MagResultKey> lsst::meas::base::ApertureFluxTransform::_magKeys
private

Definition at line 288 of file ApertureFlux.h.


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