LSSTApplications  21.0.0+75b29a8a7f,21.0.0+e70536a077,21.0.0-1-ga51b5d4+62c747d40b,21.0.0-11-ga6ea59e8e+47cba9fc36,21.0.0-2-g103fe59+914993bf7c,21.0.0-2-g1367e85+e2614ded12,21.0.0-2-g45278ab+e70536a077,21.0.0-2-g4bc9b9f+7b2b5f8678,21.0.0-2-g5242d73+e2614ded12,21.0.0-2-g54e2caa+6403186824,21.0.0-2-g7f82c8f+3ac4acbffc,21.0.0-2-g8dde007+04a6aea1af,21.0.0-2-g8f08a60+9402881886,21.0.0-2-ga326454+3ac4acbffc,21.0.0-2-ga63a54e+81dd751046,21.0.0-2-gc738bc1+5f65c6e7a9,21.0.0-2-gde069b7+26c92b3210,21.0.0-2-gecfae73+0993ddc9bd,21.0.0-2-gfc62afb+e2614ded12,21.0.0-21-gba890a8+5a4f502a26,21.0.0-23-g9966ff26+03098d1af8,21.0.0-3-g357aad2+8ad216c477,21.0.0-3-g4be5c26+e2614ded12,21.0.0-3-g6d51c4a+4d2fe0280d,21.0.0-3-g7d9da8d+75b29a8a7f,21.0.0-3-gaa929c8+522e0f12c2,21.0.0-3-ge02ed75+4d2fe0280d,21.0.0-4-g3300ddd+e70536a077,21.0.0-4-gc004bbf+eac6615e82,21.0.0-4-gccdca77+f94adcd104,21.0.0-4-gd1c1571+18b81799f9,21.0.0-5-g7b47fff+4d2fe0280d,21.0.0-5-gb155db7+d2632f662b,21.0.0-5-gdf36809+637e4641ee,21.0.0-6-g722ad07+28c848f42a,21.0.0-7-g959bb79+522e0f12c2,21.0.0-7-gfd72ab2+cf01990774,21.0.0-9-g87fb7b8d+e2ab11cdd6,w.2021.04
LSSTDataManagementBasePackage
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 };

◆ 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 };

◆ 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 };

◆ 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 }
std::shared_ptr
STL class.
lsst::afw::math::Covariogram
The parent class of covariogram functions for use in Gaussian Process interpolation.
Definition: GaussianProcess.h:126
lsst::afw::math::KdTree
The data for GaussianProcess is stored in a KD tree to facilitate nearest-neighbor searches.
Definition: GaussianProcess.h:224
lsst::afw::math::GaussianProcess
Stores values of a function sampled on an image and allows you to interpolate the function to unsampl...
Definition: GaussianProcess.h:471
lsst::afw::math::SquaredExpCovariogram
SquaredExpCovariogram.
Definition: GaussianProcess.h:164
lsst::afw::math::NeuralNetCovariogram
a Covariogram that recreates a neural network with one hidden layer and infinite units in that layer
Definition: GaussianProcess.h:193
lsst::utils.tests.init
def init()
Definition: tests.py:59