説明
ライン フィーチャクラスまたはポリゴン フィーチャクラスに格納されているすべてのフィーチャについて、頂点の X 座標と Y 座標をテキスト ファイルに出力するサンプル コードです。
サンプル コード
#coding:cp932
# Description: ジオデータベースのポリゴンまたはライン フィーチャクラスの
# すべての頂点座標をファイルに出力します。
# Author: ESRIジャパン
import arcpy
# フィーチャクラスのパス
infc = "c:/data/fgdb.gdb/polygon1"
# 出力先の csv ファイルを書き込みモードで開く
f = open("c:/data/output.txt", "w")
# ジオメトリを格納するフィールド名を取得
desc = arcpy.Describe(infc)
shapefieldname = desc.shapeFieldName
# サーチ カーソルの作成
rows = arcpy.SearchCursor(infc)
# すべてのフィーチャ(または行)に対してループで実行
for row in rows:
# フィーチャ(または行)の座標値を取得する
feat = row.getValue(shapefieldname)
# フィーチャ ID をファイルに出力する
outputstring = "フィーチャID %i:n" % row.getValue(desc.OIDFieldName)
f.write(outputstring)
partnum = 0 # パート番号をリセット
# フィーチャのパートごとの処理
for part in feat:
# パート番号をファイルに出力する
outputstring = "パート番号 %i:n" % partnum
f.write(outputstring)
# パートに含まれるポイントをファイルに出力する
for pnt in feat.getPart(partnum):
if pnt:
# ポイントのX座標とY座標を出力用文字列に代入
outputstring = str(pnt.X) + " " + str(pnt.Y) + "n"
else:
# ポリゴンの内側のリング
# パート番号を出力用文字列に代入
partnum += 1
outputstring = "パート番号 %i (内側のリング):n" % partnum
f.write(outputstring)
partnum += 1
# オブジェクトへの参照を解放
del row, rows
# ファイルを閉じる
f.close()
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!
