LSSTApplications  17.0+11,17.0+34,17.0+56,17.0+57,17.0+59,17.0+7,17.0-1-g377950a+33,17.0.1-1-g114240f+2,17.0.1-1-g4d4fbc4+28,17.0.1-1-g55520dc+49,17.0.1-1-g5f4ed7e+52,17.0.1-1-g6dd7d69+17,17.0.1-1-g8de6c91+11,17.0.1-1-gb9095d2+7,17.0.1-1-ge9fec5e+5,17.0.1-1-gf4e0155+55,17.0.1-1-gfc65f5f+50,17.0.1-1-gfc6fb1f+20,17.0.1-10-g87f9f3f+1,17.0.1-11-ge9de802+16,17.0.1-16-ga14f7d5c+4,17.0.1-17-gc79d625+1,17.0.1-17-gdae4c4a+8,17.0.1-2-g26618f5+29,17.0.1-2-g54f2ebc+9,17.0.1-2-gf403422+1,17.0.1-20-g2ca2f74+6,17.0.1-23-gf3eadeb7+1,17.0.1-3-g7e86b59+39,17.0.1-3-gb5ca14a,17.0.1-3-gd08d533+40,17.0.1-30-g596af8797,17.0.1-4-g59d126d+4,17.0.1-4-gc69c472+5,17.0.1-6-g5afd9b9+4,17.0.1-7-g35889ee+1,17.0.1-7-gc7c8782+18,17.0.1-9-gc4bbfb2+3,w.2019.22
LSSTDataManagementBasePackage
Public Member Functions | Public Attributes | List of all members
lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure Class Reference

Public Member Functions

def __init__ (self, parent, xDim, yDim, n=0)
 
def xlim (self)
 
def ylim (self)
 
def zlim (self)
 
def guessExtent (self)
 
def setExtent (self, x0=None, x1=None, y0=None, y1=None, z0=None, z1=None, lock=True)
 
def plotTrack (self)
 
def plotRejected (self)
 
def plotSurfaces (self)
 
def move (self, n)
 

Public Attributes

 parent
 
 xDim
 
 yDim
 
 j
 
 i
 
 yKey
 
 xKey
 
 zKey
 
 slice2d
 
 sliceX
 
 sliceY
 
 track
 
 n
 
 figure
 
 axes3d
 
 axes2d
 
 axesX
 
 axesY
 
 artists
 

Detailed Description

Definition at line 101 of file optimizerDisplay.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.__init__ (   self,
  parent,
  xDim,
  yDim,
  n = 0 
)

Definition at line 103 of file optimizerDisplay.py.

