LSST Applications g0b6bd0c080+a72a5dd7e6,g1182afd7b4+2a019aa3bb,g17e5ecfddb+2b8207f7de,g1d67935e3f+06cf436103,g38293774b4+ac198e9f13,g396055baef+6a2097e274,g3b44f30a73+6611e0205b,g480783c3b1+98f8679e14,g48ccf36440+89c08d0516,g4b93dc025c+98f8679e14,g5c4744a4d9+a302e8c7f0,g613e996a0d+e1c447f2e0,g6c8d09e9e7+25247a063c,g7271f0639c+98f8679e14,g7a9cd813b8+124095ede6,g9d27549199+a302e8c7f0,ga1cf026fa3+ac198e9f13,ga32aa97882+7403ac30ac,ga786bb30fb+7a139211af,gaa63f70f4e+9994eb9896,gabf319e997+ade567573c,gba47b54d5d+94dc90c3ea,gbec6a3398f+06cf436103,gc6308e37c7+07dd123edb,gc655b1545f+ade567573c,gcc9029db3c+ab229f5caf,gd01420fc67+06cf436103,gd877ba84e5+06cf436103,gdb4cecd868+6f279b5b48,ge2d134c3d5+cc4dbb2e3f,ge448b5faa6+86d1ceac1d,gecc7e12556+98f8679e14,gf3ee170dca+25247a063c,gf4ac96e456+ade567573c,gf9f5ea5b4d+ac198e9f13,gff490e6085+8c2580be5c,w.2022.27
LSST Data Management Base Package
associations.cc
Go to the documentation of this file.
1// -*- LSST-C++ -*-
2/*
3 * This file is part of jointcal.
4 *
5 * Developed for the LSST Data Management System.
6 * This product includes software developed by the LSST Project
7 * (https://www.lsst.org).
8 * See the COPYRIGHT file at the top-level directory of this distribution
9 * for details of code ownership.
10 *
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program. If not, see <https://www.gnu.org/licenses/>.
23 */
24
25#include "pybind11/pybind11.h"
26#include "pybind11/stl.h"
27
30#include "lsst/sphgeom/Circle.h"
31
32namespace py = pybind11;
33using namespace pybind11::literals;
34
35namespace lsst {
36namespace jointcal {
37namespace {
38
39void declareAssociations(py::module &mod) {
40 py::class_<Associations, std::shared_ptr<Associations>> cls(mod, "Associations");
41 cls.def(py::init<>());
42 cls.def(py::init<CcdImageList const &, double>(), "imageList"_a, "epoch"_a = 0);
43
44 // NOTE: these could go away if the lists they wrap can be accessed directly.
45 cls.def("refStarListSize", &Associations::refStarListSize);
46 cls.def("fittedStarListSize", &Associations::fittedStarListSize);
47 cls.def("associateCatalogs", &Associations::associateCatalogs, "matchCutInArcsec"_a = 0,
48 "useFittedList"_a = false, "enlargeFittedList"_a = true);
49 cls.def("collectRefStars", &Associations::collectRefStars, "refCat"_a, "matchCut"_a, "fluxField"_a,
50 "refCoordinateErr"_a, "rejectBadFluxes"_a = false);
51 cls.def("deprojectFittedStars", &Associations::deprojectFittedStars);
52 cls.def("nCcdImagesValidForFit", &Associations::nCcdImagesValidForFit);
53 cls.def("nFittedStarsWithAssociatedRefStar", &Associations::nFittedStarsWithAssociatedRefStar);
54
55 cls.def("createCcdImage", &Associations::createCcdImage);
56 cls.def("addCcdImage", &Associations::addCcdImage);
57 cls.def("prepareFittedStars", &Associations::prepareFittedStars);
58 cls.def("cleanFittedStars", &Associations::cleanFittedStars);
59
60 cls.def("getCcdImageList", &Associations::getCcdImageList, py::return_value_policy::reference_internal);
61 cls.def_property_readonly("ccdImageList", &Associations::getCcdImageList,
62 py::return_value_policy::reference_internal);
63
64 cls.def("computeBoundingCircle", &Associations::computeBoundingCircle);
65
66 cls.def("getCommonTangentPoint", &Associations::getCommonTangentPoint);
67 cls.def("setCommonTangentPoint", &Associations::setCommonTangentPoint);
68 cls.def("computeCommonTangentPoint", &Associations::computeCommonTangentPoint);
69
70 cls.def("getEpoch", &Associations::getEpoch);
71 cls.def("setEpoch", &Associations::setEpoch);
72}
73
74PYBIND11_MODULE(associations, mod) {
75 py::module::import("lsst.jointcal.ccdImage");
76 py::module::import("lsst.sphgeom");
77 declareAssociations(mod);
78}
79} // namespace
80} // namespace jointcal
81} // namespace lsst
This file declares a class for representing circular regions on the unit sphere.
size_t nFittedStarsWithAssociatedRefStar() const
Return the number of fittedStars that have an associated refStar.
void cleanFittedStars()
Remove FittedStars that have no measured stars; this can happen after outlier rejection.
void computeCommonTangentPoint()
Sets a shared tangent point for all ccdImages, using the mean of the centers of all ccdImages.
Definition: Associations.cc:74
CcdImageList const & getCcdImageList() const
Definition: Associations.h:189
lsst::sphgeom::Circle computeBoundingCircle() const
Return the bounding circle in on-sky (RA, Dec) coordinates containing all CcdImages.
Definition: Associations.cc:90
int nCcdImagesValidForFit() const
return the number of CcdImages with non-empty catalogs to-be-fit.
void setEpoch(double epoch)
Common epoch of all of the ccdImages as a Julian Epoch Year (e.g.
Definition: Associations.h:120
void addCcdImage(std::shared_ptr< CcdImage > const &ccdImage)
Add a pre-constructed ccdImage to the ccdImageList.
Definition: Associations.h:146
void createCcdImage(afw::table::SourceCatalog &catalog, const std::shared_ptr< lsst::afw::geom::SkyWcs > &wcs, const std::shared_ptr< lsst::afw::image::VisitInfo > &visitInfo, const lsst::geom::Box2I &bbox, const std::string &filter, const std::shared_ptr< afw::image::PhotoCalib > &photoCalib, const std::shared_ptr< afw::cameraGeom::Detector > &detector, int visit, int ccd, const lsst::jointcal::JointcalControl &control)
Create a ccdImage from an exposure catalog and metadata, and add it to the list.
Definition: Associations.cc:62
void associateCatalogs(double matchCutInArcsec=0, bool useFittedList=false, bool enlargeFittedList=true)
incrementaly builds a merged catalog of all image catalogs
void setCommonTangentPoint(lsst::geom::Point2D const &commonTangentPoint)
Shared tangent point for all ccdImages (decimal degrees).
Definition: Associations.cc:85
double getEpoch() const
Common epoch of all of the ccdImages as a Julian Epoch Year (e.g.
Definition: Associations.h:119
Point getCommonTangentPoint() const
Shared tangent point for all ccdImages (decimal degrees).
Definition: Associations.h:109
void collectRefStars(afw::table::SimpleCatalog &refCat, geom::Angle matchCut, std::string const &fluxField, float refCoordinateErr, bool rejectBadFluxes=false)
Collect stars from an external reference catalog and associate them with fittedStars.
void prepareFittedStars(int minMeasurements)
Prepare the fittedStar list by making quality cuts and normalizing measurements.
void deprojectFittedStars()
Sends back the fitted stars coordinates on the sky FittedStarsList::inTangentPlaneCoordinates keeps t...
PYBIND11_MODULE(_cameraGeom, mod)
Definition: _cameraGeom.cc:38
A base class for image defects.