scipy Voronoi

3398 단어 파이썬scipy
보로노이 분할을 하고 싶었기 때문에 scipy.spatial.Voronoi 를 사용했지만, 용어나 배열의 의미에 혼란했으므로, 정리해 보았다.

문서 에 있듯이, 처리 자체는 즉시 할 수 있다.
import numpy
import scipy.spatial
v = scipy.spatial.Voronoi(numpy.array([[0,0],[0,1],[1,1]]))

우선 point, region, ridge, vertice의 의미. 2차원이라면 이런 그림이 된다. 2차원이라면 ridge는 선이지만, 3차원이면 ridge는 면이 된다.



각각의 데이터는 Voronoi object의 속성에 대응표의 형태로 들어가 있다. 인덱스 번호로 대응표는 표현된다. 그림으로 하면 이런 느낌으로 추적하게 되어 있다. 조금 빡빡한 일을 하면 많이 추적해야 하기 때문에 길을 잃지 않도록 정중하게 쫓아야 한다.



닫힌 영역에서 Polygon를 만들 때는, 예를 들면 다음과 같은 코드가 된다.
import geopandas as gpd
from shapely.geometry import Polygon
va = gpd.GeoDataFrame([dict(geometry=Polygon([v.vertices[vt] for vt in v.regions[r]]), pti=pti)
    for pti,r in enumerate(v.point_region) if -1 not in v.regions[r]])

좋은 웹페이지 즐겨찾기