Автоматизация захвата экстента из нескольких mxd с несколькими фреймами данных

Я хочу создать один файл формы из нескольких 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... Трассировка (последний последний вызов): Файл "P:\2011\Job_031_TownPlanning_SeriesProduction\Working\extent.py", строка 31, в point_object = mxd2.shp AttributeError: объект 'str' не имеет атрибута 'shp '

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


person GeorgeC    schedule 29.04.2011    source источник


Ответы (1)


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

person Thomas Juntunen    schedule 07.06.2011
comment
Спасибо. Я разработал это, и рабочая версия находится по адресу gis.stackexchange.com/questions/9518/ - person GeorgeC; 09.06.2011