説明
マップ ドキュメントに含まれるすべてのデータ フレームおよびすべてのレイヤの空間参照をテキスト ファイルに出力するサンプル コードです。
サンプル コード
#coding:cp932
# Description: マップ ドキュメントのデータ フレームとレイヤーの空間参照を
# テキスト ファイルに出力します。
# Author: ESRIジャパン
import arcpy
# 空間参照の名称を戻す
def sr_name(sr):
if sr.name == "Unknown":
return "未定義"
else:
return sr.name
# 出力するファイルを書き込みモードで開く
f = open("c:/data/output.txt", "w")
# マップ ドキュメントのオブジェクト参照を取得
mxd = arcpy.mapping.MapDocument(r"C:/Project/Project.mxd")
# データ フレームごとのループ処理
for df in arcpy.mapping.ListDataFrames(mxd):
outputstring = "データ フレーム: " + df.name.encode("cp932") + "n"
+ sr_name(df.spatialReference).encode("cp932") + "n"
f.write(outputstring)
# レイヤーごとのループ処理
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
# データソースを持っているレイヤーのみを対象とする
if lyr.supports ("DATASOURCE"):
outputstring = "レイヤー: " + lyr.longName.encode("cp932") + "n"
+ sr_name(arcpy.Describe(lyr.dataSource).spatialReference).encode("cp932") + "n"
f.write(outputstring)
# マップ ドキュメントのオブジェクト参照を削除
del mxd
# ファイルを閉じる
f.close()
出力例
データ フレーム: マップ レイヤー
GCS_JGD_2011
レイヤー: japan_ver81
GCS_JGD_2000
レイヤー:DEM5m結合_prj
JGD_2000_Japan_Zone_2
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!