LSSTApplications  17.0+11,17.0+34,17.0+56,17.0+57,17.0+59,17.0+7,17.0-1-g377950a+33,17.0.1-1-g114240f+2,17.0.1-1-g4d4fbc4+28,17.0.1-1-g55520dc+49,17.0.1-1-g5f4ed7e+52,17.0.1-1-g6dd7d69+17,17.0.1-1-g8de6c91+11,17.0.1-1-gb9095d2+7,17.0.1-1-ge9fec5e+5,17.0.1-1-gf4e0155+55,17.0.1-1-gfc65f5f+50,17.0.1-1-gfc6fb1f+20,17.0.1-10-g87f9f3f+1,17.0.1-11-ge9de802+16,17.0.1-16-ga14f7d5c+4,17.0.1-17-gc79d625+1,17.0.1-17-gdae4c4a+8,17.0.1-2-g26618f5+29,17.0.1-2-g54f2ebc+9,17.0.1-2-gf403422+1,17.0.1-20-g2ca2f74+6,17.0.1-23-gf3eadeb7+1,17.0.1-3-g7e86b59+39,17.0.1-3-gb5ca14a,17.0.1-3-gd08d533+40,17.0.1-30-g596af8797,17.0.1-4-g59d126d+4,17.0.1-4-gc69c472+5,17.0.1-6-g5afd9b9+4,17.0.1-7-g35889ee+1,17.0.1-7-gc7c8782+18,17.0.1-9-gc4bbfb2+3,w.2019.22
LSSTDataManagementBasePackage
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 254 of file ApertureFlux.cc.

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

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 277 of file ApertureFlux.cc.

279  {
280  checkCatalogSize(inputCatalog, outputCatalog);
281  std::vector<FluxResultKey> instFluxKeys;
282  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
283  instFluxKeys.push_back(FluxResultKey(
284  inputCatalog.getSchema()[ApertureFluxAlgorithm::makeFieldPrefix(_name, _ctrl.radii[i])]));
285  }
286  afw::table::SourceCatalog::const_iterator inSrc = inputCatalog.begin();
287  afw::table::BaseCatalog::iterator outSrc = outputCatalog.begin();
288  {
289  for (; inSrc != inputCatalog.end() && outSrc != outputCatalog.end(); ++inSrc, ++outSrc) {
290  for (std::size_t i = 0; i < _ctrl.radii.size(); ++i) {
291  FluxResult instFluxResult = instFluxKeys[i].get(*inSrc);
292  _magKeys[i].set(*outSrc, photoCalib.instFluxToMagnitude(instFluxResult.instFlux,
293  instFluxResult.instFluxErr));
294  }
295  }
296  }
297 }
T push_back(T... args)
static std::string makeFieldPrefix(std::string const &name, double radius)
Construct an appropriate prefix for table fields.
Definition: ApertureFlux.cc:57
T size(T... args)
STL class.
void checkCatalogSize(afw::table::BaseCatalog const &cat1, afw::table::BaseCatalog const &cat2) const
Ensure that catalogs have the same size.
Definition: Transform.h:102
std::vector< double > radii
"Radius (in pixels) of apertures." ;
Definition: ApertureFlux.h:53
CatalogIterator< typename Internal::iterator > iterator
Definition: Catalog.h:110

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: