lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
afw
cameraGeom
_makePixelToTanPixel.py
Go to the documentation of this file.
1
# This file is part of afw.
2
#
3
# Developed for the LSST Data Management System.
4
# This product includes software developed by the LSST Project
5
# (https://www.lsst.org).
6
# See the COPYRIGHT file at the top-level directory of this distribution
7
# for details of code ownership.
8
#
9
# This program is free software: you can redistribute it and/or modify
10
# it under the terms of the GNU General Public License as published by
11
# the Free Software Foundation, either version 3 of the License, or
12
# (at your option) any later version.
13
#
14
# This program is distributed in the hope that it will be useful,
15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
# GNU General Public License for more details.
18
#
19
# You should have received a copy of the GNU General Public License
20
# along with this program. If not, see <https://www.gnu.org/licenses/>.
21
22
__all__ = [
"makePixelToTanPixel"
]
23
24
import
lsst.geom
25
import
lsst.afw.geom
26
27
28
def
makePixelToTanPixel
(bbox, orientation, focalPlaneToField, pixelSizeMm):
29
"""Make a Transform whose forward direction converts PIXELS to TAN_PIXELS
30
for one detector.
31
32
Parameters
33
----------
34
bbox : `lsst.geom.Box2I`
35
Detector bounding box.
36
orientation : `lsst.afw.cameraGeom.Orientation`
37
Orientation of detector in focal plane.
38
focalPlaneToField : `lsst.afw.geom.TransformPoint2ToPoint2`
39
A transform that converts from focal plane (mm) to field angle
40
coordinates (radians) in the forward direction.
41
pixelSizeMm : `lsst.geom.Extent2D`
42
Size of the pixel in mm in X and Y.
43
44
Returns
45
-------
46
transform : `lsst.afw.geom.TransformPoint2ToPoint2`
47
A transform whose forward direction converts PIXELS to TAN_PIXELS.
48
49
Notes
50
-----
51
PIXELS and TAN_PIXELS are described in the CameraGeom documentation under
52
:ref:`camera coordinate systems<section_Camera_Coordinate_Systems>`.
53
"""
54
pixelToFocalPlane = orientation.makePixelFpTransform(pixelSizeMm)
55
pixelToField = pixelToFocalPlane.then(focalPlaneToField)
56
# fieldToTanPix is affine and matches fieldToPix at field center
57
# Note: focal plane to field angle is typically a radial transform,
58
# and linearizing the inverse transform of that may fail,
59
# so linearize the forward direction instead. (pixelToField is pixelToFocalPlane,
60
# an affine transform, followed by focalPlaneToField,
61
# so the same consideration applies to pixelToField)
62
pixAtFieldCtr = pixelToField.applyInverse(
lsst.geom.Point2D
(0, 0))
63
tanPixToFieldAffine =
lsst.afw.geom.linearizeTransform
(pixelToField, pixAtFieldCtr)
64
fieldToTanPix =
lsst.afw.geom.makeTransform
(tanPixToFieldAffine.inverted())
65
66
return
pixelToField.then(fieldToTanPix)
lsst::geom::Point< double, 2 >
lsst::afw::cameraGeom._makePixelToTanPixel.makePixelToTanPixel
makePixelToTanPixel(bbox, orientation, focalPlaneToField, pixelSizeMm)
Definition
_makePixelToTanPixel.py:28
lsst::afw::geom
Definition
frameSetUtils.h:40
lsst::afw::geom::makeTransform
std::shared_ptr< TransformPoint2ToPoint2 > makeTransform(lsst::geom::AffineTransform const &affine)
Wrap an lsst::geom::AffineTransform as a Transform.
Definition
transformFactory.cc:154
lsst::afw::geom::linearizeTransform
lsst::geom::AffineTransform linearizeTransform(TransformPoint2ToPoint2 const &original, lsst::geom::Point2D const &inPoint)
Approximate a Transform by its local linearization.
Definition
transformFactory.cc:132
lsst::geom
Generated on
for lsst.afw by
1.17.0