Skip to content

voronoi weights fail on duplicate points. #164

Open
@ljwolf

Description

@ljwolf

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

Metadata

Metadata

Assignees

Labels

bugfunctionality that: returns invalid, erroneous, or meaningless results; or doesn't work at all.needs decisionA design decision that needs input from other maintainers/developers.no-issue-activityquestionweights

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions