LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Member Functions | Public Attributes | Private Attributes | List of all members
lsst.skymap.detail.dodecahedron.Dodecahedron Class Reference
Inheritance diagram for lsst.skymap.detail.dodecahedron.Dodecahedron:

Public Member Functions

def __init__
 
def getFaceCtrList
 
def getFaceCtr
 
def getVertices
 
def getFaceInd
 
def getWithFacesOnPoles
 

Public Attributes

 vertexVecList
 
 faceVecList
 

Private Attributes

 _withFacesOnPoles
 

Detailed Description

A dodecahedron

Contains positions of faces and associated vertices

Definition at line 6 of file dodecahedron.py.

Constructor & Destructor Documentation

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

@param[in] withFacesOnPoles: if True center a face on each pole, else put a vertex on each pole

Definition at line 11 of file dodecahedron.py.

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

Member Function Documentation

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

@param[in] ind: face index
@return face center as a unit vector (numpy array)

Definition at line 50 of file dodecahedron.py.

50 
51  def getFaceCtr(self, ind):
52  """Return the center of the specified face
53 
54  @param[in] ind: face index
55  @return face center as a unit vector (numpy array)
56  """
57  return self.faceVecList[ind][:]
def lsst.skymap.detail.dodecahedron.Dodecahedron.getFaceCtrList (   self)
Return a list of face centers

@return a list of face centers (in index order); each a unit vector (numpy array)

Definition at line 43 of file dodecahedron.py.

43 
44  def getFaceCtrList(self):
45  """Return a list of face centers
46 
47  @return a list of face centers (in index order); each a unit vector (numpy array)
48  """
49  return self.faceVecList[:]
def lsst.skymap.detail.dodecahedron.Dodecahedron.getFaceInd (   self,
  vec 
)
Return the index of the face containing the cartesian vector

@param[in] vec: cartesian vector (length is ignored)
@return index of face containing vec

Definition at line 76 of file dodecahedron.py.

76 
77  def getFaceInd(self, vec):
78  """Return the index of the face containing the cartesian vector
79 
80  @param[in] vec: cartesian vector (length is ignored)
81  @return index of face containing vec
82  """
83  return numpy.argmax(numpy.dot(self.faceVecList, vec))
def lsst.skymap.detail.dodecahedron.Dodecahedron.getVertices (   self,
  ind 
)
Return the vertices for a given face

@param[in] ind: face index
@return a list of vertices, each a unit vector (numpy array)

Definition at line 58 of file dodecahedron.py.

58 
59  def getVertices(self, ind):
60  """Return the vertices for a given face
61 
62  @param[in] ind: face index
63  @return a list of vertices, each a unit vector (numpy array)
64  """
65  faceVec = self.getFaceCtr(ind)
66  vertexList, indList = _findCloseList(self.vertexVecList, faceVec)
67 
68  # sort vertex list about face vector (direction is random)
69  sortedVertexList = [vertexList[0]]
70  vertexList = list(vertexList[1:])
71  while len(vertexList) != 0:
72  nearVertexList, nearInd = _findCloseList(vertexList, sortedVertexList[-1])
73  sortedVertexList.append(nearVertexList[0])
74  vertexList.pop(nearInd[0])
75  return sortedVertexList
def lsst.skymap.detail.dodecahedron.Dodecahedron.getWithFacesOnPoles (   self)
Get withFacesOnPoles parameter

Definition at line 84 of file dodecahedron.py.

84 
85  def getWithFacesOnPoles(self):
86  """Get withFacesOnPoles parameter
87  """
88  return self._withFacesOnPoles

Member Data Documentation

lsst.skymap.detail.dodecahedron.Dodecahedron._withFacesOnPoles
private

Definition at line 16 of file dodecahedron.py.

lsst.skymap.detail.dodecahedron.Dodecahedron.faceVecList

Definition at line 41 of file dodecahedron.py.

lsst.skymap.detail.dodecahedron.Dodecahedron.vertexVecList

Definition at line 39 of file dodecahedron.py.


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