2017-04-11 2 views
-1

Austin_TX.mxdのParksデータフレームから同じマップドキュメントの他の2つのデータフレームにparksレイヤーを追加するスクリプトを作成しようとしています。他のデータフレームにレイヤーを追加するときのValueError

これは私が持っているスクリプトですが、私はとValueErrorを得続ける:オブジェクト:CreateObjectのレイヤ無効なデータソース

import arcpy 
mxd = arcpy.mapping.MapDocument(r"E:/Python/Homework8/Exercise10/Austin_TX.mxd") 
dfList = arcpy.mapping.ListDataFrames(mxd, "Parks") 
addLayer = arcpy.mapping.Layer("parks.lyr") 
for df in dfList: 
    arcpy.mapping.AddLayer(df, addLayer, "BOTTOM") 
mxd.saveACopy(r"E:/Python/Homework8/Exercise10/Austin_TX.mxd") 
del mxd, addLayer 

私は取得していますエラーは次のとおりです。

Traceback (most recent call last): 
    File "E:/Python/Homework8/Exercise10/Results/HW8_Ch1.py", line 4, in <module> 
    addLayer = arcpy.mapping.Layer("parks.lyr") 
    File "C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcPy\arcpy\arcobjects\mixins.py", line 402, in __init__ 
    super(LayerMixin, self).__init__(lyrfile) 
    File "C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcPy\arcpy\arcobjects\_base.py", line 47, in __init__ 
    for arg in args)) 
ValueError: Object: CreateObject Layer invalid data source 
+0

ArcPyの場合は、いつでも[gis.se] Stack Exchange – PolyGeo

答えて

0

A Layer objectを指すことが意図されていますマップドキュメント(MXD)内のレイヤではなく、ディスク上のレイヤファイルに適用されます。

MXD内のレイヤーを操作するには、ListDataFramesListLayersを使用します。

df = arcpy.mapping.ListDataFrames(mxd, "Parks")[0] 
addLayer = arcpy.mapping.ListLayers(mxd, "parks.lyr", df)[0] 
関連する問題