lsst.afw
20.0.0-4-gde602ef96+5
|
Go to the documentation of this file.
24 #ifndef LSST_AFW_GEOM_SKYWCS_H
25 #define LSST_AFW_GEOM_SKYWCS_H
335 return _transform->applyForward(
pixel);
341 return _transform->applyForward(pixels);
350 return _transform->applyInverse(sky);
353 return _transform->applyInverse(sky);
473 void _computeCache() {
474 _transform = std::make_shared<TransformPoint2ToSpherePoint>(*_frameDict->
getMapping(),
true);
518 bool modifyActualPixels);
548 Eigen::Matrix2d
const &cdMatrix,
std::string const &projection =
"TAN");
583 Eigen::Matrix2d
const &cdMatrix, Eigen::MatrixXd
const &sipA,
584 Eigen::MatrixXd
const &sipB);
600 Eigen::Matrix2d
const &cdMatrix, Eigen::MatrixXd
const &sipA,
601 Eigen::MatrixXd
const &sipB, Eigen::MatrixXd
const &sipAp,
602 Eigen::MatrixXd
const &sipBp);
620 bool simplify =
true);
628 bool simplify =
true);
constexpr AngleUnit degrees
std::shared_ptr< Mapping > getMapping(int from, std::string const &to) const
lsst::geom::AffineTransform linearizeSkyToPixel(lsst::geom::SpherePoint const &coord, lsst::geom::AngleUnit const &skyUnit) const
Return the local linear approximation to skyToPixel at a point given in sky coordinates.
bool isFits() const
Return true getFitsMetadata(true) will succeed, false if not.
std::string getPersistenceName() const override
Return the unique name used to persist this object and look up its factory.
bool isFlipped() const
Does the WCS follow the convention of North=Up, East=Left?
static std::shared_ptr< SkyWcs > readString(std::string &str)
Deserialize a SkyWcs from a string, using the same format as readStream.
table::Key< table::Array< std::uint8_t > > wcs
std::string toString() const override
Create a string representation of this object.
std::shared_ptr< SkyWcs > copyAtShiftedPixelOrigin(lsst::geom::Extent2D const &shift) const
Return a copy of this SkyWcs with the pixel origin shifted by the specified amount.
bool isPersistable() const noexcept override
Return true if this particular object can be persisted using afw::table::io.
SkyWcs & operator=(SkyWcs const &)=delete
std::string getPythonModule() const override
Return the fully-qualified Python module that should be imported to guarantee that its factory is reg...
std::vector< lsst::geom::Point2D > skyToPixel(std::vector< lsst::geom::SpherePoint > const &sky) const
std::shared_ptr< SkyWcs > makeModifiedWcs(TransformPoint2ToPoint2 const &pixelTransform, SkyWcs const &wcs, bool modifyActualPixels)
Create a new SkyWcs whose pixels are transformed by pixelTransform, as described below.
bool operator!=(SkyWcs const &other) const
A 2-dimensional celestial WCS that transform pixels to ICRS RA/Dec, using the LSST standard for pixel...
Interface supporting iteration over heterogenous containers.
table::PointKey< double > crval
void write(OutputArchiveHandle &handle) const override
Write the object to one or more catalogs.
std::shared_ptr< RecordT > src
std::shared_ptr< typehandling::Storable > cloneStorable() const override
Create a new SkyWcs that is a copy of this one.
SkyWcs(SkyWcs const &)=default
std::ostream & operator<<(std::ostream &os, GenericEndpoint const &endpoint)
Print "GenericEndpoint(_n_)" to the ostream where _n_ is the number of axes, e.g. "GenericAxes(4)".
SkyWcs(SkyWcs &&)=default
std::shared_ptr< TransformPoint2ToPoint2 > getPixelToIntermediateWorldCoords(SkyWcs const &wcs, bool simplify=true)
Return a transform from pixel coordinates to intermediate world coordinates.
std::vector< lsst::geom::SpherePoint > pixelToSky(std::vector< lsst::geom::Point2D > const &pixels) const
static std::string getShortClassName()
lsst::geom::Point2D skyToPixel(lsst::geom::SpherePoint const &sky) const
Compute pixel position(s) from sky position(s)
bool operator==(SkyWcs const &other) const
Equality is based on the string representations being equal.
std::shared_ptr< SkyWcs > makeTanSipWcs(lsst::geom::Point2D const &crpix, lsst::geom::SpherePoint const &crval, Eigen::Matrix2d const &cdMatrix, Eigen::MatrixXd const &sipA, Eigen::MatrixXd const &sipB)
Construct a TAN-SIP SkyWcs with forward SIP distortion terms and an iterative inverse.
table::PointKey< double > crpix
Eigen::Matrix2d getCdMatrix() const
Get the 2x2 CD matrix at the pixel origin.
ItemVariant const * other
bool equals(typehandling::Storable const &other) const noexcept override
Compare this object to another Storable.
std::shared_ptr< SkyWcs > makeFlippedWcs(SkyWcs const &wcs, bool flipLR, bool flipTB, lsst::geom::Point2D const ¢er)
Return a copy of a FITS-WCS with pixel positions flipped around a specified center.
Transform< Point2Endpoint, Point2Endpoint > TransformPoint2ToPoint2
SkyWcs & operator=(SkyWcs &&)=delete
table::PointKey< int > pixel
lsst::geom::SpherePoint pixelToSky(lsst::geom::Point2D const &pixel) const
Compute sky position(s) from pixel position(s)
A base class for image defects.
std::shared_ptr< TransformPoint2ToSpherePoint > getIntermediateWorldCoordsToSky(SkyWcs const &wcs, bool simplify=true)
Return a transform from intermediate world coordinates to sky.
lsst::geom::AffineTransform linearizePixelToSky(lsst::geom::SpherePoint const &coord, lsst::geom::AngleUnit const &skyUnit) const
Return the local linear approximation to pixelToSky at a point given in sky coordinates.
std::shared_ptr< SkyWcs > getTanWcs(lsst::geom::Point2D const &pixel) const
Get a local TAN WCS approximation to this WCS at the specified pixel position.
std::shared_ptr< const ast::FrameDict > getFrameDict() const
Get the contained FrameDict.
Eigen::Matrix2d makeCdMatrix(lsst::geom::Angle const &scale, lsst::geom::Angle const &orientation=0 *lsst::geom::degrees, bool flipX=false)
Make a WCS CD matrix.
std::shared_ptr< TransformPoint2ToPoint2 > makeWcsPairTransform(SkyWcs const &src, SkyWcs const &dst)
A Transform obtained by putting two SkyWcs objects "back to back".
std::shared_ptr< daf::base::PropertyList > getFitsMetadata(bool precise=false) const
Return the WCS as FITS WCS metadata.
A CRTP facade class for subclasses of Persistable.
lsst::geom::Angle getPixelScale() const
Get the pixel scale at the pixel origin.
bool hasFitsApproximation() const
Does this SkyWcs have an approximate SkyWcs that can be represented as standard FITS WCS?
def scale(algorithm, min, max=None, frame=None)
std::shared_ptr< SkyWcs > makeSkyWcs(daf::base::PropertySet &metadata, bool strip=false)
Construct a SkyWcs from FITS keywords.
lsst::geom::Point2D getPixelOrigin() const
Get the pixel origin, in pixels, using the LSST convention.
std::string writeString() const
Serialize this SkyWcs to a string, using the same format as writeStream.
static std::shared_ptr< SkyWcs > readStream(std::istream &is)
Deserialize a SkyWcs from an input stream.
std::shared_ptr< const TransformPoint2ToSpherePoint > getTransform() const
Get a TransformPoint2ToSpherePoint that transforms pixels to sky in the forward direction and sky to ...
lsst::geom::SpherePoint getSkyOrigin() const
Get the sky origin, the celestial fiducial point.
io::OutputArchiveHandle OutputArchiveHandle
void writeStream(std::ostream &os) const
Serialize this SkyWcs to an output stream.
~SkyWcs() override=default
lsst::geom::SpherePoint pixelToSky(double x, double y) const