Loading [MathJax]/extensions/tex2jax.js
LSST Applications g0485b4d2cb+c8d56b10d4,g0fba68d861+c513f10703,g1ec0fe41b4+3e153770da,g1fd858c14a+fca1f36da6,g2440f9efcc+8c5ae1fdc5,g35bb328faa+8c5ae1fdc5,g4d2262a081+73db4aee98,g53246c7159+8c5ae1fdc5,g56a49b3a55+8699aedcf1,g60b5630c4e+0e13f5d8e4,g65f11fe441+d5838b1573,g67b6fd64d1+035c836e50,g6ba5f4ee81+5218eae6c4,g78460c75b0+7e33a9eb6d,g786e29fd12+668abc6043,g8352419a5c+8c5ae1fdc5,g8852436030+5e76f8a839,g89139ef638+035c836e50,g94187f82dc+0e13f5d8e4,g989de1cb63+035c836e50,g9d31334357+0e13f5d8e4,g9f33ca652e+190f04d267,gabe3b4be73+8856018cbb,gabf8522325+21619da9f3,gb1101e3267+e14fd59f59,gb89ab40317+035c836e50,gc91f06edcd+a47578e525,gcef618a4dd+0e13f5d8e4,gcf25f946ba+5e76f8a839,gd6cbbdb0b4+958adf5c1f,gdb8242c116+18fb55f1cc,gde0f65d7ad+fe97e93be4,ge278dab8ac+83c63f4893,ge410e46f29+035c836e50,gf35d7ec915+97dd712d81,gf5e32f922b+8c5ae1fdc5,gf67bdafdda+035c836e50,gf6800124b1+a9633b82fa,w.2025.19
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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

list vertexVecList = [numpy.dot(rotMat, unrotVertexVec) for unrotVertexVec in unrotVertexVecList]
 
 faceVecList = _sortedVectorList(unsortedFaceList)
 

Protected Attributes

 _withFacesOnPoles = bool(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 = bool(withFacesOnPoles)
protected

Definition at line 18 of file dodecahedron.py.

◆ faceVecList

lsst.skymap.detail.dodecahedron.Dodecahedron.faceVecList = _sortedVectorList(unsortedFaceList)

Definition at line 45 of file dodecahedron.py.

◆ vertexVecList

list lsst.skymap.detail.dodecahedron.Dodecahedron.vertexVecList = [numpy.dot(rotMat, unrotVertexVec) for unrotVertexVec in unrotVertexVecList]

Definition at line 43 of file dodecahedron.py.


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