LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
lsst::afw::math::FixedKernel Class Reference

A kernel created from an Image. More...

#include <Kernel.h>

Inheritance diagram for lsst::afw::math::FixedKernel:
lsst::afw::table::io::PersistableFacade< FixedKernel > lsst::afw::math::Kernel lsst::daf::base::Citizen lsst::daf::base::Persistable lsst::afw::table::io::PersistableFacade< Kernel > lsst::afw::table::io::Persistable

Classes

class  Factory
 

Public Types

typedef boost::shared_ptr
< FixedKernel
Ptr
 
typedef boost::shared_ptr
< FixedKernel const > 
ConstPtr
 
- Public Types inherited from lsst::afw::math::Kernel
typedef double Pixel
 
typedef boost::shared_ptr< KernelPtr
 
typedef boost::shared_ptr
< Kernel const > 
ConstPtr
 
typedef boost::shared_ptr
< lsst::afw::math::Function2
< double > > 
SpatialFunctionPtr
 
typedef
lsst::afw::math::Function2
< double > 
SpatialFunction
 
typedef
lsst::afw::math::NullFunction2
< double > 
NullSpatialFunction
 
typedef generic_kernel_tag kernel_fill_factor
 
- Public Types inherited from lsst::daf::base::Citizen
enum  { magicSentinel = 0xdeadbeef }
 
typedef unsigned long memId
 Type of the block's ID. More...
 
typedef memId(* memNewCallback )(const memId cid)
 A function used to register a callback. More...
 
typedef memId(* memCallback )(const Citizen *ptr)
 
- Public Types inherited from lsst::daf::base::Persistable
typedef boost::shared_ptr
< Persistable
Ptr
 

Public Member Functions

 FixedKernel ()
 Construct an empty FixedKernel of size 0x0. More...
 
 FixedKernel (lsst::afw::image::Image< Pixel > const &image)
 Construct a FixedKernel from an image. More...
 
 FixedKernel (lsst::afw::math::Kernel const &kernel, lsst::afw::geom::Point2D const &pos)
 Construct a FixedKernel from a generic Kernel. More...
 
virtual ~FixedKernel ()
 
virtual boost::shared_ptr< Kernelclone () const
 Return a pointer to a deep copy of this kernel. More...
 
virtual std::string toString (std::string const &prefix="") const
 Return a string representation of the kernel. More...
 
virtual Pixel getSum () const
 
virtual bool isPersistable () const
 Return true if this particular object can be persisted using afw::table::io. More...
 
- Public Member Functions inherited from lsst::afw::math::Kernel
 Kernel ()
 Construct a null Kernel of size 0,0. More...
 
 Kernel (int width, int height, unsigned int nKernelParams, SpatialFunction const &spatialFunction=NullSpatialFunction())
 Construct a spatially invariant Kernel or a spatially varying Kernel with one spatial function that is duplicated as needed. More...
 
 Kernel (int width, int height, const std::vector< SpatialFunctionPtr > spatialFunctionList)
 Construct a spatially varying Kernel with a list of spatial functions (one per kernel parameter) More...
 
virtual ~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. More...
 
geom::Extent2I const getDimensions () const
 Return the Kernel's dimensions (width, height) More...
 
void setDimensions (geom::Extent2I dims)
 
void setWidth (int width)
 
void setHeight (int height)
 
int getWidth () const
 Return the Kernel's width. More...
 
int getHeight () const
 Return the Kernel's height. More...
 
lsst::afw::geom::Point2I getCtr () const
 Return index of kernel's center. More...
 
int getCtrX () const
 Return x index of kernel's center. More...
 
int getCtrY () const
 Return y index of kernel's center. More...
 
lsst::afw::geom::Box2I getBBox () const
 return parent bounding box, with XY0 = -center More...
 
unsigned int getNKernelParameters () const
 Return the number of kernel parameters (0 if none) More...
 
int getNSpatialParameters () const
 Return the number of spatial parameters (0 if not spatially varying) More...
 
