LSST Applications g00d0e8bbd7+edbf708997,g03191d30f7+6b31559d11,g118115db7c+ac820e85d2,g199a45376c+5137f08352,g1fd858c14a+90100aa1a7,g262e1987ae+64df5f6984,g29ae962dfc+1eb4aece83,g2cef7863aa+73c82f25e4,g3541666cd7+1e37cdad5c,g35bb328faa+edbf708997,g3fd5ace14f+fb4e2866cc,g47891489e3+19fcc35de2,g53246c7159+edbf708997,g5b326b94bb+d622351b67,g64539dfbff+dfe1dff262,g67b6fd64d1+19fcc35de2,g74acd417e5+cfdc02aca8,g786e29fd12+af89c03590,g7aefaa3e3d+dc1a598170,g87389fa792+a4172ec7da,g88cb488625+60ba2c3075,g89139ef638+19fcc35de2,g8d4809ba88+dfe1dff262,g8d7436a09f+db94b797be,g8ea07a8fe4+79658f16ab,g90f42f885a+6577634e1f,g9722cb1a7f+d8f85438e7,g98df359435+7fdd888faa,ga2180abaac+edbf708997,ga9e74d7ce9+128cc68277,gbf99507273+edbf708997,gca7fc764a6+19fcc35de2,gd7ef33dd92+19fcc35de2,gdab6d2f7ff+cfdc02aca8,gdbb4c4dda9+dfe1dff262,ge410e46f29+19fcc35de2,ge41e95a9f2+dfe1dff262,geaed405ab2+062dfc8cdc,w.2025.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
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: