Coverage for python/lsst/skymap/detail/wcsFactory.py: 46%
11 statements
« prev ^ index » next coverage.py v7.4.1, created at 2024-02-01 11:56 +0000
« prev ^ index » next coverage.py v7.4.1, created at 2024-02-01 11:56 +0000
1#
2# LSST Data Management System
3# Copyright 2008, 2009, 2010 LSST Corporation.
4#
5# This product includes software developed by the
6# LSST Project (http://www.lsst.org/).
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the LSST License Statement and
19# the GNU General Public License along with this program. If not,
20# see <http://www.lsstcorp.org/LegalNotices/>.
21#
23__all__ = ['WcsFactory']
25import lsst.geom as geom
26import lsst.afw.geom as afwGeom
29class WcsFactory:
30 """A factory for creating Wcs objects for the sky tiles.
32 Parameters
33 ----------
34 pixelScale : `lsst.geom.Angle`
35 Desired scale, as sky/pixel.
36 projection : `str`
37 FITS-standard 3-letter name of projection, e.g.: TAN (tangent),
38 STG (stereographic), MOL (Mollweide's), AIT (Hammer-Aitoff)
39 see Representations of celestial coordinates in FITS
40 (Calabretta and Greisen, 2002).
41 rotation : `lsst.geom.Angle`
42 Rotation relative to cardinal.
43 flipX : `bool`
44 Flip the X axis?
45 """
47 def __init__(self, pixelScale, projection, rotation=0*geom.radians, flipX=False):
48 if len(projection) != 3:
49 raise RuntimeError("projection=%r; must have length 3" % (projection,))
50 self._projection = projection
51 self._cdMatrix = afwGeom.makeCdMatrix(scale=pixelScale, orientation=rotation, flipX=flipX)
53 def makeWcs(self, crPixPos, crValCoord):
54 """Make a Wcs.
56 Parameters
57 ----------
58 crPixPos : `lsst.geom.Point2D`
59 crPix for WCS, using the LSST standard.
60 crValCoord : `lsst.geom.SpherePoint`
61 ICRS crVal for WCS.
63 Returns
64 -------
65 results : `lsst.afw.geom.SkyWcs`
66 The new SkyWcs object.
67 """
68 return afwGeom.makeSkyWcs(crpix=crPixPos, crval=crValCoord,
69 cdMatrix=self._cdMatrix, projection=self._projection)