11 #include "lsst/afw/table/io/Persistable.cc" 33 : position(position_), color(color_) {}
72 Psf::Psf(
bool isFixed,
std::size_t capacity) : daf::
base::Citizen(typeid(this)), _isFixed(isFixed) {
73 _imageCache = std::make_unique<PsfCache>(capacity);
74 _kernelImageCache = std::make_unique<PsfCache>(capacity);
83 _isFixed(
other._isFixed),
84 _imageCache(
std::move(
other._imageCache)),
85 _kernelImageCache(
std::move(
other._kernelImageCache)) {}
90 unsigned int warpBuffer) {
95 if (irX.second != 0.0 || irY.second != 0.0) {
99 im->setXY0(irX.first + im->getX0(), irY.first + im->getY0());
111 result = std::make_shared<Image>(*
result,
true);
124 result = std::make_shared<Image>(*
result,
true);
132 return doComputeBBox(position, color);
141 return std::make_shared<math::FixedKernel>(*image);
148 return (*image)(-image->getX0(), -image->getY0());
154 return doComputeApertureFlux(radius, position, color);
160 return doComputeShape(position, color);
174 _imageCache->reserve(capacity);
175 _kernelImageCache->reserve(capacity);
An ellipse core with quadrupole moments as parameters.
static std::shared_ptr< T > dynamicCast(std::shared_ptr< Persistable > const &ptr)
Dynamically cast a shared_ptr.
virtual lsst::geom::Point2D getAveragePosition() const
Return the average position of the stars used to construct the Psf.
int positionToIndex(double pos)
Convert image position to nearest integer index.
std::size_t getCacheCapacity() const
Return the capacity of the caches.
lsst::geom::Point2D const position
std::size_t operator()(lsst::afw::detection::detail::PsfCacheKey const &key) const
std::shared_ptr< math::Kernel const > getLocalKernel(lsst::geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
Return a FixedKernel corresponding to the Psf image at the given point.
ImageOwnerEnum
Enum passed to computeImage and computeKernelImage to determine image ownership.
bool isIndeterminate() const noexcept
Whether the color is the special value that indicates that it is unspecified.
std::shared_ptr< Image > computeImage(lsst::geom::Point2D position=makeNullPoint(), image::Color color=image::Color(), ImageOwnerEnum owner=COPY) const
Return an Image of the PSF, in a form that can be compared directly with star images.
double computeApertureFlux(double radius, lsst::geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
Compute the "flux" of the Psf model within a circular aperture of the given radius.
image::Color getAverageColor() const
Return the average Color of the stars used to construct the Psf.
Point< double, 2 > Point2D
friend std::ostream & operator<<(std::ostream &os, PsfCacheKey const &key)
double computePeak(lsst::geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
Return the peak value of the PSF image.
A base class for image defects.
PsfCacheKey(lsst::geom::Point2D const &position_, image::Color color_=image::Color())
bool operator==(PsfCacheKey const &other) const
void setCacheCapacity(std::size_t capacity)
Set the capacity of the caches.
static std::shared_ptr< Image > recenterKernelImage(std::shared_ptr< Image > im, lsst::geom::Point2D const &position, std::string const &warpAlgorithm="lanczos5", unsigned int warpBuffer=5)
Helper function for Psf::doComputeImage(): converts a kernel image (centered at (0,0) when xy0 is taken into account) to an image centered at position when xy0 is taken into account.
std::shared_ptr< ImageT > offsetImage(ImageT const &image, float dx, float dy, std::string const &algorithmName="lanczos5", unsigned int buffer=0)
Return an image offset by (dx, dy) using the specified algorithm.
Citizen(const std::type_info &)
std::size_t hashCombine(std::size_t seed)
Combine hashes.
std::shared_ptr< Image > computeKernelImage(lsst::geom::Point2D position=makeNullPoint(), image::Color color=image::Color(), ImageOwnerEnum owner=COPY) const
Return an Image of the PSF, in a form suitable for convolution.
ItemVariant const * other
An internal image will be returned without copying.
Describe the colour of a source.
A polymorphic base class for representing an image's Point Spread Function.
lsst::geom::Box2I computeBBox(lsst::geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
Return the bounding box of the image returned by computeKernelImage()
An integer coordinate rectangle.
The image will be copied before returning; caller will own it.
geom::ellipses::Quadrupole computeShape(lsst::geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
Compute the ellipse corresponding to the second moments of the Psf.