LSST Applications  21.0.0+c4f5df5339,21.0.0+e70536a077,21.0.0-1-ga51b5d4+7c60f8a6ea,21.0.0-10-gcf60f90+74aa0801fd,21.0.0-12-g63909ac9+643a1044a5,21.0.0-15-gedb9d5423+1041c3824f,21.0.0-2-g103fe59+a356b2badb,21.0.0-2-g1367e85+6d3f3f41db,21.0.0-2-g45278ab+e70536a077,21.0.0-2-g5242d73+6d3f3f41db,21.0.0-2-g7f82c8f+8d7c04eab9,21.0.0-2-g8f08a60+9c9a9cfcc8,21.0.0-2-ga326454+8d7c04eab9,21.0.0-2-gde069b7+bedfc5e1fb,21.0.0-2-gecfae73+6cb6558258,21.0.0-2-gfc62afb+6d3f3f41db,21.0.0-3-g21c7a62+f6e98b25aa,21.0.0-3-g357aad2+bd62456bea,21.0.0-3-g4be5c26+6d3f3f41db,21.0.0-3-g65f322c+03a4076c01,21.0.0-3-g7d9da8d+c4f5df5339,21.0.0-3-gaa929c8+c6b98066dc,21.0.0-3-gc44e71e+a26d5c1aea,21.0.0-3-ge02ed75+04b527a9d5,21.0.0-35-g64f566ff+b27e5ef93e,21.0.0-4-g591bb35+04b527a9d5,21.0.0-4-g88306b8+8773047b2e,21.0.0-4-gc004bbf+80a0b7acb7,21.0.0-4-gccdca77+a5c54364a0,21.0.0-4-ge8fba5a+ccfc328107,21.0.0-5-gdf36809+87b8d260e6,21.0.0-6-g00874e7+7eeda2b6ba,21.0.0-6-g2d4f3f3+e70536a077,21.0.0-6-g4e60332+04b527a9d5,21.0.0-6-g5ef7dad+f53629abd8,21.0.0-7-gc8ca178+b63e69433b,21.0.0-8-gfbe0b4b+c6b98066dc,w.2021.06
LSST Data Management Base Package
Functions
gaussianProcess.cc File Reference
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include "ndarray/pybind11.h"
#include "lsst/afw/math/GaussianProcess.h"

Go to the source code of this file.

Functions

template<typename T >
void declareKdTree (py::module &mod, const std::string &suffix)
 
template<typename T >
void declareCovariograms (py::module &mod, const std::string &suffix)
 
template<typename T >
void declareGaussianProcess (py::module &mod, const std::string &suffix)
 
 PYBIND11_MODULE (gaussianProcess, mod)
 

Function Documentation

◆ declareCovariograms()

template<typename T >
void declareCovariograms ( py::module &  mod,
const std::string suffix 
)

Definition at line 50 of file gaussianProcess.cc.

50  {
51  /* Covariogram */
52  py::class_<Covariogram<T>, std::shared_ptr<Covariogram<T>>> clsCovariogram(
53  mod, ("Covariogram" + suffix).c_str());
54  clsCovariogram.def(py::init<>());
55  clsCovariogram.def("__call__", &Covariogram<T>::operator());
56 
57  /* SquaredExpCovariogram */
58  py::class_<SquaredExpCovariogram<T>, std::shared_ptr<SquaredExpCovariogram<T>>, Covariogram<T>>
59  clsSquaredExpCovariogram(mod, ("SquaredExpCovariogram" + suffix).c_str());
60  clsSquaredExpCovariogram.def(py::init<>());
61  clsSquaredExpCovariogram.def("__call__", &SquaredExpCovariogram<T>::operator());
62  clsSquaredExpCovariogram.def("setEllSquared", &SquaredExpCovariogram<T>::setEllSquared);
63 
64  /* SquaredExpCovariogram */
65  py::class_<NeuralNetCovariogram<T>, std::shared_ptr<NeuralNetCovariogram<T>>, Covariogram<T>>
66  clsNeuralNetCovariogram(mod, ("NeuralNetCovariogram" + suffix).c_str());
67  clsNeuralNetCovariogram.def(py::init<>());
68  clsNeuralNetCovariogram.def("setSigma0", &NeuralNetCovariogram<T>::setSigma0);
69  clsNeuralNetCovariogram.def("setSigma1", &NeuralNetCovariogram<T>::setSigma1);
70 };
The parent class of covariogram functions for use in Gaussian Process interpolation.
a Covariogram that recreates a neural network with one hidden layer and infinite units in that layer

◆ declareGaussianProcess()

template<typename T >
void declareGaussianProcess ( py::module &  mod,
const std::string suffix 
)

Definition at line 73 of file gaussianProcess.cc.

