Coverage for python/lsst/skymap/detail/wcsFactory.py: 46%

11 statements  

« prev     ^ index     » next       coverage.py v7.5.1, created at 2024-05-07 02:53 -0700

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# 

22 

23__all__ = ['WcsFactory'] 

24 

25import lsst.geom as geom 

26import lsst.afw.geom as afwGeom 

27 

28 

29class WcsFactory: 

30 """A factory for creating Wcs objects for the sky tiles. 

31 

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 """ 

46 

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) 

52 

53 def makeWcs(self, crPixPos, crValCoord): 

54 """Make a Wcs. 

55 

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. 

62 

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)