SpatialFunctionPtr getSpatialFunction (unsigned int index) const
 Return a clone of the specified spatial function (one component of the spatial model) More...
 
std::vector< SpatialFunctionPtrgetSpatialFunctionList () const
 Return a list of clones of the spatial functions. More...
 
virtual double getKernelParameter (unsigned int i) const
 
virtual std::vector< double > getKernelParameters () const
 Return the current kernel parameters. More...
 
lsst::afw::geom::Box2I growBBox (lsst::afw::geom::Box2I const &bbox) const
 
lsst::afw::geom::Box2I shrinkBBox (lsst::afw::geom::Box2I const &bbox) const
 
void setCtr (lsst::afw::geom::Point2I ctr)
 Set index of kernel's center. More...
 
void setCtrX (int ctrX)
 Set x index of kernel's center. More...
 
void setCtrY (int ctrY)
 Set y index of kernel's center. More...
 
std::vector< std::vector
< double > > 
getSpatialParameters () const
 Return the spatial parameters parameters (an empty vector if not spatially varying) More...
 
bool isSpatiallyVarying () const
 Return true iff the kernel is spatially varying (has a spatial function) More...
 
void setKernelParameters (std::vector< double > const &params)
 Set the kernel parameters of a spatially invariant kernel. More...
 
void setKernelParameters (std::pair< double, double > const &params)
 Set the kernel parameters of a 2-component spatially invariant kernel. More...
 
void setSpatialParameters (const std::vector< std::vector< double > > params)
 Set the parameters of all spatial functions. More...
 
void computeKernelParametersFromSpatialModel (std::vector< double > &kernelParams, double x, double y) const
 Compute the kernel parameters at a specified point. More...
 
virtual void computeCache (int const )
 Compute a cache of Kernel values, if desired. More...
 
virtual int getCacheSize () const
 Get the current size of the kernel cache (0 if none or if caches not supported) More...
 
- Public Member Functions inherited from lsst::daf::base::Citizen
 Citizen (const std::type_info &)
 
 Citizen (Citizen const &)
 
 ~Citizen ()
 
Citizenoperator= (Citizen const &)
 
std::string repr () const
 Return a string representation of a Citizen. More...
 
void markPersistent (void)
 Mark a Citizen as persistent and not destroyed until process end. More...
 
memId getId () const
 Return the Citizen's ID. More...
 
- Public Member Functions inherited from lsst::daf::base::Persistable
 Persistable (void)
 
virtual ~Persistable (void)
 
template<class Archive >
void serialize (Archive &, unsigned int const)
 
- Public Member Functions inherited from lsst::afw::table::io::Persistable
void writeFits (std::string const &fileName, std::string const &mode="w") const
 Write the object to a regular FITS file. More...
 
void writeFits (fits::MemFileManager &manager, std::string const &mode="w") const
 Write the object to a FITS image in memory. More...
 
void writeFits (fits::Fits &fitsfile) const
 Write the object to an already-open FITS object. More...
 
virtual ~Persistable ()
 

Protected Member Functions

double doComputeImage (lsst::afw::image::Image< Pixel > &image, bool doNormalize) const
 Low-level version of computeImage. More...
 
virtual std::string getPersistenceName () const
 Return the unique name used to persist this object and look up its factory. More...
 
virtual void write (OutputArchiveHandle &handle) const
 Write the object to one or more catalogs. More...
 
- Protected Member Functions inherited from lsst::afw::math::Kernel
virtual std::string getPythonModule () const
 Return the fully-qualified Python module that should be imported to guarantee that its factory is registered. More...
 
virtual void setKernelParameter (unsigned int ind, double value) const
 Set one kernel parameter. More...
 
void setKernelParametersFromSpatialModel (double x, double y) const
 Set the kernel parameters from the spatial model (if any). More...
 
- Protected Member Functions inherited from lsst::afw::table::io::Persistable
 Persistable ()
 
 Persistable (Persistable const &other)
 
void operator= (Persistable const &other)
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, unsigned int const version)
 

Private Attributes

lsst::afw::image::Image< Pixel_image
 
