FAQ
ArcPy (ArcMap): マップ ドキュメントのデータ フレームとレイヤーの空間参照をテキスト ファイルに出力する

ナレッジ番号:2608 | 登録日:2023/05/29 | 更新日:2024/03/14

説明

マップ ドキュメントに含まれるすべてのデータ フレームおよびすべてのレイヤの空間参照をテキスト ファイルに出力するサンプル コードです。

サンプル コード

#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

関連する質問

メタデータ

種類

製品