title: griddata: QH6214 qhull input error: not enough points(2) to construct initial simplex
body: <p>I am trying to create an above-head view heat map of relatively sparse EEG data (27 electrodes). I convert x,y cartesian coordinates of the EEG electrodes to polar, and attempt to map them as such. Each x,y coordinate corresponds to a given value (if you want to know: Hurst exponent) to which I would like the color around that location to correspond. </p>
  
  <p>I started with working code from <a href="https://stackoverflow.com/questions/25236026/circular-interpolated-heat-map-plot-using-python">this page</a> and tried to adapt it to my problem. Unfortunately, my adaptation is not working.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>from __future__ import division, print_function, absolute_import
  from pylab import *
  import numpy as np
  from scipy.interpolate import griddata
  
  
  # Setting the paremeters that define the circle
  max_r = 1
  max_theta = 2.0 * np.pi
  
  ###Cartesian coordinates of the 27 electrodes
  ###x axis goes from back of head to nose, with nose being the positive direction
  ###y axis goes from ear to ear, with toward right ear (from perspective of self) being the negative direction
  # X coordinates
  X = [0.95, 0.95, 0.673, 0.673, 0.000000000000000044, 0.000000000000000044,
       -0.673, -0.673, -0.95, -0.95, 0.587, 0.587, 0.0000000000000000612, 0.0000000000000000612,
       -0.587, -0.587, 0.719, 0.00000000000000000000000000000000375, -0.719,
       0.375, 0.375, 0.999, -0.999, -0.375, -0.375, -0.9139, -0.9139,.5,.6,.7,.8]
  # Y coordinates
  Y = [0.309, -0.309, 0.545, -0.545, 0.719, -0.719, 0.545, -0.545,
       0.309, -0.309, 0.809, -0.809, 0.999, -0.999, 0.809, -0.809, 0, -0.0000000000000000612,
       -0.0000000000000000881, 0.375, -0.375, 0, -0.000000000000000122, 0.375, -0.375, 0.2063, -0.2063,.5,.6,.7,.8]
  
  
  # Convert cartesian coordinates to polar
  def convert_to_polar(x, y):
      theta = np.arctan2(y, x)
      r = np.sqrt(x ** 2 + y ** 2)
      return theta, r
  
  # Arrays that house the theta and radii from converted cartesian coordinates.
  Thetas = []
  Rs = []
  
  # Converting cartesian coordinates to polar, for each electrode
  for i in range(0, 31):
      theta, r = convert_to_polar(X[i], Y[i])
      Thetas.append(theta)
      Rs.append(r)
  
  # Making a two column list that contains the converted thetas and radii, so the appropriate shape is attained.
  points = [Thetas,Rs]
  values = [[.51,.71,.81,.91,.72,.87,.90,.67,.78,.89,.56,.45,.68,.96,.69,.63,.37,.85,.92,.70,.74,.97,.35,.76,.68,.46,.68,90,91,92,93],
      [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,78,56,90]]
  
  # now we create a grid of values, interpolated from our random sample above
  theta = np.linspace(0.0, max_theta, 100)
  r = np.linspace(0, max_r, 200)
  grid_r, grid_theta = np.meshgrid(r, theta)
  data = griddata(points, values, (grid_r, grid_theta),fill_value=0)
  
  # Create a polar projection
  ax1 = plt.subplot(projection="polar")
  ax1.pcolormesh(theta, r, data.T)
  plt.show()
  </code></pre>
  
  <p>I get an error:</p>
  
  <pre><code>Traceback (most recent call last):
  File "/Users/mac/NIH/EEG/Python/Testing heat map", line 50, in &lt;module&gt;
      data = griddata(points, values, (grid_r, grid_theta),fill_value=0)
  File "/Users/mac/anaconda/lib/python2.7/site-packages/scipy/interpolate/ndgriddata.py", line 217, in griddata rescale=rescale)
  File "scipy/interpolate/interpnd.pyx", line 246, in scipy.interpolate.interpnd.LinearNDInterpolator.__init__
      (scipy/interpolate/interpnd.c:4980)
  File "scipy/spatial/qhull.pyx", line 1747, in scipy.spatial.qhull.Delaunay.__init__
      (scipy/spatial/qhull.c:15918)
  File "scipy/spatial/qhull.pyx", line 415, in scipy.spatial.qhull._Qhull.__init__
      (scipy/spatial/qhull.c:5108) scipy.spatial.qhull.**QhullError: QH6214 qhull input error: not enough points(2) to construct initial simplex (need 33)**
  
  While executing:  | qhull d Qbb Qt Q12 Qx Qz Qc Options selected for
  Qhull 2015.2.r 2016/01/18:   run-id 1980533833  delaunay  Qbbound-last
  Qtriangulate  Q12-no-wide-dup   Qxact-merge  Qz-infinity-point 
  Qcoplanar-keep  _zero-centrum  Qinterior-keep  
  Q3-no-merge-vertices-dim-high
  </code></pre>
  
  <p>The bolded portion is what I am trying to understand. When I add more points (that is, when I add more points to the lists X and Y that become polar coordinates), the number of points the error claims to need keeps increasing, always two steps ahead of how many points I have input.</p>
  
  <p>Does anyone have any idea how to deal with this?</p>