24 #ifndef LSST_AFW_MATH_ChebyshevBoundedField_h_INCLUDED
25 #define LSST_AFW_MATH_ChebyshevBoundedField_h_INCLUDED
47 "if true, only include terms where the sum of the x and y order "
48 "is less than or equal to max(orderX, orderY)");
116 ndarray::Array<double const, 2, 2>
const&
coefficients);
135 ndarray::Array<double const, 1>
const&
x,
136 ndarray::Array<double const, 1>
const&
y,
137 ndarray::Array<double const, 1>
const&
z,
153 ndarray::Array<double const, 1>
const&
x,
154 ndarray::Array<double const, 1>
const&
y,
155 ndarray::Array<double const, 1>
const&
z,
156 ndarray::Array<double const, 1>
const&
w,
172 template <
typename T>
202 double mean()
const override;
226 ndarray::Array<double const, 2, 2> _coefficients;
ndarray::Array< double const, 2, 2 > coefficients
A class to represent a 2-dimensional array of pixels.
An abstract base class for 2-d functions defined on an integer bounding boxes.
virtual double evaluate(lsst::geom::Point2D const &position) const =0
Evaluate the field at the given point.
A control object used when fitting ChebyshevBoundedField to data (see ChebyshevBoundedField::fit)
int computeSize() const
Return the number of nonzero coefficients in the Chebyshev function defined by this object.
bool triangular
"if true, only include terms where the sum of the x and y order " "is less than or equal to max(order...
int orderY
"maximum Chebyshev function order in y" ;
ChebyshevBoundedFieldControl()
int orderX
"maximum Chebyshev function order in x" ;
A BoundedField based on 2-d Chebyshev polynomials of the first kind.
static std::shared_ptr< ChebyshevBoundedField > fit(lsst::geom::Box2I const &bbox, ndarray::Array< double const, 1 > const &x, ndarray::Array< double const, 1 > const &y, ndarray::Array< double const, 1 > const &z, Control const &ctrl)
Fit a Chebyshev approximation to non-gridded data with equal weights.
std::shared_ptr< ChebyshevBoundedField > relocate(lsst::geom::Box2I const &bbox) const
Return a new ChebyshevBoundedField with domain set to the given bounding box.
bool operator==(BoundedField const &rhs) const override
BoundedFields (of the same sublcass) are equal if their bounding boxes and parameters are equal.
bool isPersistable() const noexcept override
ChebyshevBoundedField is always persistable.
std::shared_ptr< BoundedField > operator*(double const scale) const override
Return a scaled BoundedField.
ChebyshevBoundedField(ChebyshevBoundedField &&)
ChebyshevBoundedField & operator=(ChebyshevBoundedField &&)=delete
ChebyshevBoundedFieldControl Control
void write(OutputArchiveHandle &handle) const override
Write the object to one or more catalogs.
std::string getPythonModule() const override
Return the fully-qualified Python module that should be imported to guarantee that its factory is reg...
double mean() const override
Compute the mean of this function over its bounding-box.
~ChebyshevBoundedField() override
ndarray::Array< double const, 2, 2 > getCoefficients() const
Return the coefficient matrix.
std::shared_ptr< ChebyshevBoundedField > truncate(Control const &ctrl) const
Return a new ChebyshevBoudedField with maximum orders set by the given control object.
ChebyshevBoundedField(ChebyshevBoundedField const &)
std::string getPersistenceName() const override
Return the unique name used to persist this object and look up its factory.
ChebyshevBoundedField(lsst::geom::Box2I const &bbox, ndarray::Array< double const, 2, 2 > const &coefficients)
Initialize the field from its bounding box an coefficients.
double integrate() const override
Compute the integral of this function over its bounding-box.
ChebyshevBoundedField & operator=(ChebyshevBoundedField const &)=delete
virtual double evaluate(lsst::geom::Point2D const &position) const=0
Evaluate the field at the given point.
A CRTP facade class for subclasses of Persistable.
io::OutputArchiveHandle OutputArchiveHandle
An integer coordinate rectangle.
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
A preprocessor macro used to define fields in C++ "control object" structs.
def scale(algorithm, min, max=None, frame=None)
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
A base class for image defects.