29 #include "lsst/afw/table/io/Persistable.cc" 45 :
Kernel(width, height, kernelFunction.getNParameters(), spatialFunction),
53 os <<
"kernelFunction.getNParameters() = " << kernelFunction.
getNParameters()
54 <<
" != " << spatialFunctionList.
size() <<
" = " 55 <<
"spatialFunctionList.size()";
68 retPtr->setCtr(this->
getCtr());
97 os << prefix <<
"AnalyticKernel:" <<
std::endl;
118 Pixel const pixelVal = (*_kernelFunctionPtr)(fx, fy);
124 if (doNormalize && (imSum != 1)) {
146 explicit AnalyticKernelPersistenceHelper(
int nSpatialFunctions)
147 :
Kernel::PersistenceHelper(nSpatialFunctions),
149 "kernelfunction",
"archive ID for analytic function used to produce kernel images")) {}
151 explicit AnalyticKernelPersistenceHelper(table::Schema
const &schema_)
163 AnalyticKernelPersistenceHelper
const keys(catalogs.
front().getSchema());
168 if (
keys.spatialFunctions.isValid()) {
169 result = std::make_shared<AnalyticKernel>(record.get(
keys.dimensions.getX()),
170 record.get(
keys.dimensions.getY()), *kernelFunction,
171 keys.readSpatialFunctions(archive, record));
173 result = std::make_shared<AnalyticKernel>(record.get(
keys.dimensions.getX()),
174 record.get(
keys.dimensions.getY()), *kernelFunction);
176 result->setCtr(record.get(
keys.center));
185 std::string getAnalyticKernelPersistenceName() {
return "AnalyticKernel"; }
int getHeight() const
Return the Kernel's height.
std::vector< double > getKernelParameters() const override
Return the current kernel parameters.
unsigned int getNParameters() const noexcept
Return the number of function parameters.
int put(Persistable const *obj, bool permissive=false)
Save an object to the archive and return a unique ID that can be used to retrieve it from an InputArc...
An object passed to Persistable::write to allow it to persist itself.
void setKernelParameter(unsigned int ind, double value) const override
Set one kernel parameter.
int getHeight() const
Return the number of rows in the image.
A base class for factory classes used to reconstruct objects from records.
double doComputeImage(lsst::afw::image::Image< Pixel > &image, bool doNormalize) const override
Low-level version of computeImage.
_view_t::x_iterator x_iterator
An iterator for traversing the pixels in a row.
std::string toString(std::string const &prefix="") const override
Return a string representation of the kernel.
void setXY0(lsst::geom::Point2I const origin)
Set the ImageBase's origin.
std::string getPersistenceName() const override
Return the unique name used to persist this object and look up its factory.
A Function taking two arguments.
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y'th row.
std::shared_ptr< Kernel > resized(int width, int height) const override
Return a pointer to a clone with specified kernel dimensions.
bool isSpatiallyVarying() const
Return true iff the kernel is spatially varying (has a spatial function)
void write(OutputArchiveHandle &handle) const override
Write the object to one or more catalogs.
KernelFunctionPtr _kernelFunctionPtr
A base class for image defects.
Reports when the result of an arithmetic operation is too large for the destination type...
#define LSST_ARCHIVE_ASSERT(EXPR)
An assertion macro used to validate the structure of an InputArchive.
lsst::geom::Point2I getCtr() const
Return index of kernel's center.
void setKernelParametersFromSpatialModel(double x, double y) const
Set the kernel parameters from the spatial model (if any).
int getWidth() const
Return the Kernel's width.
lsst::geom::Extent2I const getDimensions() const
Return the Kernel's dimensions (width, height)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
A vector of catalogs used by Persistable.
Factory(std::string const &name)
Base class for all records.
table::Key< int > kernelFunction
AnalyticKernel()
Construct an empty spatially invariant AnalyticKernel of size 0x0.
std::vector< SpatialFunctionPtr > _spatialFunctionList
int getWidth() const
Return the number of columns in the image.
double computeImage(lsst::afw::image::Image< Pixel > &image, bool doNormalize, double x=0.0, double y=0.0) const
Compute an image (pixellized representation of the kernel) in place.
Kernel()
Construct a null Kernel of size 0,0.
Reports invalid arguments.
std::shared_ptr< afw::table::io::Persistable > read(InputArchive const &archive, CatalogVector const &catalogs) const override
Construct a new object from the given InputArchive and vector of catalogs.
lsst::geom::Extent2I getDimensions() const
Return the image's size; useful for passing to constructors.
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects...
Kernels are used for convolution with MaskedImages and (eventually) Images.
double indexToPosition(double ind, lsst::afw::image::xOrY const xy) const
Convert image index to image position.
std::shared_ptr< Kernel > clone() const override
Return a pointer to a deep copy of this kernel.
virtual std::string toString(std::string const &prefix="") const
Return a string representation of the kernel.
virtual KernelFunctionPtr getKernelFunction() const
Get a deep copy of the kernel function.