25 #ifndef LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H 26 #define LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H 62 int visitOrder = 7,
double errorPedestal_ = 0)
63 :
PhotometryModel(log, errorPedestal_), _fittingChips(false), _fittingVisits(false) {
77 void offsetParams(Eigen::VectorXd
const &delta)
override;
90 Eigen::VectorXd &derivatives)
const override;
115 template <
class ChipTransform,
class VisitTransform,
class ChipVisitMapping>
141 int visitOrder = 7,
double errorPedestal_ = 0)
143 LOG_GET(
"jointcal.ConstrainedFluxModel"), visitOrder,
145 initialize<FluxTransformSpatiallyInvariant, FluxTransformChebyshev, ChipVisitFluxMapping>(
146 ccdImageList, focalPlaneBBox, visitOrder);
177 return photoCalib->getCalibrationMean();
184 geom::Box2D const &focalPlaneBBox,
int visitOrder = 7,
185 double errorPedestal_ = 0)
187 LOG_GET(
"jointcal.ConstrainedMagnitudeModel"), visitOrder,
195 fittedStar.
getMag() -= delta;
228 #endif // LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H Objects used as position anchors, typically USNO stars.
virtual double transformError(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const =0
Return the on-sky transformed flux uncertainty for measuredStar on ccdImage.
double getRefError(RefStar const &refStar) const override
Return the refStar error appropriate for this model (e.g. fluxErr or magErr).
A floating-point coordinate rectangle geometry.
virtual double computeResidual(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const =0
Compute the residual between the model applied to a star and its associated fittedStar.
Relates transform(s) to their position in the fitting matrix and allows interaction with the transfor...
double computeRefResidual(FittedStar const &fittedStar, RefStar const &refStar) const override
Return the fittedStar - refStar residual appropriate for this model (e.g. flux - flux or mag - mag)...
virtual std::shared_ptr< afw::image::PhotoCalib > toPhotoCalib(CcdImage const &ccdImage) const =0
Return the mapping of ccdImage represented as a PhotoCalib.
double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib) override
Return the initial calibration to use from this photoCalib.
ConstrainedFluxModel(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, int visitOrder=7, double errorPedestal_=0)
std::map< VisitIdType, std::shared_ptr< PhotometryMapping > > VisitMapType
void offsetFittedStar(FittedStar &fittedStar, double delta) const override
Offset the appropriate flux or magnitude (by -delta).
double getFluxErr() const
std::size_t getTotalParameters() const override
Return the total number of parameters in this model.
afw::geom::TransformPoint2ToGeneric visitTransform
double getRefError(RefStar const &refStar) const override
Return the refStar error appropriate for this model (e.g. fluxErr or magErr).
A base class for image defects.
PhotometryMappingBase * findMapping(CcdImage const &ccdImage) const override
Return a pointer to the mapping associated with this ccdImage.
objects measured on actual images.
double computeRefResidual(FittedStar const &fittedStar, RefStar const &refStar) const override
Return the fittedStar - refStar residual appropriate for this model (e.g. flux - flux or mag - mag)...
ConstrainedMagnitudeModel(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, int visitOrder=7, double errorPedestal_=0)
void initialize(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, int visitOrder)
Initialize the chip, visit, and chipVisit mappings by creating appropriate transforms and mappings...
void computeParameterDerivatives(MeasuredStar const &measuredStar, CcdImage const &ccdImage, Eigen::VectorXd &derivatives) const override
Compute the parametric derivatives of this model.
std::map< CcdIdType, std::shared_ptr< PhotometryMapping > > ChipMapType
To hold the return of prepPhotoCalib.
std::unordered_map< CcdImageKey, std::unique_ptr< ChipVisitPhotometryMapping > > MapType
void dump(std::ostream &stream=std::cout) const override
Dump the contents of the transforms, for debugging.
double nanojanskyToABMagnitude(double flux)
Convert a flux in nanojansky to AB magnitude.
void offsetParams(Eigen::VectorXd const &delta) override
Offset the parameters by the provided amounts (by -delta).
std::shared_ptr< afw::geom::TransformPoint2ToPoint2 > pixToFocal
Photometry model with constraints, .
PrepPhotoCalib prepPhotoCalib(CcdImage const &ccdImage) const
Helper for preparing toPhotoCalib()
ConstrainedPhotometryModel(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, LOG_LOGGER log, int visitOrder=7, double errorPedestal_=0)
Construct a constrained photometry model.
virtual double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib)=0
Return the initial calibration to use from this photoCalib.
Handler of an actual image from a single CCD.
#define LOG_GET(logger)
Returns a Log object associated with logger.
ConstrainedPhotometryModel & operator=(ConstrainedPhotometryModel const &)=delete
The objects which have been measured several times.
double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib) override
Return the initial calibration to use from this photoCalib.
void freezeErrorTransform() override
Once this routine has been called, the error transform is not modified by offsetParams().
virtual double transform(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const =0
Return the on-sky transformed flux for measuredStar on ccdImage.
void getMappingIndices(CcdImage const &ccdImage, IndexVector &indices) const override
Get how this set of parameters (of length Npar()) map into the "grand" fit.
Eigen::Index assignIndices(std::string const &whatToFit, Eigen::Index firstIndex) override
Assign indices in the full matrix to the parameters being fit in the mappings, starting at firstIndex...
void offsetFittedStar(FittedStar &fittedStar, double delta) const override
Offset the appropriate flux or magnitude (by -delta).