Pixel _sum
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< FixedKernel >
static boost::shared_ptr
< FixedKernel > 
readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr
< FixedKernel > 
readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr
< FixedKernel > 
readFits (fits::MemFileManager &manager, int hdu=0)
 Read an object from a FITS file in memory. More...
 
- Static Public Member Functions inherited from lsst::daf::base::Citizen
static bool hasBeenCorrupted ()
 Check all allocated blocks for corruption. More...
 
static memId getNextMemId ()
 Return the memId of the next object to be allocated. More...
 
static int init ()
 Called once when the memory system is being initialised. More...
 
static int census (int, memId startingMemId=0)
 How many active Citizens are there? More...
 
static void census (std::ostream &stream, memId startingMemId=0)
 Print a list of all active Citizens to stream, sorted by ID. More...
 
static const std::vector
< const Citizen * > * 
census ()
 Return a (newly allocated) std::vector of active Citizens sorted by ID. More...
 
static memId setNewCallbackId (memId id)
 Call the NewCallback when block is allocated. More...
 
static memId setDeleteCallbackId (memId id)
 Call the current DeleteCallback when block is deleted. More...
 
static memNewCallback setNewCallback (memNewCallback func)
 Set the NewCallback function. More...
 
static memCallback setDeleteCallback (memCallback func)
 Set the DeleteCallback function. More...
 
static memCallback setCorruptionCallback (memCallback func)
 Set the CorruptionCallback function. More...
 
- Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< Kernel >
static boost::shared_ptr< Kernel > readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr< Kernel > readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr< Kernel > readFits (fits::MemFileManager &manager, int hdu=0)
 Read an object from a FITS file in memory. More...
 
- Protected Types inherited from lsst::afw::table::io::Persistable
typedef io::OutputArchiveHandle OutputArchiveHandle
 
- Protected Attributes inherited from lsst::afw::math::Kernel
std::vector< SpatialFunctionPtr_spatialFunctionList
 

Detailed Description

A kernel created from an Image.

It has no adjustable parameters and so cannot be spatially varying.

Definition at line 551 of file Kernel.h.

Member Typedef Documentation

typedef boost::shared_ptr< FixedKernel const> lsst::afw::math::FixedKernel::ConstPtr

Definition at line 554 of file Kernel.h.

typedef boost::shared_ptr< FixedKernel > lsst::afw::math::FixedKernel::Ptr

Definition at line 553 of file Kernel.h.

Constructor & Destructor Documentation

lsst::afw::math::FixedKernel::FixedKernel ( )
explicit

Construct an empty FixedKernel of size 0x0.

Definition at line 36 of file FixedKernel.cc.

37 :
38  Kernel(),
39  _image(),
40  _sum(0) {
41 }
Kernel()
Construct a null Kernel of size 0,0.
Definition: Kernel.cc:51
lsst::afw::image::Image< Pixel > _image
Definition: Kernel.h:601
lsst::afw::math::FixedKernel::FixedKernel ( lsst::afw::image::Image< Pixel > const &  image)
explicit

Construct a FixedKernel from an image.

Parameters
imageimage for kernel

Definition at line 43 of file FixedKernel.cc.

45  :
46  Kernel(image.getWidth(), image.getHeight(), 0),
47  _image(image, true),
48  _sum(0) {
49 
51  double imSum = 0.0;
52  for (int y = 0; y != image.getHeight(); ++y) {
53  for (XIter imPtr = image.row_begin(y), imEnd = image.row_end(y); imPtr != imEnd; ++imPtr) {
54  imSum += *imPtr;
55  }
56  }
57  this->_sum = imSum;
58 }
int y
x_iterator row_end(int y) const
Return an x_iterator to the end of the y&#39;th row.
Definition: Image.h:324
int getHeight() const
Return the number of rows in the image.
Definition: Image.h:239
Kernel()
Construct a null Kernel of size 0,0.
Definition: Kernel.cc:51
x_iterator row_begin(int y) const
Definition: Image.h:319
lsst::afw::image::Image< Pixel > _image
Definition: Kernel.h:601
int getWidth() const
Return the number of columns in the image.
Definition: Image.h:237
A class to represent a 2-dimensional array of pixels.
Definition: Image.h:415
lsst::afw::math::FixedKernel::FixedKernel ( lsst::afw::math::Kernel const &  kernel,
lsst::afw::geom::Point2D const &  pos 
)
explicit

