LSST Applications g013ef56533+7c9321ec0f,g042eb84c57+c6cfa41bc3,g199a45376c+0ba108daf9,g1fd858c14a+fcad0d0313,g210f2d0738+c0f94c6586,g262e1987ae+a7e710680e,g29ae962dfc+fb55f2edb0,g2ac17093b6+61d6563b1e,g2b1d02342f+df6f932764,g2cef7863aa+aef1011c0b,g2f7ad74990+c0f94c6586,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+53cf87ae69,g47891489e3+4316d04fff,g511e8cfd20+baa56acf6c,g53246c7159+8c5ae1fdc5,g54cd7ddccb+fd7ad03fde,g64539dfbff+c0f94c6586,g67b6fd64d1+4316d04fff,g67fd3c3899+c0f94c6586,g6985122a63+4316d04fff,g74acd417e5+ca833bee28,g786e29fd12+668abc6043,g81db2e9a8d+b2ec8e584f,g87389fa792+8856018cbb,g89139ef638+4316d04fff,g8d7436a09f+0a24083b20,g8ea07a8fe4+760ca7c3fc,g90f42f885a+033b1d468d,g97be763408+11eb8fd5b8,gbf99507273+8c5ae1fdc5,gcdda8b9158+e4c84c9d5c,gce8aa8abaa+8c5ae1fdc5,gd7ef33dd92+4316d04fff,gdab6d2f7ff+ca833bee28,ge410e46f29+4316d04fff,geaed405ab2+c4bbc419c6,gf9a733ac38+8c5ae1fdc5,w.2025.40
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: