File ListMatch.h

Combinatorial searches for linear transformations to go from list1 to list2.

The following routines search a geometrical transformation that make two lists of stars to match geometrically as well as possible. They are used either to match two images of the same sky area, or an image with a catalogue. They assume that fluxes assigned to stars are actual fluxes, i.e. the brighter the star, the higher the flux. They however only rely on flux ordering, not values.

namespace lsst

Class for a simple mapping implementing a generic AstrometryTransform.

Remove all non-astronomical counts from the Chunk Exposure’s pixels.

Forward declarations for lsst::utils::Cache

For details on the Cache class, see the Cache.h file.

It uses a template rather than a pointer so that the derived classes can use the specifics of the transform. The class simplePolyMapping overloads a few routines.

A base class for image defects

Numeric constants used by the Integrate.h integrator routines.

Compute Image Statistics

Note

Gauss-Kronrod-Patterson quadrature coefficients for use in quadpack routine qng. These coefficients were calculated with 101 decimal digit arithmetic by L. W. Fullerton, Bell Labs, Nov 1981.

Note

The Statistics class itself can only handle lsst::afw::image::MaskedImage() types. The philosophy has been to handle other types by making them look like lsst::afw::image::MaskedImage() and reusing that code. Users should have no need to instantiate a Statistics object directly, but should use the overloaded makeStatistics() factory functions.

namespace jointcal

Functions

std::unique_ptr<StarMatchList> matchSearchRotShift(BaseStarList &list1, BaseStarList &list2, const MatchConditions &conditions)

searches a geometrical transformation that goes from list1 to list2.

The found transformation is a field of the returned object, as well as the star pairs (the matches) that were constructed. (see StarMatchList class definition for more details). The various cuts are contained in conditions (see listmatch.h) for its contents. This routine searches a transformation that involves a shift and a rotation.

std::unique_ptr<StarMatchList> matchSearchRotShiftFlip(BaseStarList &list1, BaseStarList &list2, const MatchConditions &conditions)

same as above but searches also a flipped solution.

std::unique_ptr<StarMatchList> listMatchCollect(const BaseStarList &list1, const BaseStarList &list2, const AstrometryTransform *guess, const double maxDist)

assembles star matches.

It picks stars in list1, transforms them through guess, and collects closest star in list2, and builds a match if closer than maxDist).

std::unique_ptr<StarMatchList> listMatchCollect(const BaseStarList &list1, const BaseStarList &list2, const double maxDist)

same as before except that the transform is the identity

std::unique_ptr<AstrometryTransformLinear> listMatchupShift(const BaseStarList &list1, const BaseStarList &list2, const AstrometryTransform &transform, double maxShift, double binSize = 0)

searches for a 2 dimensional shift using a very crude histogram method.

std::unique_ptr<AstrometryTransform> listMatchCombinatorial(const BaseStarList &list1, const BaseStarList &list2, const MatchConditions &conditions = MatchConditions())
std::unique_ptr<AstrometryTransform> listMatchRefine(const BaseStarList &list1, const BaseStarList &list2, std::unique_ptr<AstrometryTransform> transform, const int maxOrder = 3)
struct MatchConditions
#include <ListMatch.h>

Parameters to be provided to combinatorial searches.

Public Functions

MatchConditions()
double minSizeRatio() const
double maxSizeRatio() const

Public Members

int nStarsList1
int nStarsList2
int maxTrialCount
double nSigmas
double maxShiftX
double maxShiftY
double sizeRatio
double deltaSizeRatio
double minMatchRatio
int printLevel
int algorithm