4

形の良いポリゴンの外側のポイントを削除したい 10 x 10 のグリッドがあります。

import numpy as np
from shapely.geometry import Polygon, Point
from descartes import PolygonPatch

gridX, gridY = np.mgrid[0.0:10.0, 0.0:10.0]
poly = Polygon([[1,1],[1,7],[7,7],[7,1]])

#plot original figure
fig = plt.figure()
ax = fig.add_subplot(111)
polyp = PolygonPatch(poly)
ax.add_patch(polyp)
ax.scatter(gridX,gridY)
plt.show()

結果の図は次のとおりです。 オリジナルイチジク

そして、最終結果を次のようにしたい: 終わり

配列を 100 x 2 のグリッド ポイントの配列に変更できることはわかっています。

stacked = np.dstack([gridX,gridY])
reshaped = stacked.reshape(100,2)

ポイントがポリゴン内にあるかどうかを簡単に確認できます。

for i in reshaped:
    if Point(i).within(poly):
         print True

しかし、この情報を取得して元のグリッドを変更するのに問題があります

4

1 に答える 1