103  def __init__(self, parent, xDim, yDim, n=0):
104  self.parent = parent
105  self.xDim = xDim
106  self.yDim = yDim
107  self.j = self.parent.dimensions.index(self.xDim)
108  self.i = self.parent.dimensions.index(self.yDim)
109  self.yKey = self.parent.recorder.parameters[self.i]
110  self.xKey = self.parent.recorder.parameters[self.j]
111  self.zKey = self.parent.recorder.objective
112  # grid slice indices corresponding to the dimensions we're plotting
113  self.slice2d = [s//2 for s in self.parent.unitGrid.shape[:-1]]
114  self.slice2d[self.i] = slice(None)
115  self.slice2d[self.j] = slice(None)
116  self.slice2d = tuple(self.slice2d)
117  self.sliceX = [s//2 for s in self.parent.unitGrid.shape[:-1]]
118  self.sliceX[self.j] = slice(None)
119  self.sliceX = tuple(self.sliceX)
120  self.sliceY = [s//2 for s in self.parent.unitGrid.shape[:-1]]
121  self.sliceY[self.i] = slice(None)
122  self.sliceY = tuple(self.sliceY)
123  self.track = dict(
124  x=numpy.array([iteration.sample.get(self.xKey) for iteration in self.parent.track]),
125  y=numpy.array([iteration.sample.get(self.yKey) for iteration in self.parent.track]),
126  z=numpy.array([iteration.sample.get(self.zKey) for iteration in self.parent.track]),
127  )
128  self.n = n
129  self.figure = matplotlib.pyplot.figure("%s vs %s" % (xDim, yDim), figsize=(16, 8))
130  self.figure.subplots_adjust(left=0.025, right=0.975, bottom=0.08, top=0.95, wspace=0.12)
131  self.axes3d = self.figure.add_subplot(1, 2, 1, projection='3d')
132  self.axes3d.autoscale(False)
133  self.axes3d.set_xlabel(self.xDim)
134  self.axes3d.set_ylabel(self.yDim)
135  self.axes2d = self.figure.add_subplot(1, 2, 2)
136  self.axes2d.set_xlabel(self.xDim)
137  self.axes2d.set_ylabel(self.yDim)
138  self.axes2d.autoscale(False)
139  divider = make_axes_locatable(self.axes2d)
140  self.axesX = divider.append_axes("top", 1.5, pad=0.1, sharex=self.axes2d)
141  self.axesX.autoscale(False, axis='x')
142  hide_xticklabels(self.axesX)
143  self.axesY = divider.append_axes("right", 1.5, pad=0.1, sharey=self.axes2d)
144  self.axesY.autoscale(False, axis='y')
145  hide_yticklabels(self.axesY)
146  self.artists = []
147  self.guessExtent()
148  self.plotTrack()
149  self.plotRejected()
150  self.plotSurfaces()
151 
def __init__(self, minimum, dataRange, Q)

Member Function Documentation

◆ guessExtent()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.guessExtent (   self)

Definition at line 164 of file optimizerDisplay.py.

164  def guessExtent(self):
165  current = self.parent.track[self.n]
166  x = current.sample.get(self.xKey)
167  y = current.sample.get(self.yKey)
168  zMin1 = current.objectiveValues[self.slice2d].min()
169  zMax1 = current.objectiveValues[self.slice2d].max()
170  zMin2 = current.objectiveModel[self.slice2d].min()
171  zMax2 = current.objectiveModel[self.slice2d].max()
172  self.setExtent(x0=x - current.trust, x1=x + current.trust,
173  y0=y - current.trust, y1=y + current.trust,
174  z0=min(zMin1, zMin2), z1=max(zMax1, zMax2), lock=False)
175 
int min
int max

◆ move()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.move (   self,
  n 
)

Definition at line 271 of file optimizerDisplay.py.

271  def move(self, n):
272  self.n = n
273  if not self._lock:
274  self.guessExtent()
275  for artist in self.artists:
276  try:
277  artist.remove()
278  except TypeError:
279  # sometimes matplotlib throws an exception even though everything worked fine
280  pass
281  self.artists = []
282  self.plotSurfaces()
283  self.plotRejected()
284  self.figure.canvas.draw()
285 

◆ plotRejected()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.plotRejected (   self)

Definition at line 221 of file optimizerDisplay.py.

221  def plotRejected(self):
222  kwds = dict(markeredgewidth=0, markerfacecolor='r', color='r', marker='v')
223  current = self.parent.track[self.n]
224  cx = current.sample.get(self.xKey)
225  cy = current.sample.get(self.yKey)
226  cz = current.sample.get(self.zKey)
227  for r in current.rejected:
228  x = [cx, r.get(self.xKey)]
229  y = [cy, r.get(self.yKey)]
230  z = [cz, r.get(self.zKey)]
231  self.artists.extend(self.axes3d.plot(x, y, z, **kwds))
232  self.artists.extend(self.axes2d.plot(x, y, **kwds))
233  self.artists.extend(self.axesX.plot(x, z, **kwds))
234  self.artists.extend(self.axesY.plot(z, y, **kwds))
235 
def plot(mag, width, centers, clusterId, marker="o", markersize=2, markeredgewidth=0, ltype='-', magType="model", clear=True)

◆ plotSurfaces()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.plotSurfaces (   self)

Definition at line 236 of file optimizerDisplay.py.

236  def plotSurfaces(self):
237  current = self.parent.track[self.n]
238 
239  # Start with 2-d and 3-d surfaces
240  x = current.grid[self.slice2d + (self.j,)]
241  y = current.grid[self.slice2d + (self.i,)]
242  z1 = current.objectiveValues[self.slice2d].copy()
243  z2 = current.objectiveModel[self.slice2d].copy()
244  norm = matplotlib.colors.Normalize(vmin=self.zlim[0], vmax=self.zlim[1])
245 
246  self._contour(self.axes2d, x, y, z1, cmap=matplotlib.cm.spring, norm=norm)
247  self._contour(self.axes2d, x, y, z2, cmap=matplotlib.cm.winter, norm=norm)
248 
249  # matplotlib doesn't do clipping in 3d, so we'll do that manually
250  if self._clipZ(x, y, z1):
251  self._contour(self.axes3d, x, y, z1, cmap=matplotlib.cm.spring, norm=norm)
252  self.artists.append(self.axes3d.plot_surface(x, y, z1, rstride=1, cstride=1,
253  cmap=matplotlib.cm.spring, norm=norm,
254  linewidth=0, antialiased=1, alpha=0.5))
255  if self._clipZ(x, y, z2):
256  self._contour(self.axes3d, x, y, z2, cmap=matplotlib.cm.winter, norm=norm)
257  self.artists.append(self.axes3d.plot_surface(x, y, z2, rstride=1, cstride=1,
258  cmap=matplotlib.cm.winter, norm=norm,
259  linewidth=0, antialiased=1, alpha=0.5))
260 
261  # Now the 1-d surfaces
262  self.artists.extend(self.axesX.plot(current.grid[self.sliceX + (self.j,)],
263  current.objectiveValues[self.sliceX], 'm-'))
264  self.artists.extend(self.axesX.plot(current.grid[self.sliceX + (self.j,)],
265  current.objectiveModel[self.sliceX], 'c-'))
266  self.artists.extend(self.axesY.plot(current.objectiveValues[self.sliceY],
267  current.grid[self.sliceY + (self.i,)], 'm-'))
268  self.artists.extend(self.axesY.plot(current.objectiveModel[self.sliceY],
269  current.grid[self.sliceY + (self.i,)], 'c-'))
270 
def plot(mag, width, centers, clusterId, marker="o", markersize=2, markeredgewidth=0, ltype='-', magType="model", clear=True)
std::shared_ptr< FrameSet > append(FrameSet const &first, FrameSet const &second)
Construct a FrameSet that performs two transformations in series.
Definition: functional.cc:33

◆ plotTrack()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.plotTrack (   self)

Definition at line 214 of file optimizerDisplay.py.

214  def plotTrack(self):
215  kwds = dict(markeredgewidth=0, markerfacecolor='g', color='g', marker='o')
216  self.axes3d.plot(self.track['x'], self.track['y'], self.track['z'], **kwds)
217  self.axes2d.plot(self.track['x'], self.track['y'], **kwds)
218  self.axesX.plot(self.track['x'], self.track['z'], **kwds)
219  self.axesY.plot(self.track['z'], self.track['y'], **kwds)
220 
def plot(mag, width, centers, clusterId, marker="o", markersize=2, markeredgewidth=0, ltype='-', magType="model", clear=True)

◆ setExtent()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.setExtent (   self,
  x0 = None,
  x1 = None,
  y0 = None,
  y1 = None,
  z0 = None,
  z1 = None,
  lock = True 
)

Definition at line 176 of file optimizerDisplay.py.

176  def setExtent(self, x0=None, x1=None, y0=None, y1=None, z0=None, z1=None, lock=True):
177  if x0 is None:
178  x0 = self._extent[0]
179  if x1 is None:
180  x1 = self._extent[1]
181  if y0 is None:
182  y0 = self._extent[2]
183  if y1 is None:
184  y1 = self._extent[3]
185  if z0 is None:
186  z0 = self._extent[4]
187  if z1 is None:
188  z1 = self._extent[5]
189  self._extent = (x0, x1, y0, y1, z0, z1)
190  self._lock = lock
191  self.axes3d.set_xlim(*self.xlim)
192  self.axes3d.set_ylim(*self.ylim)
193  self.axes3d.set_zlim(*self.zlim)
194  self.axes2d.set_xlim(*self.xlim)
195  self.axes2d.set_ylim(*self.ylim)
196  self.axesX.set_ylim(*self.zlim)
197  self.axesY.set_xlim(*self.zlim)
198 

◆ xlim()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.xlim (   self)

Definition at line 153 of file optimizerDisplay.py.

153  def xlim(self):
154  return self._extent[:2]
155 

◆ ylim()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.ylim (   self)

Definition at line 157 of file optimizerDisplay.py.

157  def ylim(self):
158  return self._extent[2:4]
159 

◆ zlim()

def lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.zlim (   self)

Definition at line 161 of file optimizerDisplay.py.

161  def zlim(self):
162  return self._extent[4:]
163 

Member Data Documentation

◆ artists

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.artists

Definition at line 146 of file optimizerDisplay.py.

◆ axes2d

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.axes2d

Definition at line 135 of file optimizerDisplay.py.

◆ axes3d

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.axes3d

Definition at line 131 of file optimizerDisplay.py.

◆ axesX

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.axesX

Definition at line 140 of file optimizerDisplay.py.

◆ axesY

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.axesY

Definition at line 143 of file optimizerDisplay.py.

◆ figure

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.figure

Definition at line 129 of file optimizerDisplay.py.

◆ i

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.i

Definition at line 108 of file optimizerDisplay.py.

◆ j

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.j

Definition at line 107 of file optimizerDisplay.py.

◆ n

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.n

Definition at line 128 of file optimizerDisplay.py.

◆ parent

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.parent

Definition at line 104 of file optimizerDisplay.py.

◆ slice2d

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.slice2d

Definition at line 113 of file optimizerDisplay.py.

◆ sliceX

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.sliceX

Definition at line 117 of file optimizerDisplay.py.

◆ sliceY

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.sliceY

Definition at line 120 of file optimizerDisplay.py.

◆ track

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.track

Definition at line 123 of file optimizerDisplay.py.

◆ xDim

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.xDim

Definition at line 105 of file optimizerDisplay.py.

◆ xKey

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.xKey

Definition at line 110 of file optimizerDisplay.py.

◆ yDim

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.yDim

Definition at line 106 of file optimizerDisplay.py.

◆ yKey

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.yKey

Definition at line 109 of file optimizerDisplay.py.

◆ zKey

lsst.meas.modelfit.display.optimizerDisplay.OptimizerDisplayFigure.zKey

Definition at line 111 of file optimizerDisplay.py.


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