LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Attributes | List of all members
lsst.skymap.detail.dodecahedron.Dodecahedron Class Reference

Public Member Functions

 __init__ (self, withFacesOnPoles=False)
 
 getFaceCtrList (self)
 
 getFaceCtr (self, ind)
 
 getVertices (self, ind)
 
 getFaceInd (self, vec)
 
 getWithFacesOnPoles (self)
 

Public Attributes

 vertexVecList
 
 faceVecList
 

Protected Attributes

 _withFacesOnPoles
 

Detailed Description

A dodecahedron with  positions of faces and associated vertices.

Parameters
----------
withFacesOnPoles : `bool`
    If True center a face on each pole, else put a vertex on each pole.

Definition at line 9 of file dodecahedron.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.skymap.detail.dodecahedron.Dodecahedron.__init__ ( self,
withFacesOnPoles = False )

Definition at line 17 of file dodecahedron.py.

17 def __init__(self, withFacesOnPoles=False):
18 self._withFacesOnPoles = bool(withFacesOnPoles)
19
20 # Basis cartesian vectors describing the faces of a dodecahedron;
21 # the full set of vectors is obtained by choosing both signs of each
22 # nonzero component of each vector.
23 # The orientation of the resulting dodecahedron, while very convenient
24 # for specifying face vectors, is not an orientation we want so it
25 # must be rotated.
26 g = (1.0 + math.sqrt(5.0)) / 2.0
27 faceBases = (
28 (0, 1, g),
29 (1, g, 0),
30 (g, 0, 1),
31 )
32 unrotFaceVecList = _computeFullVecList(faceBases)
33 unrotVertexVecList = _computeDodecahedronVertices(unrotFaceVecList)
34
35 if self._withFacesOnPoles:
36 # one face is centered on each pole
37 vec0, vec1 = _findClosePair(unrotFaceVecList, 0)
38 rotMat = _computeCoordTransform(vec0, vec1)
39 else:
40 # one vertex is on each pole
41 vec0, vec1 = _findClosePair(unrotVertexVecList, 0)
42 rotMat = _computeCoordTransform(vec0, vec1, vec1NegativeX=True)
43 self.vertexVecList = [numpy.dot(rotMat, unrotVertexVec) for unrotVertexVec in unrotVertexVecList]
44 unsortedFaceList = [numpy.dot(rotMat, unrotFaceVec) for unrotFaceVec in unrotFaceVecList]
45 self.faceVecList = _sortedVectorList(unsortedFaceList)
46

Member Function Documentation

◆ getFaceCtr()

lsst.skymap.detail.dodecahedron.Dodecahedron.getFaceCtr ( self,
ind )
Return the center of the specified face.

Parameters
----------
ind : `int`
    Index of the face to look up.

Returns
-------
results : `numpy.ndarray`
    Face center as a unit vector.

Definition at line 57 of file dodecahedron.py.

57 def getFaceCtr(self, ind):
58 """Return the center of the specified face.
59
60 Parameters
61 ----------
62 ind : `int`
63 Index of the face to look up.
64
65 Returns
66 -------
67 results : `numpy.ndarray`
68 Face center as a unit vector.
69 """
70 return self.faceVecList[ind][:]
71

◆ getFaceCtrList()

lsst.skymap.detail.dodecahedron.Dodecahedron.getFaceCtrList ( self)
Return a list of face centers.

Returns
-------
results : `list` of `numpy.ndarray`
    A list of face centers (in index order); each a unit vector.

Definition at line 47 of file dodecahedron.py.

47 def getFaceCtrList(self):
48 """Return a list of face centers.
49
50 Returns
51 -------
52 results : `list` of `numpy.ndarray`
53 A list of face centers (in index order); each a unit vector.
54 """
55 return self.faceVecList[:]
56

◆ getFaceInd()

lsst.skymap.detail.dodecahedron.Dodecahedron.getFaceInd ( self,
vec )
Return the index of the face containing the cartesian vector.

Parameters
----------
vec : `numpy.ndarray`
    Cartesian vector (length is ignored).

Returns
-------
results : `numpy.ndarray`
    Index of face containing vec.

Definition at line 97 of file dodecahedron.py.

97 def getFaceInd(self, vec):
98 """Return the index of the face containing the cartesian vector.
99
100 Parameters
101 ----------
102 vec : `numpy.ndarray`
103 Cartesian vector (length is ignored).
104
105 Returns
106 -------
107 results : `numpy.ndarray`
108 Index of face containing vec.
109 """
110 return numpy.argmax(numpy.dot(self.faceVecList, vec))
111

◆ getVertices()

lsst.skymap.detail.dodecahedron.Dodecahedron.getVertices ( self,
ind )
Return the vertices for a given face.

Parameters
----------
ind : `int`
    Face index.

Returns
-------
sortedVertexList : `list` of `numpy.ndarray`
    A list of vertices, each a unit vector.

Definition at line 72 of file dodecahedron.py.

72 def getVertices(self, ind):
73 """Return the vertices for a given face.
74
75 Parameters
76 ----------
77 ind : `int`
78 Face index.
79
80 Returns
81 -------
82 sortedVertexList : `list` of `numpy.ndarray`
83 A list of vertices, each a unit vector.
84 """
85 faceVec = self.getFaceCtr(ind)
86 vertexList, indList = _findCloseList(self.vertexVecList, faceVec)
87
88 # sort vertex list about face vector (direction is random)
89 sortedVertexList = [vertexList[0]]
90 vertexList = list(vertexList[1:])
91 while len(vertexList) != 0:
92 nearVertexList, nearInd = _findCloseList(vertexList, sortedVertexList[-1])
93 sortedVertexList.append(nearVertexList[0])
94 vertexList.pop(nearInd[0])
95 return sortedVertexList
96

◆ getWithFacesOnPoles()

lsst.skymap.detail.dodecahedron.Dodecahedron.getWithFacesOnPoles ( self)

Definition at line 112 of file dodecahedron.py.

112 def getWithFacesOnPoles(self):
113 return self._withFacesOnPoles
114
115

Member Data Documentation

◆ _withFacesOnPoles

lsst.skymap.detail.dodecahedron.Dodecahedron._withFacesOnPoles
protected

Definition at line 18 of file dodecahedron.py.

◆ faceVecList

lsst.skymap.detail.dodecahedron.Dodecahedron.faceVecList

Definition at line 45 of file dodecahedron.py.

◆ vertexVecList

lsst.skymap.detail.dodecahedron.Dodecahedron.vertexVecList

Definition at line 43 of file dodecahedron.py.


The documentation for this class was generated from the following file: