Автоматическая запись экстента из нескольких mxds с несколькими фреймами данных - PullRequest
0 голосов
/ 29 апреля 2011

Я хочу создать один файл формы из нескольких mxd с несколькими наборами кадров с разными экстентами. Я нашел / запустил скрипт Python для этого (код ниже), но не могу понять, как записать захваченные значения X & Y Max / Min в файл формы, созданный для этого. Смотрите вывод ниже - генерируется ошибка атрибута.

Я также хочу записать масштаб и заголовок фрейма, а также имя файла mxd в файл формы экстентов.

Буду признателен за помощь в завершении этого сценария.

Спасибо

George

--- КОД СТАРТ

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 

--- КОД КОНЦА

--- СТАРТ ВЫХОДА

Обработка 14 карт документов ... Traceback (последний вызов был последним): Файл "P: \ 2011 \ Job_031_TownPlanning_SeriesProduction \ Working \ stret.py", строка 31, в point_object = mxd2.shp AttributeError: у объекта 'str' нет атрибута 'shp'

--- КОНЕЦ ВЫХОДА

1 Ответ

0 голосов
/ 07 июня 2011

Сначала вы определяете mxd2 как список файлов .shp, а затем добавляете его в качестве значения для цикла mxds_List, который превращает mxd2 в последовательность строковых значений. К моменту назначения point_object mxd2 является строковым объектом, который не имеет атрибута "shp". Возможно, вы хотите, чтобы «для mxd в mxds_List» было совместимо со следующей строкой назначения mapDoc. Я не знаю, каково правильное назначение для point_object, но если это должен быть файл из списка mxd2, вам нужен способ перебирать mxd2 при прохождении через mxds_List. Если для каждого файла .mxd существует один файл .shp, вы можете использовать диапазон целых чисел, чтобы иметь общий индекс для обоих списков.

...