Construct a FixedKernel from a generic Kernel.

Parameters
kernelKernel to convert to Fixed
posdesired position

Definition at line 60 of file FixedKernel.cc.

63  :
64  Kernel(kernel.getWidth(), kernel.getHeight(), 0),
65  _image(kernel.getDimensions()),
66  _sum(0) {
67  _sum = kernel.computeImage(_image, false, pos[0], pos[1]);
68 }
Kernel()
Construct a null Kernel of size 0,0.
Definition: Kernel.cc:51
lsst::afw::image::Image< Pixel > _image
Definition: Kernel.h:601
virtual lsst::afw::math::FixedKernel::~FixedKernel ( )
inlinevirtual

Definition at line 576 of file Kernel.h.

576 {}

Member Function Documentation

boost::shared_ptr< afwMath::Kernel > lsst::afw::math::FixedKernel::clone ( ) const
virtual

Return a pointer to a deep copy of this kernel.

This kernel exists instead of a copy constructor so one can obtain a copy of an actual kernel instead of a useless copy of the base class.

Every kernel subclass must override this method.

Returns
a pointer to a deep copy of the kernel

Implements lsst::afw::math::Kernel.

Definition at line 70 of file FixedKernel.cc.

70  {
71  PTR(afwMath::Kernel) retPtr(new afwMath::FixedKernel(_image));
72  retPtr->setCtr(this->getCtr());
73  return retPtr;
74 }
#define PTR(...)
Definition: base.h:41
FixedKernel()
Construct an empty FixedKernel of size 0x0.
Definition: FixedKernel.cc:36
void setCtr(lsst::afw::geom::Point2I ctr)
Set index of kernel&#39;s center.
Definition: Kernel.h:361
lsst::afw::geom::Point2I getCtr() const
Return index of kernel&#39;s center.
Definition: Kernel.h:254
lsst::afw::image::Image< Pixel > _image
Definition: Kernel.h:601
Kernels are used for convolution with MaskedImages and (eventually) Images.
Definition: Kernel.h:134
double lsst::afw::math::FixedKernel::doComputeImage ( lsst::afw::image::Image< Pixel > &  image,
bool  doNormalize 
) const
protectedvirtual

Low-level version of computeImage.

Before this is called the image dimensions are checked, the image's xy0 is set and the kernel's parameters are set. This routine sets the pixels, including normalization if requested.

Returns
The kernel sum

Implements lsst::afw::math::Kernel.

Definition at line 76 of file FixedKernel.cc.

79  {
80  double multFactor = 1.0;
81  double imSum = this->_sum;
82  if (doNormalize) {
83  if (imSum == 0) {
84  throw LSST_EXCEPT(pexExcept::OverflowError, "Cannot normalize; kernel sum is 0");
85  }
86  multFactor = 1.0/static_cast<double>(this->_sum);
87  imSum = 1.0;
88  }
89 
91 
92  for (int y = 0; y != this->getHeight(); ++y) {
93  for (XIter imPtr = image.row_begin(y), imEnd = image.row_end(y), kPtr = this->_image.row_begin(y);
94  imPtr != imEnd; ++imPtr, ++kPtr) {
95  imPtr[0] = multFactor*kPtr[0];
96  }
97  }
98 
99  return imSum;
100 }
int y
int getHeight() const
Return the Kernel&#39;s height.
Definition: Kernel.h:247
x_iterator row_end(int y) const
Return an x_iterator to the end of the y&#39;th row.
Definition: Image.h:324
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
x_iterator row_begin(int y) const
Definition: Image.h:319
lsst::afw::image::Image< Pixel > _image
Definition: Kernel.h:601
A class to represent a 2-dimensional array of pixels.
Definition: Image.h:415
std::string lsst::afw::math::FixedKernel::getPersistenceName ( ) const
protectedvirtual

