私は Shapely に慣れていません (しかし熱心です)。最近、ちょっとした道のりを発見しました。
フィオナ経由で読み込んでいるポリゴン シェープファイルがあります。このシェープファイルには、ポリゴンとマルチポリゴンの両方のアイテムが含まれており、その中のすべての座標 (つまり、外部と内部の両方) の各フィーチャに対して配列を作成する必要があります。特に、2 つのポリゴン アイテムには内部リングがあります (そしてそれらは有効です)。
ポリゴン/マルチポリゴンの外部座標へのアクセスに問題はないようですが、内部座標については何も取得していません。
ここで新しいアプローチを取る必要がありますか (つまり、LinearRings)...?
def convert_polygons(inFile):
for polys in fiona.open(inFile):
myShape = shape(polys['geometry'])
exterior_poly = 0
interior_poly = 0
if isinstance(myShape, Polygon):
print "yes, I am a polygon"
# count how many points for each interior polygon
try:
interior_poly += len(myShape.interior.coords)
except:
pass
# count how many points for each exterior polygon
exterior_poly += len(myShape.exterior.coords)
geomArray = asarray(myShape.exterior)
print geomArray
print "number of interior points in polygon " + str(interior_poly)
print "number of exterior points in polygon " + str(exterior_poly)
elif isinstance(myShape, MultiPolygon):
print "yes, I am a MultiPolygon"
# count how many points for each interior polygon
try:
interior_poly += len(myShape.interior.coords)
except:
pass
try:
# count how many points for each exterior polygon
exterior_poly += len(myShape.exterior.coords)
except:
pass
try:
geomArray = asarray(myShape.interior)
except:
pass
try:
geomArray = asarray(myShape.exterior)
except:
pass
print geomArray
print "number of interior points in polygon " + str(interior_poly)
print "number of exterior points in polygon " + str(exterior_poly)