Open
Description
Voronoi weights do not work when there are co-incident points.
import geopandas
import shapely
import numpy
points = [geometry.Point(*t) for t in numpy.random.normal(0,1,(3,2))]
df = geopandas.GeoDataFrame(geometry=points+[points[1]])
from libpysal.weights import Voronoi
Voronoi(numpy.row_stack((df.geometry.x, df.geometry.y)).T)
fails on a key error.
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-117-38ea3c415855> in <module>
----> 1 lpVoronoi(numpy.row_stack((testdf.geometry.x, testdf.geometry.y)).T)
~/anaconda3/envs/ana/lib/python3.7/site-packages/libpysal/weights/contiguity.py in Voronoi(points)
347 """
348 from ..cg.voronoi import voronoi_frames
--> 349 region_df, _ = voronoi_frames(points)
350 return Queen.from_dataframe(region_df)
351
~/anaconda3/envs/ana/lib/python3.7/site-packages/libpysal/cg/voronoi.py in voronoi_frames(points, radius)
215
216 """
--> 217 regions, vertices = voronoi(points, radius=radius)
218 return as_dataframes(regions, vertices, points)
~/anaconda3/envs/ana/lib/python3.7/site-packages/libpysal/cg/voronoi.py in voronoi(points, radius)
56 """
57 vor = Voronoi(points)
---> 58 return voronoi_regions(vor, radius=radius)
59
60 def voronoi_regions(vor, radius=None):
~/anaconda3/envs/ana/lib/python3.7/site-packages/libpysal/cg/voronoi.py in voronoi_regions(vor, radius)
90 continue
91
---> 92 ridges = all_ridges[p1]
93 new_region = [v for v in vertices if v >= 0]
94
KeyError: 3