概要
WKT (Well Known Text) とは、フィーチャのジオメトリをテキスト形式で表現する時の書式です。フィーチャの WKT 文字列を取得するには、ジオメトリ トークンの 1 種である「SHAPE@WKT」を使用します。ここでは、指定したフィーチャクラスの WKT 文字列を取得するサンプル コードを紹介します。
サンプル コード
フィールドとして追加
import arcpy
# フィーチャクラス名またはフィーチャ レイヤー名
infc = 'layer'
# WKT 文字列を格納するためのフィールド名
outField ="txtWKT"
# WKT 文字列を格納するためのフィールドの長さ(※最大のフィールド長はデータ フォーマットによって異なります)
outFieldSize = 5000
# フィールドを追加
arcpy.AddField_management (infc,outField, "TEXT", "" , "", outFieldSize)
# 各フィーチャの WKT を取得
with arcpy.da.UpdateCursor(infc, ["SHAPE@WKT", outField]) as cursor:
for row in cursor :
print(row[0])
row[1] = row[0]
cursor.updateRow(row)
テキストとして出力
import arcpy, os
# フィーチャクラス名またはフィーチャ レイヤー名
infc = 'layer'
# 同時に出力するフィールド名
outIDFld ="OID@"
# 出力先の csv ファイルを書き込みモードで開きます。
f = open("c:/Temp/textWKT.txt", "w")
# ヘッダーを付与する
outputLine = u"OID,WKT n"
f.write(outputLine.encode("SHIFT-JIS"))
# 各フィーチャの WKT を取得
with arcpy.da.UpdateCursor( infc,[outIDFld, "SHAPE@WKT"]) as cursor:
for row in cursor :
outputLine = "{}, {}".format(row[0], row[1]) + "n"
f.write(outputLine.encode("SHIFT-JIS"))
#ファイルを閉じる
f.close()
補足情報
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!