lsst.meas.astrom  22.0.1-12-g44dc1dc+47bd5dfdb5
pessimisticPatternMatcherUtils.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 
3 /*
4  * This file is part of meas_astrom.
5  *
6  * Developed for the LSST Data Management System.
7  * This product includes software developed by the LSST Project
8  * (https://www.lsst.org).
9  * See the COPYRIGHT file at the top-level directory of this distribution
10  * for details of code ownership.
11  *
12  * This program is free software: you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation, either version 3 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program. If not, see <https://www.gnu.org/licenses/>.
24  */
25 
26 #include <ndarray.h>
27 
28 namespace lsst {
29 namespace meas {
30 namespace astrom {
45  float src_dist, ndarray::Array<float, 1, 1> const& ref_dist_array, float max_dist_rad);
73  ndarray::Array<double, 1, 1> const& src_ctr, ndarray::Array<double, 2, 1> const& src_delta_array,
74  ndarray::Array<double, 1, 1> const& src_dist_array, ndarray::Array<double, 1, 1> const& ref_ctr,
75  ndarray::Array<double, 1, 1> const& proj_ref_ctr_delta,
76  ndarray::Array<float, 1, 1> const& ref_dist_array, ndarray::Array<uint16_t, 1, 1> const& ref_id_array,
77  ndarray::Array<double, 2, 1> const& reference_array, double max_dist_rad, size_t n_match);
78 
108 int check_spoke(double cos_theta_src, double sin_theta_src, ndarray::Array<double, 1, 1> const& ref_ctr,
109  ndarray::Array<double, 1, 1> const& proj_ref_ctr_delta, double proj_ref_ctr_dist_sq,
110  std::pair<size_t, size_t> const& candidate_range,
111  ndarray::Array<uint16_t, 1, 1> const& ref_id_array,
112  ndarray::Array<double, 2, 1> const& reference_array, double src_sin_tol);
113 
114 } // namespace astrom
115 } // namespace meas
116 } // namespace lsst
int check_spoke(double cos_theta_src, double sin_theta_src, ndarray::Array< double, 1, 1 > const &ref_ctr, ndarray::Array< double, 1, 1 > const &proj_ref_ctr_delta, double proj_ref_ctr_dist_sq, std::pair< size_t, size_t > const &candidate_range, ndarray::Array< uint16_t, 1, 1 > const &ref_id_array, ndarray::Array< double, 2, 1 > const &reference_array, double src_sin_tol)
Check the opening angle between the first spoke of our pattern for the source object against the refe...
std::pair< size_t, size_t > find_candidate_reference_pair_range(float src_dist, ndarray::Array< float, 1, 1 > const &ref_dist_array, float max_dist_rad)
Find the range of reference spokes within a spoke distance tolerance of our source spoke.
std::vector< std::pair< size_t, size_t > > create_pattern_spokes(ndarray::Array< double, 1, 1 > const &src_ctr, ndarray::Array< double, 2, 1 > const &src_delta_array, ndarray::Array< double, 1, 1 > const &src_dist_array, ndarray::Array< double, 1, 1 > const &ref_ctr, ndarray::Array< double, 1, 1 > const &proj_ref_ctr_delta, ndarray::Array< float, 1, 1 > const &ref_dist_array, ndarray::Array< uint16_t, 1, 1 > const &ref_id_array, ndarray::Array< double, 2, 1 > const &reference_array, double max_dist_rad, size_t n_match)
Create the individual spokes that make up the pattern now that the shift and rotation are within tole...