Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: afw
-
Labels:
-
Story Points:2
-
Epic Link:
-
Sprint:AP F18-2
-
Team:Alert Production
Description
Given an accurate boresight and rotator angle from a camera, we should be able to construct our best initial estimate of the WCS for a sensor by combining that information with our own camera geometry, as this will probably produce better results that relying on any WCS provided directly by the camera. In fact, for LSST, it's not clear that there even will be a sensor WCS provided directly by the camera, because LSST raw data has amps in different HDUs and no full-sensor HDU that could unproblematically hold a full-sensor WCS.
To do without using astshim code directly, we should provide utility functions in afw with something like the following signatures:
TransformPoint2ToSpherePoint makeIntermediateWorldCoordsToSky(
|
SpherePoint const & position, // (ra, dec) that corresponds to FIELD_ANGLE origin |
Angle rotation // rotation about FIELD_ANGLE origin |
);
|
|
std::shared_ptr<SkyWcs> makeSkyWcs(
|
TransformPoint2ToPoint2 const & pixToIwc, |
TransformPoint2ToSpherePoint const & iwcToSky |
);
|
I believe that this function works (it might be easier once e.g. makeIntermediateWorldCoordsToSky is available).
The API is higher than the examples given above, but I think that it needs to be supported as part of this ticket (the details of the API could change, of course, but I deliberately chose to pass a Point2D and Angle and would be a little unhappy if this were changed as that seems to me to be the natural inputs for the user).
When
DM-14980is resolved the API will not need to include the camera.Parameters
camera: `lsst.afw.cameraGeom.Camera` The camera containing the detector
boresight: `lsst.afw.geom.Point2D` The boresight of the observation
rotation: `lsst.afw.geom.Angle` The rotation angle of the camera
"""
detector.makeCameraSys(cameraGeom.FIELD_ANGLE))