Создание сводной таблицы символов всех наборов данных в нескольких MXD?

9

Это связано со следующей символикой сохранения ESRI в Mapinfo TAB . В качестве начального шага (в arcpy) я хочу получить доступ к символике всех наборов данных и создать документ, который содержит подробную информацию о символике, как показано на рисунке ниже. введите описание изображения здесь

Возможно ли это (если я потрачу время, чтобы разобраться с этим) или, если это невозможно, мне просто придется взломать работу вручную на сотнях MXD (: -

Чтобы разбить шаги - надеюсь, я могу автоматизировать хотя бы часть процесса.

  1. прокрутка MXD и получение включенных наборов данных не проблема

    lyrFile = arcpy.mapping.Layer if lyrFile.visible == True:

  2. поскольку он находит набор данных, он должен создать файл .lyr (так как большинство из них - просто файлы shp / gdb), а затем AttribXXX = lyrFile.xxx

где XXX и XXX

BRIGHTNESS = lyrFile.brightness

(формат выше к следующему)

CONTRAST contrast
DATASETNAME datasetName
DATASOURCE dataSource
DESCRIPTION description
LABELCLASSES labelClasses
LONGNAME longName
NAME name
SHOWLABELS showLabels
TRANSPARENCY transparency
WORKSPACEPATH A layer's workspace or connection file path

Проблема в том, что я не могу найти ничего, что получает RGB, тип линии / точки / многоугольника, веса линий, шрифт и т. Д. Если это можно найти, то следующий шаг

  1. записать каждое из значений выше в CSV (легко) ... например (это должно быть расширено)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
    
  2. Если возможно, нужно создать jpg символов, как в примере, и добавить ссылку на него в CSV.

Я прошу большую часть arcpy?

GeorgeC
источник
Это может быть возможно с ArcObjects, но определенно не arcpy.
blah238
Спасибо. Кто-нибудь может помочь с обработкой аркобъектов?
GeorgeC
Только вы можете указать, с чего начать: ArcObjects .NET SDK Help ; Работа с символами и цветами и Работа со слоями и средствами визуализации . Если ничего больше, возможно, после прочтения этих документов, вы сможете более точно определить ваши требования и ограничить объем работы, потому что , я думаю , это будет много работы.
blah238
Вот старый пример VB6 для экспорта символов стиля: Style Dump . Проверьте StyleDump.bas для мяса этого.
blah238

Ответы:

3

Я решил похожую проблему, преобразовав документ MXD в MSD (который является просто файлом zip), поэтому, если вы измените расширение на «.zip» и откроете его, вы найдете несколько XML-документов, которые содержат много информации о том, как каждый слой внутри mxd отображается. arcpy.ConvertToMSD. Может быть, есть некоторая работа для получения необходимой информации, но она должна быть где-то там. Надеюсь, это поможет!

данго
источник
Спасибо за эту оригинальную идею. Это действительно полезно. Код, сгенерированный в xml, довольно сложен, запрограммировали ли вы автоматически захватывать соответствующий xml и, если да, можете ли вы поделиться им, если нет, я начну работать над этим аспектом.
GeorgeC
Меня интересовали только два значения в xml, поэтому все, что у меня было, будет очень сложно построить. Но есть куча действительно хороших учебников по Python xml, так что если вы готовы потратить некоторое время на чтение, я уверен, что вы решите проблему. Удачного кодирования :)
данго
2

В принципе это было невозможно, но придумал обходной способ получить результат. См. Скрипт Python Arcgis для выпуска инструмента для получения окончательного результата.

Другие вопросы, чтобы добраться до этого этапа

Конвертировать стиль ArcGIS (символы) в шрифт для MapInfo / OpenGeo?

Сохранить символику ESRI в Mapinfo TAB

а также

Создание сводной таблицы символов всех наборов данных в нескольких MXD?

GeorgeC
источник