1

ドキュメントを保存せずに、Python で新しく追加されたレイヤーを使用して ArcMap (.mxd) ドキュメントを更新する方法はありますか?

私はPythonを使用して一連のタスクを完全に自動化しました。最後のステップは、出力をarcmapドキュメントにダンプし、ドキュメントをポップして、スクリプトのユーザーが出力データを見て、出力データを確認するかどうか/どこで行うかを決定できるようにすることです.mxd を保存したい。

スクリプトで参照する Default.mxd ドキュメントを作成しましたが、ユーザーが独自のドキュメントを手動で保存するよう強制されるように、「読み取り専用」のままにしたいと考えています。ただし、arcpy.mapping モジュールを使用すると、保存しない限り mxd 内のデータを「見る」ことができません。これを回避する方法はありますか?

以下は、私が達成しようとしているスクリプトの例です。

# Import arcpy module
import os
import arcpy

FGDB = "C:\...\SomeFGDB.gdb"
arcpy.env.workspace = FGDB

RASTER1 = FGDB+"\\RASTER1"
RASTER2 = FGDB+"\\RASTER2"

DefaultMXD = r"C:\...\Default.mxd"
mxd = arcpy.mapping.MapDocument(DefaultMXD)
df = arcpy.mapping.ListDataFrames(mxd, "*")[0]


RASTER1_LYR = arcpy.mapping.Layer(RASTER1)
RASTER2_LYR = arcpy.mapping.Layer(RASTER2)

mxd.activeView = df.name

arcpy.mapping.AddLayer(df, RASTER2_LYR,"TOP")
arcpy.mapping.AddLayer(df, RASTER1_LYR,"TOP")


extent = RASTER1.getExtent()
df.extent = extent

mxd.activeView = df.name
arcpy.RefreshTOC()
arcpy.RefreshActiveView()

##########################################
#I would rather not save the default MXD
#mxd.save()
##########################################

del mxd, df

os.startfile(DefaultMXD)
4

1 に答える 1