73  {
74  py::class_<GaussianProcess<T>> clsGaussianProcess(mod, ("GaussianProcess" + suffix).c_str());
75  /* Constructors */
76  clsGaussianProcess.def(py::init<ndarray::Array<T, 2, 2> const &, ndarray::Array<T, 1, 1> const &,
77  std::shared_ptr<Covariogram<T>> const &>());
78  clsGaussianProcess.def(py::init<ndarray::Array<T, 2, 2> const &, ndarray::Array<T, 1, 1> const &,
79  ndarray::Array<T, 1, 1> const &, ndarray::Array<T, 1, 1> const &,
80  std::shared_ptr<Covariogram<T>> const &>());
81  clsGaussianProcess.def(py::init<ndarray::Array<T, 2, 2> const &, ndarray::Array<T, 2, 2> const &,
82  std::shared_ptr<Covariogram<T>> const &>());
83  clsGaussianProcess.def(py::init<ndarray::Array<T, 2, 2> const &, ndarray::Array<T, 1, 1> const &,
84  ndarray::Array<T, 1, 1> const &, ndarray::Array<T, 2, 2> const &,
85  std::shared_ptr<Covariogram<T>> const &>());
86  /* Members */
87  clsGaussianProcess.def(
88  "interpolate",
89  (T (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1>, ndarray::Array<T, 1, 1> const &, int) const) &
91  clsGaussianProcess.def("interpolate",
92  (void (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1>, ndarray::Array<T, 1, 1>,
93  ndarray::Array<T, 1, 1> const &, int) const) &
95  clsGaussianProcess.def("selfInterpolate",
96  (T (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1>, int, int) const) &
98  clsGaussianProcess.def(
99  "selfInterpolate",
100  (void (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1>, ndarray::Array<T, 1, 1>, int, int) const) &
102  clsGaussianProcess.def("setLambda", &GaussianProcess<T>::setLambda);
103  clsGaussianProcess.def("setCovariogram", &GaussianProcess<T>::setCovariogram);
104  clsGaussianProcess.def("addPoint", (void (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1> const &, T)) &
106  clsGaussianProcess.def("addPoint", (void (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1> const &,
107  ndarray::Array<T, 1, 1> const &)) &
109  clsGaussianProcess.def("batchInterpolate",
110  (void (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1>, ndarray::Array<T, 1, 1>,
111  ndarray::Array<T, 2, 2> const &) const) &
113  clsGaussianProcess.def(
114  "batchInterpolate",
115  (void (GaussianProcess<T>::*)(ndarray::Array<T, 1, 1>, ndarray::Array<T, 2, 2> const &) const) &
117  clsGaussianProcess.def("batchInterpolate",
118  (void (GaussianProcess<T>::*)(ndarray::Array<T, 2, 2>, ndarray::Array<T, 2, 2>,
119  ndarray::Array<T, 2, 2> const &) const) &
121  clsGaussianProcess.def(
122  "batchInterpolate",
123  (void (GaussianProcess<T>::*)(ndarray::Array<T, 2, 2>, ndarray::Array<T, 2, 2> const &) const) &
125  clsGaussianProcess.def("setKrigingParameter", &GaussianProcess<T>::setKrigingParameter);
126  clsGaussianProcess.def("removePoint", &GaussianProcess<T>::removePoint);
127  clsGaussianProcess.def("getNPoints", &GaussianProcess<T>::getNPoints);
128  clsGaussianProcess.def("getData",
129  (void (GaussianProcess<T>::*)(ndarray::Array<T, 2, 2>, ndarray::Array<T, 1, 1>,
130  ndarray::Array<int, 1, 1>) const) &
132  clsGaussianProcess.def("getData",
133  (void (GaussianProcess<T>::*)(ndarray::Array<T, 2, 2>, ndarray::Array<T, 2, 2>,
134  ndarray::Array<int, 1, 1>) const) &
136 };
Stores values of a function sampled on an image and allows you to interpolate the function to unsampl...
def init()
Definition: tests.py:59

◆ declareKdTree()

template<typename T >
void declareKdTree ( py::module &  mod,
const std::string suffix 
)

Definition at line 36 of file gaussianProcess.cc.

36  {
37  py::class_<KdTree<T>> clsKdTree(mod, ("KdTree" + suffix).c_str());
38  clsKdTree.def(py::init<>());
39  clsKdTree.def("Initialize", &KdTree<T>::Initialize);
40  clsKdTree.def("removePoint", &KdTree<T>::removePoint);
41  clsKdTree.def("getData", (T (KdTree<T>::*)(int, int) const) & KdTree<T>::getData);
42  clsKdTree.def("getData", (ndarray::Array<T, 1, 1> (KdTree<T>::*)(int) const) & KdTree<T>::getData);
43  clsKdTree.def("addPoint", &KdTree<T>::addPoint);
44  clsKdTree.def("getNPoints", &KdTree<T>::getNPoints);
45  clsKdTree.def("getTreeNode", &KdTree<T>::getTreeNode);
46  clsKdTree.def("findNeighbors", &KdTree<T>::findNeighbors);
47 };
The data for GaussianProcess is stored in a KD tree to facilitate nearest-neighbor searches.

◆ PYBIND11_MODULE()

PYBIND11_MODULE ( gaussianProcess  ,
mod   
)

Definition at line 138 of file gaussianProcess.cc.

138  {
139  declareCovariograms<double>(mod, "D");
140  declareGaussianProcess<double>(mod, "D");
141  declareKdTree<double>(mod, "D");
142 }