Esempio n. 1
0
    def draw_vector_field(self, x, y, u, v):
        di, dj = self.config['vfield.dij']

        x, y = self._convCoord(x, y)

        m = np.zeros(x.shape, 'bool')
        dij = self.config['vfield.dij']
        dij0 = self.config['vfield.dij0']
        m[dij0[0]::dij[0], dij0[1]::dij[1]] = True

        self.handles['quiver'] += [
            self.ax.quiver(x[m], y[m], u[m], v[m],
                           **self.config['vfield.options'])
        ]

        X, Y, U = self.config['vfield.key_XYU']
        if U:
            if U == 'auto':
                U = 2 * ticks.nicenum(np.sqrt(u**2 + v**2).mean(), 1)
            if self.config['vfield.key_label'] == 'auto': Label = str(U)
            else: Label = self.config['vfield.key_label']

            self.handles['quiver_key'] += [
                self.ax.quiverkey(self.handles['quiver'][-1], X, Y, U, Label,
                                  **self.config['vfield.key_options'])
            ]
Esempio n. 2
0
def simplify(x, y, lev=0):
    '''ugly way to reduce the number of x,y points'''
    from okean import ticks
    nnx = ticks.nicenum(x.mean(), True)
    nny = ticks.nicenum(y.mean(), True)

    expx = np.floor(np.log10(nnx))
    expy = np.floor(np.log10(nny))

    x = np.round(x, lev + int(expx))
    y = np.round(y, lev + int(expy))

    xy = x + 1j * y
    np.random.shuffle(xy)  # assure i is always different!
    xy, ind = np.unique(xy, True)

    return xy.real, xy.imag, ind
Esempio n. 3
0
def simplify(x,y,lev=0):
  '''ugly way to reduce the number of x,y points'''
  from okean import ticks
  nnx=ticks.nicenum(x.mean(),True)
  nny=ticks.nicenum(y.mean(),True)

  expx=np.floor(np.log10(nnx))
  expy=np.floor(np.log10(nny))

  x=np.round(x,lev+int(expx))
  y=np.round(y,lev+int(expy))

  xy=x+1j*y
  np.random.shuffle(xy) # assure i is always different!
  xy,ind=np.unique(xy,True)

  return xy.real,xy.imag,ind
Esempio n. 4
0
  def draw_vector_field(self,x,y,u,v):
    di,dj=self.config['vfield.dij']

    x,y=self._convCoord(x,y)

    m=np.zeros(x.shape,'bool')
    dij=self.config['vfield.dij']
    dij0=self.config['vfield.dij0']
    m[dij0[0]::dij[0],dij0[1]::dij[1]]=True

    self.handles['quiver']+=[self.ax.quiver(x[m],y[m],u[m],v[m],**self.config['vfield.options'])]

    X,Y,U=self.config['vfield.key_XYU']
    if U:
      if U=='auto': U=2*ticks.nicenum(np.sqrt(u**2+v**2).mean(),1)
      if self.config['vfield.key_label']=='auto': Label=str(U)
      else: Label=self.config['vfield.key_label']

      self.handles['quiver_key']+=[self.ax.quiverkey(self.handles['quiver'][-1],X,Y,U,Label,
                                   **self.config['vfield.key_options'])]
Esempio n. 5
0
  def draw_vector_field(self,x,y,u,v):

    if x is None or y is None:
      ny,nx=v.shape
      x,y=np.meshgrid(np.arange(nx,dtype=v.dtype),np.arange(ny,dtype=v.dtype))

####    di,dj=self.config['vfield.dij']

    x,y=self._convCoord(x,y)

    m=np.zeros(x.shape,'bool')
    dij=self.config['vfield.dij']
    dij0=self.config['vfield.dij0']
    m[dij0[0]::dij[0],dij0[1]::dij[1]]=True

    #self.handles['quiver']+=[self.ax.quiver(x[m],y[m],u[m],v[m],**self.config['vfield.options'])]

    C=self.config['vfield.C']
    if C:
      if C is 'speed':
        C=np.sqrt(u[m]**2+v[m]**2)
      else: C=C[m]
      args=x[m],y[m],u[m],v[m],C
    else:
      args=x[m],y[m],u[m],v[m]

    self.handles['quiver']+=[self.ax.quiver(*args,**self.config['vfield.options'])]

    X,Y,U=self.config['vfield.key_XYU']
    if U:
      if U=='auto': U=2*ticks.nicenum(np.sqrt(u**2+v**2).mean(),1)
      if self.config['vfield.key_label']=='auto': Label=str(U)
      else: Label=self.config['vfield.key_label']

      self.handles['quiver_key']+=[self.ax.quiverkey(self.handles['quiver'][-1],X,Y,U,Label,
                                   **self.config['vfield.key_options'])]