指定されたポリゴンで交差するポイントの結果が必要ですが、エラーが発生します。
私のコードは次のとおりです。
from pysal.cg.standalone import get_polygon_point_intersect
poly=pysal.open('Busroute_buffer.shp')
point=pysal.open('pmpml_24.shp')
i=get_polygon_point_intersect(poly,point)
しかし、私はエラーメッセージを受け取ります:
「PurePyShpWrapper」オブジェクトには属性がありません「bounding_box」
pysal.open
シェイプではなく、シェイプの「ファイル」オブジェクトを返します。
図形を取得するには、ファイルを反復処理するか、ファイルのreadメソッドを呼び出す必要があります。このメソッドは図形のリストを返します。これにより、ファイルに形状が1つしかない場合でも、リストが返されます。get_polygon_point_intersect
正確に1つのポリゴンと1つのポイントを取るので、比較するポイント/ポリゴンごとに呼び出す必要があります。
point_file = pysal.open('points.shp')
polygon_file = pysal.open('polygons.shp')
# .read with no arguments returns a list of all shapes in the file.
polygons = polygon_file.read()
for polygon in polygons:
# for x in shapefile: iterates over each shape in the file.
for point in point_file:
if get_polygon_point_intersect(polygon, point):
print point, 'intersects with', polygon
これを行うには、おそらくもっと効率的な方法が他にもあります。詳細については、pysal.cg.locators
を参照してください。
*上記のコードはテストされておらず、例としてのみ使用されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加