LSSTApplications  20.0.0
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lsst::meas::base::SdssCentroidTransform Class Reference

#include <SdssCentroid.h>

Inheritance diagram for lsst::meas::base::SdssCentroidTransform:
lsst::meas::base::CentroidTransform lsst::meas::base::BaseTransform

Public Types

typedef SdssCentroidControl Control
 

Public Member Functions

 SdssCentroidTransform (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

Definition at line 98 of file SdssCentroid.h.

Member Typedef Documentation

◆ Control

Definition at line 100 of file SdssCentroid.h.

Constructor & Destructor Documentation

◆ SdssCentroidTransform()

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

Definition at line 508 of file SdssCentroid.cc.

512  FlagDefinition const &flag = SdssCentroidAlgorithm::getFlagDefinitions()[i];
513  if (flag == SdssCentroidAlgorithm::FAILURE) continue;
514  if (mapper.getInputSchema().getNames().count(mapper.getInputSchema().join(name, flag.name)) == 0)
515  continue;
516  afw::table::Key<afw::table::Flag> key =
517  mapper.getInputSchema().find<afw::table::Flag>(name + "_" + flag.name).key;
518  mapper.addMapping(key);
519  }
520 }

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  }

◆ operator()()

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

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

Definition at line 144 of file CentroidUtilities.cc.

146  {
147  checkCatalogSize(inputCatalog, outputCatalog);
148  CentroidResultKey centroidResultKey(inputCatalog.getSchema()[_name]);
149 
150  afw::table::SourceCatalog::const_iterator inSrc = inputCatalog.begin();
151  afw::table::BaseCatalog::iterator outSrc = outputCatalog.begin();
152 
153  for (; inSrc != inputCatalog.end() && outSrc != outputCatalog.end(); ++inSrc, ++outSrc) {
154  CentroidResult centroidResult = centroidResultKey.get(*inSrc);
155 
156  _coordKey.set(*outSrc, wcs.pixelToSky(centroidResult.getCentroid()));
157 
158  if (centroidResultKey.getCentroidErr().isValid()) {
159  CentroidCov centroidCov = centroidResult.getCentroidErr();
160  if (!(std::isnan(centroidCov(0, 0)) || std::isnan(centroidCov(1, 1)))) {
161  auto transform = wcs.linearizePixelToSky(centroidResult.getCentroid(), geom::radians)
162  .getLinear()
163  .getMatrix();
164  _coordErrKey.set(*outSrc, (transform * centroidResult.getCentroidErr().cast<double>() *
165  transform.transpose())
166  .cast<ErrElement>());
167  }
168  }
169  }
170 }

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:
wcs
table::Key< table::Array< std::uint8_t > > wcs
Definition: SkyWcs.cc:71
lsst::meas::base::CentroidTransform::CentroidTransform
CentroidTransform(std::string const &name, afw::table::SchemaMapper &mapper)
Definition: CentroidUtilities.cc:121
lsst::meas::base::SdssCentroidAlgorithm::FAILURE
static FlagDefinition const FAILURE
Definition: SdssCentroid.h:73
lsst::afw::geom.transform.transformContinued.name
string name
Definition: transformContinued.py:32
std::isnan
T isnan(T... args)
lsst::meas::base::BaseTransform::_name
std::string _name
Definition: Transform.h:107
lsst::meas::base::BaseTransform::checkCatalogSize
void checkCatalogSize(afw::table::BaseCatalog const &cat1, afw::table::BaseCatalog const &cat2) const
Ensure that catalogs have the same size.
Definition: Transform.h:102
lsst::afw::table::CovarianceMatrixKey::set
void set(BaseRecord &record, Eigen::Matrix< T, N, N > const &value) const override
Set a covariance matrix in the given record (uses only the lower triangle of the given matrix)
Definition: aggregates.cc:278
lsst::afw::table::CatalogT< BaseRecord >::iterator
CatalogIterator< typename Internal::iterator > iterator
Definition: Catalog.h:110
lsst::meas::base::CentroidCov
Eigen::Matrix< ErrElement, 2, 2, Eigen::DontAlign > CentroidCov
Definition: constants.h:59
LSST_EXCEPT
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
lsst::meas::base::FlagDefinitionList::size
std::size_t size() const
return the current size (number of defined elements) of the collection
Definition: FlagHandler.h:125
lsst::meas::base::ErrElement
float ErrElement
Definition: constants.h:55
key
Key< U > key
Definition: Schema.cc:281
mapper
SchemaMapper * mapper
Definition: SchemaMapper.cc:78
lsst::geom::radians
constexpr AngleUnit radians
constant with units of radians
Definition: Angle.h:108
transform
table::Key< int > transform
Definition: TransformMap.cc:299
std::size_t
lsst::afw::table::CoordKey::set
void set(BaseRecord &record, lsst::geom::SpherePoint const &value) const override
Set an lsst::geom::SpherePoint in the given record.
Definition: aggregates.cc:93
lsst::meas::base::SdssCentroidAlgorithm::getFlagDefinitions
static FlagDefinitionList const & getFlagDefinitions()
Definition: SdssCentroid.cc:52