def firstDerivative(self): fstDeriveV = Numeric.array( [[-0.125, -0.25, -0.125], [0.0, 0.0, 0.0], [0.125, 0.25, 0.125]], 'f') self.redraw(filter=fstDeriveV) derivV = self.imageAsArray() if derivV is None: return None fstDeriveV = Numeric.array( [[0.125, 0.25, 0.125], [0.0, 0.0, 0.0], [-0.125, -0.25, -0.125]], 'f') self.redraw(filter=fstDeriveV) derivV += self.imageAsArray() fstDeriveH = Numeric.array( [[-0.125, 0.0, 0.125], [-0.25, 0.0, 0.25], [-0.125, 0.0, 0.125]], 'f') self.redraw(filter=fstDeriveH) derivH = self.imageAsArray() fstDeriveH = Numeric.array( [[0.125, 0.0, -0.125], [0.25, 0.0, -0.25], [0.125, 0.0, -0.125]], 'f') self.redraw(filter=fstDeriveH) derivH += self.imageAsArray() deriv = Numeric.fabs(derivH * 0.5) + Numeric.fabs(derivV * 0.5) return deriv.astype('B')
def firstDerivative(self): fstDeriveV = Numeric.array([ [-0.125, -0.25, -0.125], [ 0.0 , 0.0, 0.0 ], [ 0.125, 0.25, 0.125] ], 'f') self.redraw(filter=fstDeriveV) derivV = self.imageAsArray() if derivV is None: return None fstDeriveV = Numeric.array([ [ 0.125, 0.25, 0.125], [ 0.0 , 0.0, 0.0 ], [-0.125, -0.25, -0.125] ], 'f') self.redraw(filter=fstDeriveV) derivV += self.imageAsArray() fstDeriveH = Numeric.array([ [-0.125, 0.0, 0.125], [-0.25 , 0.0, 0.25 ], [-0.125, 0.0, 0.125] ], 'f') self.redraw(filter=fstDeriveH) derivH = self.imageAsArray() fstDeriveH = Numeric.array([ [ 0.125, 0.0, -0.125], [ 0.25 , 0.0, -0.25 ], [ 0.125, 0.0, -0.125] ], 'f') self.redraw(filter=fstDeriveH) derivH += self.imageAsArray() deriv = Numeric.fabs(derivH*0.5)+Numeric.fabs(derivV*0.5) return deriv.astype('B')
def secondDerivative(self): sndDeriv = Numeric.array([ [-0.125, -0.125, -0.125,], [-0.125, 1.0, -0.125,], [-0.125, -0.125, -0.125,] ], 'f') self.redraw(filter=sndDeriv) deriv = Numeric.fabs(self.imageAsArray()).astype('B') return deriv
def _ticks(self, lower, upper): ideal = (upper-lower)/7. log = _Numeric.log10(ideal) power = _Numeric.floor(log) fraction = log-power factor = 1. error = fraction for f, lf in self._multiples: e = _Numeric.fabs(fraction-lf) if e < error: error = e factor = f grid = factor * 10.**power if power > 4 or power < -4: format = '%+7.1e' elif power >= 0: digits = max(1, int(power)) format = '%' + `digits`+'.0f' else: digits = -int(power) format = '%'+`digits+2`+'.'+`digits`+'f' ticks = [] t = -grid*_Numeric.floor(-lower/grid) while t <= upper: ticks.append( (t, format % (t,)) ) t = t + grid return ticks
def secondDerivative(self): sndDeriv = Numeric.array([[ -0.125, -0.125, -0.125, ], [ -0.125, 1.0, -0.125, ], [ -0.125, -0.125, -0.125, ]], 'f') self.redraw(filter=sndDeriv) deriv = Numeric.fabs(self.imageAsArray()).astype('B') return deriv
def getGeomOpacity(self, geomName): if self.atomPropToVertices.has_key(geomName): func = self.atomPropToVertices[geomName] geom = self.geoms[geomName] atms = self.atoms[geomName] col = func(geom, atms, 'opacities', propIndex = geomName) else: if geomName in self.atoms.keys(): col = map(lambda x, geomName=geomName: x.opacities[geomName], self.atoms[geomName]) else: return if col is not None: colarray = array(col, 'f') diff = colarray - colarray[0] maxi = maximum.reduce(fabs(diff.ravel())) if maxi==0: return colarray[0] else: return col
def getGeomColor(self, geomName): # build a list of colors for a geometry from the atom's colors if self.atomPropToVertices.has_key(geomName): func = self.atomPropToVertices[geomName] geom = self.geoms[geomName] atms = self.atoms[geomName] col = func(geom, atms, 'colors', propIndex=geomName) else: if geomName in self.atoms.keys(): col = map(lambda x, geomName=geomName: x.colors[geomName], self.atoms[geomName]) else: return if col is not None: colarray = array(col, 'f') diff = colarray - colarray[0] maxi = maximum.reduce(fabs(diff.ravel())) if maxi==0: return [colarray[0].tolist()] else: return col