24#include "pybind11/pybind11.h"
44using namespace pybind11::literals;
61 [](
auto &mod,
auto &cls) {
63 cls.def(py::init<double, double, daf::base::DateTime const &, double,
64 lsst::geom::Angle const &, lsst::geom::SpherePoint const &,
65 lsst::geom::SpherePoint const &, double, lsst::geom::Angle const &,
66 RotType const &, coord::Observatory const &, coord::Weather const &,
67 std::string const &, table::RecordId const &, double, std::string const &,
68 std::string const &, std::string const &, std::string const &, bool>(),
69 "exposureTime"_a = nan,
"darkTime"_a = nan,
"date"_a = daf::base::DateTime(),
70 "ut1"_a = nan,
"era"_a = nanAngle,
71 "boresightRaDec"_a = lsst::geom::SpherePoint(nanAngle, nanAngle),
72 "boresightAzAlt"_a = lsst::geom::SpherePoint(nanAngle, nanAngle),
73 "boresightAirmass"_a = nan,
"boresightRotAngle"_a = nanAngle,
74 "rotType"_a = RotType::UNKNOWN,
75 "observatory"_a = coord::Observatory(nanAngle, nanAngle, nan),
76 "weather"_a = coord::Weather(nan, nan, nan),
"instrumentLabel"_a =
"",
"id"_a = 0,
77 "focusZ"_a = nan,
"observationType"_a =
"",
"scienceProgram"_a =
"",
79 "observationReason"_a =
"",
"object"_a =
"",
"hasSimulatedContent"_a = false);
80 cls.def(py::init<daf::base::PropertySet const &>(),
"metadata"_a);
81 cls.def(py::init<VisitInfo const &>(),
"visitInfo"_a);
83 table::io::python::addPersistableMethods<VisitInfo>(cls);
87 "__eq__", [](VisitInfo const &self, VisitInfo const &other) { return self == other; },
145 utils::python::addOutputOp(cls,
"__repr__");
149 wrappers.wrapType(py::enum_<RotType>(wrappers.module,
"RotType"), [](
auto &mod,
auto &enm) {
150 enm.value(
"UNKNOWN", RotType::UNKNOWN);
151 enm.value(
"SKY", RotType::SKY);
152 enm.value(
"HORIZON", RotType::HORIZON);
153 enm.value(
"MOUNT", RotType::MOUNT);
159 wrappers.addInheritanceDependency(
"lsst.daf.base");
160 wrappers.addInheritanceDependency(
"lsst.geom");
161 wrappers.addInheritanceDependency(
"lsst.afw.coord");
162 wrappers.addInheritanceDependency(
"lsst.afw.typehandling");
165 wrappers.wrap([](
auto &mod) {
167 mod.def(
"setVisitInfoMetadata", &detail::setVisitInfoMetadata,
"metadata"_a,
"visitInfo"_a);
168 mod.def(
"stripVisitInfoKeywords", &detail::stripVisitInfoKeywords,
"metadata"_a);
Information about a single exposure of an imaging camera.
daf::base::DateTime getDate() const
get uniform date and time at middle of exposure
coord::Weather getWeather() const
get basic weather information
lsst::geom::Angle getLocalEra() const
double getUt1() const
get UT1 (universal time) MJD date at middle of exposure
double getBoresightAirmass() const
get airmass at the boresight, relative to zenith at sea level (and at the middle of the exposure,...
std::string getScienceProgram() const
lsst::geom::Angle getBoresightHourAngle() const
lsst::geom::Angle getBoresightRotAngle() const
Get rotation angle at boresight at middle of exposure.
lsst::geom::Angle getEra() const
get earth rotation angle at middle of exposure
bool isPersistable() const noexcept override
Return true if this particular object can be persisted using afw::table::io.
table::RecordId getId() const
std::string getObservationReason() const
double getExposureTime() const
get exposure duration (shutter open time); (sec)
RotType getRotType() const
get rotation type of boresightRotAngle
lsst::geom::SpherePoint getBoresightAzAlt() const
get refracted apparent topocentric Az/Alt position at the boresight (and at the middle of the exposur...
std::string getObject() const
lsst::geom::SpherePoint getBoresightRaDec() const
get ICRS RA/Dec position at the boresight (and at the middle of the exposure, if it varies with time)
std::string getInstrumentLabel() const
bool getHasSimulatedContent() const
double getDarkTime() const
get time from CCD flush to exposure readout, including shutter open time (despite the name); (sec)
coord::Observatory getObservatory() const
get observatory longitude, latitude and elevation
lsst::geom::Angle getBoresightParAngle() const
Get parallactic angle at the boresight.
std::string getObservationType() const
Interface supporting iteration over heterogenous containers.
A class representing an angle.
void declareVisitInfo(lsst::utils::python::WrapperCollection &wrappers)
void declareRotType(lsst::utils::python::WrapperCollection &wrappers)
void wrapVisitInfo(lsst::utils::python::WrapperCollection &)