title: Identifying spatial clusters in Python with consideration to additional attributes
body: <p>I'm working with a large set comprising of spatial parcels, with each row containing geographic coordinates (UTM), parcel area &amp; value:</p>
  
  <pre><code>[x, y, area, value]:
  [272564.9434265977, 6134243.108910706, 980.63, 550.6664083293393],
  [272553.9611341293, 6134209.499155387, 1026.55, 477.32696897374706],
  [271292.4197118982, 6132982.047648986, 634.438, 851.1469993915875],
  ...
  </code></pre>
  
  <p>Plotting these visually identifies several distinct zones where dollar value varies based on geography (the high value strip on the left is coastal, for example):<a href="https://i.stack.imgur.com/vSKXe.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/vSKXe.png" alt="scatter plot, x/y/value"></a></p>
  
  <p>I would like to identify clusters of value (ie the coastal strip) &amp; have looked at several approaches;</p>
  
  <ul>
  <li><p>K-means seems the easiest clustering method to implement, but appears
  unsuitable due to only considering distance between points and no
  further attributes.</p></li>
  <li><p><a href="http://www.rise-group.org/risem/clusterpy/index.html" rel="nofollow noreferrer" title="ClusterPy">ClusterPy</a> looks ideal for this application but their
  documentation only seems to cover working with GIS files.</p></li>
  <li><p>DBSCAN seems more relevant but I'm not sure how I can include my
  additional attribute ($ value) - perhaps as a third dimension?</p></li>
  </ul>
  
  <p>Can anybody suggest any other toolkits/approaches to consider?</p>