File FastFinder.h¶
Fast locator in starlists.
-
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
-
class
FastFinder
- #include <FastFinder.h>
Fast locator in starlists.
This is an auxillary class for matching objects from starlists. It allows to locate rapidly the closest objects from a given position. The very simple strategy is to sort objects according to 1 coordinate x, and to build an index that allows to select the objects with the x coordinate inside an interval. Then every slice in x is sorted according to y, which enables a fast scan inside a x slice. listMatchCollect takes about 10ms (PC 450 MHz, optimized “-O4”) for a match between lists of about 2000 objects each, which is fast enough for our needs. The same “locator” is used in listMatchupShift, to avoid scanning the whole input lists. Timing on listMatchCollect and listMatchupShift indicates a gain in speed by more than one order of magnitude after implementation of this FastFinder.
Public Functions
-
FastFinder
(const BaseStarList &list, const unsigned nXSlice = 100) Constructor.
-
std::shared_ptr<const BaseStar> lsst::jointcal::FastFinder::findClosest(const Point & where, const double maxDist, bool(*SkipIt)(const BaseStar &) = nullptr) const
Find the closest with some rejection capability.
-
std::shared_ptr<const BaseStar> lsst::jointcal::FastFinder::secondClosest(const Point & where, const double maxDist, std::shared_ptr< const BaseStar > & closest, bool(*SkipIt)(const BaseStar &) = nullptr) const
-
void
dump
() const mostly for debugging
-
void
findRangeInSlice
(const int iSlice, const double yStart, const double yEnd, pstar &start, pstar &end) const
-
pstar
locateYStart
(pstar begin, pstar end, double yVal) const
-
pstar
locateYEnd
(pstar begin, pstar end, double yVal) const
Public Members
-
decltype(stars) typedef ::value_type lsst::jointcal::FastFinder::stars_element
-
decltype(stars) typedef ::const_iterator lsst::jointcal::FastFinder::pstar
-
const BaseStarList
baselist
-
unsigned
count
-
unsigned
nslice
-
std::vector<unsigned>
index
-
double
xmin
-
double
xmax
-
double
xstep
-
class
Iterator
- #include <FastFinder.h>
Iterator meant to traverse objects within some limiting distance. Initializer is beginScan and end condition is (*it == NULL). Used by findClosest & co.
Public Functions
-
void
check
() const
-
Iterator
(const FastFinder &f, const Point &where, double maxDist)
-
void
operator++
()
-
stars_element
operator*
() const
Public Members
-
const FastFinder &
finder
-
int
currentSlice
-
int
endSlice
-
double
yStart
-
double
yEnd
-
pstar
current
-
pstar
pend
-
pstar
null_value
-
void
-
-
class