Return the unique name used to persist this object and look up its factory.

Must be less than ArchiveIndexSchema::MAX_NAME_LENGTH characters.

Reimplemented from lsst::afw::table::io::Persistable.

Definition at line 165 of file FixedKernel.cc.

165 { return getFixedKernelPersistenceName(); }
virtual Pixel lsst::afw::math::FixedKernel::getSum ( ) const
inlinevirtual

Definition at line 582 of file Kernel.h.

582  {
583  return _sum;
584  }
virtual bool lsst::afw::math::FixedKernel::isPersistable ( ) const
inlinevirtual

Return true if this particular object can be persisted using afw::table::io.

Reimplemented from lsst::afw::table::io::Persistable.

Definition at line 586 of file Kernel.h.

586 { return true; }
template<class Archive >
void lsst::afw::math::FixedKernel::serialize ( Archive &  ar,
unsigned int const  version 
)
inlineprivate

Definition at line 606 of file Kernel.h.

606  {
607  ar & make_nvp("k",
608  boost::serialization::base_object<Kernel>(*this));
609  ar & make_nvp("img", _image);
610  ar & make_nvp("sum", _sum);
611  }
lsst::afw::image::Image< Pixel > _image
Definition: Kernel.h:601
std::string lsst::afw::math::FixedKernel::toString ( std::string const &  prefix = "") const
virtual

Return a string representation of the kernel.

Reimplemented from lsst::afw::math::Kernel.

Definition at line 102 of file FixedKernel.cc.

102  {
103  std::ostringstream os;
104  os << prefix << "FixedKernel:" << std::endl;
105  os << prefix << "..sum: " << _sum << std::endl;
106  os << Kernel::toString(prefix + "\t");
107  return os.str();
108 }
virtual std::string toString(std::string const &prefix="") const
Return a string representation of the kernel.
Definition: Kernel.cc:224
void lsst::afw::math::FixedKernel::write ( OutputArchiveHandle handle) const
protectedvirtual

Write the object to one or more catalogs.

The handle object passed to this function provides an interface for adding new catalogs and adding nested objects to the same archive (while checking for duplicates). See OutputArchiveHandle for more information.

Reimplemented from lsst::afw::table::io::Persistable.

Definition at line 167 of file FixedKernel.cc.

167  {
168  FixedKernelPersistenceHelper const keys(getDimensions());
169  PTR(afw::table::BaseRecord) record = keys.write(handle, *this);
170  (*record)[keys.image] = ndarray::flatten<1>(ndarray::copy(_image.getArray()));
171 }
geom::Extent2I const getDimensions() const
Return the Kernel&#39;s dimensions (width, height)
Definition: Kernel.h:226
SelectEigenView< T >::Type copy(Eigen::EigenBase< T > const &other)
Copy an arbitrary Eigen expression into a new EigenView.
Definition: eigen.h:390
#define PTR(...)
Definition: base.h:41
table::Key< table::Array< Kernel::Pixel > > image
Definition: FixedKernel.cc:117
boost::enable_if_c< ((C+Nf-N)>=1), ArrayRef< T, Nf,(C+Nf-N)> >::type flatten(Array< T, N, C > const &input)
Create a view into an array with trailing contiguous dimensions merged.
Definition: casts.h:150
virtual void write(OutputArchiveHandle &handle) const
Write the object to one or more catalogs.
Definition: FixedKernel.cc:167
lsst::afw::image::Image< Pixel > _image
Definition: Kernel.h:601

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Definition at line 604 of file Kernel.h.

Member Data Documentation

lsst::afw::image::Image<Pixel> lsst::afw::math::FixedKernel::_image
private

Definition at line 601 of file Kernel.h.

Pixel lsst::afw::math::FixedKernel::_sum
private

Definition at line 602 of file Kernel.h.


The documentation for this class was generated from the following files: