97

shapelyポリゴンを定義するポイントをどのように取得/抽出しますか? ありがとう!

形の良い多角形の例

from shapely.geometry import Polygon

# Create polygon from lists of points
x = [list of x vals]
y = [list of y vals]

polygon = Polygon(x,y)
4

8 に答える 8

104

Polygonそのため、これを実現するためにクラスメソッドの組み合わせを使用することが秘訣であることを発見しました。

測地座標が必要な場合は、これらを ( 、 、または何かを介して) WGS84 に変換する必要がpyprojありますmatplotlibbasemap

from shapely.geometry import Polygon

#Create polygon from lists of points
x = [list of x vals]
y = [list of y vals]

some_poly = Polygon(x,y)

# Extract the point values that define the perimeter of the polygon
x, y = some_poly.exterior.coords.xy
于 2013-12-09T16:56:05.133 に答える
31

shapelymapping関数 を使用できます。

>>> from shapely.geometry import Polygon, mapping
>>> sh_polygon = Polygon(((0,0), (1,1), (0,1)))
>>> mapping(sh_polygon)
{'type': 'Polygon', 'coordinates': (((0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (0.0, 0.0)),)}
于 2016-11-16T11:34:14.153 に答える
8

私はこれを使用しました:

list(zip(*p.exterior.coords.xy))

で作成されたポリゴン:p = Polygon([(0,0),(1,1),(1,0),(0,0)])戻り値:

[(0.0, 0.0), (1.0, 1.0), (1.0, 0.0), (0.0, 0.0)]
于 2017-11-27T20:14:55.173 に答える
2

NumPy.array を使用して、形の整った Polygon を NumPy 配列に変換できます。座標は 2 つの 1 次元配列ではなく対になっているため、coords.xy によって返される配列よりも NumPy 配列を使用する方が便利です。アプリケーションにとってより便利な方を使用してください。

import numpy as np
x = [1, 2, 3, 4]
y = [9, 8, 7, 6]
polygon = Polygon(x,y)
points = np.array(polygon)

# points is:
[[ 1 9]
 [ 2 8]
 [ 3 7]
 [ 4 6]]
于 2016-04-27T01:00:26.740 に答える