Namespace lsst::afw::geom::detail¶
-
namespace
detail
Functions
-
std::shared_ptr<ast::FrameSet>
readFitsWcs
(daf::base::PropertySet &metadata, bool strip = true) Read a FITS convention WCS FrameSet from FITS metadata
The resulting FrameSet may be any kind of WCS supported by FITS; if it is a celestial WCS then 1,1 will be the lower left corner of the image (the FITS convention, not the LSST convention).
This routine replaces RADECSYS with RADESYS if the former is present and the latter is not, since that is a common misspelling in FITS headers.
The returned FrameSet will have an IWC (intermediate world coordinate system) frame.
- Parameters
[inout] metadata
: FITS header cards[in] strip
: If true: strip items frommetadata
used to create the WCS, such as RADESYS, EQUINOX, CTYPE12, CRPIX12, CRVAL12, etc. Always keep keywords that might be wanted for other purpposes, including NAXIS12 and date-related keywords such as “DATE-OBS” and “TIMESYS” (but not “EQUINOX”).
- Exceptions
pex::exceptions::TypeError
: if the metadata does not contain a FITS-WCS
-
std::shared_ptr<ast::FrameDict>
readLsstSkyWcs
(daf::base::PropertySet &metadata, bool strip = true) Read an LSST celestial WCS FrameDict from a FITS header.
Calls getImageXY0FromMetadata to determine image XY0.
Saves CRVAL by setting the output SkyFrame’s SkyRef to CRVAL and SkyRefIs=”Ignore” (so SkyRef is not treated as an offset).
The frames of the returned WCS will be as follows:
”PIXELS” (base frame): pixel frame with 0,0 the lower left corner of the image (LSST convention)
”IWC”: FITS WCS intermediate world coordinate system
”SKY” (current frame): an ast::SkyFrame with domain “SKY”: ICRS RA, Dec
- Warning
Does not compensate for the offset between a subimage and its parent image; callers must do that manually, e.g. by calling SkyWcs::copyAtShiftedPosition.
- Warning
the general SkyWcs generated by LSST software cannot be exactly represented using standard WCS FITS cards, and so this function cannot read those. This function is intended for two purposes:
Read the standard FITS WCS found in raw data and other images from non-LSST observatories and convert it to the LSST pixel convention.
Read the approximate FITS WCS that LSST writes to FITS images (for use by non-LSST code).
All frames are instances of ast::Frame except the SKY frame. All have 2 axes.
- Parameters
[inout] metadata
: FITS header cards[in] strip
: If true: strip items frommetadata
used to create the WCS, such as RADESYS, EQUINOX, CTYPE12, CRPIX12, CRVAL12, etc. Always keep keywords that might be wanted for other purpposes, including NAXIS12 and date-related keywords such as “DATE-OBS” and “TIMESYS” (but not “EQUINOX”).
- Exceptions
lsst::pex::exceptions::TypeError
: if the metadata does not describe a celestial WCS.
-
std::shared_ptr<daf::base::PropertyList>
getPropertyListFromFitsChan
(ast::FitsChan &fitsChan) Copy values from an AST FitsChan into a PropertyList
- Warning
COMMENT and HISTORY cards are treated as string values
- Exceptions
lsst::pex::exceptions::TypeError
: iffitsChan
contains cards whose type is not supported byPropertyList
: complex numbers, or cards with no value
-
ast::FitsChan
getFitsChanFromPropertyList
(daf::base::PropertySet &metadata, std::set<std::string> const &excludeNames = {}, std::string options = "") Construct AST FitsChan from PropertyList
- Return
an ast::FitsChan representing this PropertyList
- Parameters
[in] metadata
: Metadata to transfer; if this is a PropertyList then the order of items is preserved.[in] excludeNames
: Names of entries to exclude from the returned header string.[in] options
: Options string to pass to ast::FitsChan constructor.
Deserialize a Transform from an input stream
- Template Parameters
- Parameters
[in] is
: input stream from which to deserialize this Transform
-
template<class
Transform
>
voidwriteStream
(Transform const &transform, std::ostream &os) Serialize a Transform to an output stream
Version 1 format is as follows:
The version number (an integer)
A space
The short class name, as obtained from getShortClassName
A space
The contained ast::FrameSet written using FrameSet.show(os, false)
Variables
-
constexpr int
serializationVersion
= 1 version of serialization used when writing (older versions may also be supported when reading)
-
std::shared_ptr<ast::FrameSet>