我想从多个mxd创建一个单一的形状文件,其中包含多个不同范围的框架集。我已经找到/启动了一个python脚本来执行此操作(下面的代码),但无法弄清楚如何将捕获的X& Y Max / Min写入为此创建的形状文件中。请参阅下面的输出 - 生成属性错误。
我还希望它将帧的比例和标题以及mxd的文件名写入范围形状文件。
非常感谢您帮助完成此脚本。
谢谢,
乔治
---代码开始
import arcpy, os, glob
path = 'P:\\2011\\Job_031_TownPlanning_SeriesProduction\\Working\\mxd\\1'
os.chdir(path)
mxds_List = glob.glob('*.mxd')
mxd2 = glob.glob('*.shp')
count_Mapdocs = len(mxds_List)
print 'Processing ' + str(count_Mapdocs) + 'map documents...'
#Create Polygon Shapefile
arcpy.CreateFeatureclass_management(path, 'extents.shp', "POLYGON")
arcpy.CreateFeatureclass_management(path, 'mxds.shp', "POLYGON")
#Start Loop
for mxd2 in mxds_List:
mapDoc = arcpy.mapping.MapDocument(mxd)
dataframe = arcpy.mapping.ListDataFrames(mapDoc,'*')[0]
frameExtent = dataframe.extent
#Frame Scale
frameScale = dataframe.scale
#Frame Extent
ExtentXMax = frameExtent.XMax
ExtentXMin = frameExtent.XMin
ExtentYXax = frameExtent.YMax
ExtentYMin = frameExtent.YMin
point_object = mxd2.shp
#Write in table scale
#Write in table
---结束代码
---输出开始
处理14map文件...... Traceback(最近一次调用最后一次): 文件“P:\ 2011 \ Job_031_TownPlanning_SeriesProduction \ Working \ extent.py”,第31行,in point_object = mxd2.shp AttributeError:'str'对象没有属性'shp'
--- END OUTPUT
答案 0 :(得分:0)
首先将mxd2定义为.shp文件的列表,然后使用它作为mxds_List循环的值来破坏它,这将mxd2转换为一系列字符串值。到分配point_object时,mxd2是一个没有“shp”属性的字符串对象。您可能希望“for mxd in mxds_List”与后面的mapDoc赋值行兼容。我不知道point_object的正确赋值是什么,但是如果它应该是mxd2列表中的文件,那么当你通过mxds_List时,需要一种方法来遍历mxd2。如果每个.mxd文件都有一个.shp,则可以使用一系列整数为两个列表创建一个公共索引。