LSSTApplications
20.0.0
LSSTDataManagementBasePackage
|
Go to the documentation of this file.
27 #include "boost/format.hpp"
30 #pragma warning(disable : 444)
32 #include "boost/archive/text_oarchive.hpp"
58 Kernel::Kernel() : _spatialFunctionList(), _width(0), _height(0), _ctrX(0), _ctrY(0), _nKernelParams(0) {}
61 : _spatialFunctionList(),
64 _ctrX((width - 1) / 2),
65 _ctrY((height - 1) / 2),
66 _nKernelParams(nKernelParams) {
67 if ((width < 1) || (height < 1)) {
69 os <<
"kernel height = " << height <<
" and/or width = " << width <<
" < 1";
75 if (nKernelParams == 0) {
78 for (
unsigned int ii = 0; ii < nKernelParams; ++ii) {
86 if (
image.getDimensions() != this->getDimensions()) {
88 os <<
"image dimensions = ( " <<
image.getWidth() <<
", " <<
image.getHeight() <<
") != ("
92 image.setXY0(-_ctrX, -_ctrY);
104 _nKernelParams(spatialFunctionList.size()) {
105 if ((width < 1) || (height < 1)) {
107 os <<
"kernel height = " << height <<
" and/or width = " << width <<
" < 1";
110 for (
unsigned int ii = 0; ii < spatialFunctionList.
size(); ++ii) {
122 if (params.size() != nKernelParams) {
125 (
boost::format(
"params has %d entries instead of %d") % params.size() % nKernelParams).str());
128 for (
unsigned int ii = 0; ii < nKernelParams; ++ii) {
129 if (params[ii].size() != nSpatialParams) {
131 (
boost::format(
"params[%d] has %d entries instead of %d") % ii %
132 params[ii].size() % nSpatialParams)
137 if (nSpatialParams > 0) {
138 for (
unsigned int ii = 0; ii < nKernelParams; ++ii) {
149 *paramIter = (*(*funcIter))(
x,
y);
170 spFuncCopyList.
push_back((**spFuncIter).clone());
172 return spFuncCopyList;
187 <<
") in one or both dimensions";
212 #if 0 // This fails to compile with icc
215 boost::archive::text_oarchive oa(
os);
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
void setKernelParametersFromSpatialModel(double x, double y) const
Set the kernel parameters from the spatial model (if any).
virtual void setKernelParameter(unsigned int ind, double value) const
Set one kernel parameter.
int getNSpatialParameters() const
Return the number of spatial parameters (0 if not spatially varying)
lsst::geom::Extent2I const getDimensions() const
Return the Kernel's dimensions (width, height)
bool isSpatiallyVarying() const
Return true iff the kernel is spatially varying (has a spatial function)
int getHeight() const
Return the Kernel's height.
Kernel has only one non-zero pixel.
virtual std::shared_ptr< Function2< ReturnT > > clone() const =0
Return a pointer to a deep copy of this function.
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
lsst::geom::Box2I growBBox(lsst::geom::Box2I const &bbox) const
Given a bounding box for pixels one wishes to compute by convolving an image with this kernel,...
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.
lsst::geom::Point2I getCtr() const
Return index of kernel's center.
virtual std::string toString(std::string const &prefix="") const
Return a string representation of the kernel.
virtual double doComputeImage(lsst::afw::image::Image< Pixel > &image, bool doNormalize) const =0
Low-level version of computeImage.
a class used in function calls to indicate that no Function2 is being provided
lsst::geom::Box2I shrinkBBox(lsst::geom::Box2I const &bbox) const
Given a bounding box for an image one wishes to convolve with this kernel, return the bounding box fo...
int getWidth() const
Return the Kernel's width.
A base class for image defects.
deltafunction_kernel_tag deltafunction_kernel_tag_
Used as default value in argument lists.
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
std::vector< SpatialFunctionPtr > _spatialFunctionList
generic_kernel_tag generic_kernel_tag_
Used as default value in argument lists.
virtual std::vector< double > getKernelParameters() const
Return the current kernel parameters.
Reports invalid arguments.
static std::shared_ptr< T > dynamicCast(std::shared_ptr< Persistable > const &ptr)
Dynamically cast a shared_ptr.
An integer coordinate rectangle.
void setSpatialParameters(const std::vector< std::vector< double >> params)
Set the parameters of all spatial functions.
std::string getPythonModule() const override
Return the fully-qualified Python module that should be imported to guarantee that its factory is reg...
std::vector< SpatialFunctionPtr > getSpatialFunctionList() const
Return a list of clones of the spatial functions.
Tags carrying information about Kernels Kernel with no special properties.
Kernel()
Construct a null Kernel of size 0,0.
unsigned int getNKernelParameters() const
Return the number of kernel parameters (0 if none)
void computeKernelParametersFromSpatialModel(std::vector< double > &kernelParams, double x, double y) const
Compute the kernel parameters at a specified point.
SpatialFunctionPtr getSpatialFunction(unsigned int index) const
Return a clone of the specified spatial function (one component of the spatial model)