Створення зведеної таблиці символіки всіх наборів даних у кількох MXD?


9

Це пов'язано з наступною символікою збереження ESRI у Mapinfo TAB . В якості початкового кроку (в архпії) я хочу отримати доступ до символіки всіх наборів даних і створити документ, який містить деталі символіки, як показано на малюнку нижче. введіть тут опис зображення

Чи можливо це (якщо я вкладаю час, щоб це опрацювати) або якщо це неможливо, мені доведеться просто зламати це робити вручну на сотнях MXD (: -

Щоб розбити кроки - сподіваюся, я можу автоматизувати принаймні частину процесу.

  1. прокручування mxd та отримання наборів даних, що є, не є проблемою

    lyrFile = arcpy.mapping.Layer, якщо 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.

Я прошу велику аркпію?


Це можливо в ArcObjects, але, безумовно, не arcpy.
blah238

Дякую. Чи може хтось тоді допомогти з обробкою аркобектів?
ДжорджК

Лише можна вказати, з чого почати: Довідка ArcObjects .NET SDK ; Робота з символами та кольорами та Робота з шарами та візуалізаторами . Якщо нічого іншого, можливо, після прочитання цих запитів ви зможете більш точно визначити свої вимоги та обмежити обсяг роботи, адже я думаю , що це буде багато роботи.
blah238

Ось старий зразок VB6 для експорту символів стилю: Style Dump . Перевірте StyleDump.bas на м'ясо його.
blah238

Відповіді:


3

Я вирішив подібну проблему, перетворивши документ MXD в MSD (який є лише поштовим файлом), тому якщо ви зміните розширення на ".zip" і відкриєте його, ви знайдете кілька .xml документів, що містять багато інформації про те, як кожен відображається шар у межах mxd. arcpy.ConvertToMSD Можливо, буде отримано певну роботу, щоб отримати потрібну інформацію, але вона повинна бути десь там. Сподіваюся, що це допомагає!


Дякую за цю насіннєву ідею. Це дуже корисно. Код, сформований у xml, є досить складним, чи запрограмували ви автоматично захоплення відповідних xml, і якщо так, чи можете ви поділитися ним, якщо ні, то я почну працювати над цим аспектом.
GeorgeC

Мене цікавили лише два значення в xml, тому все, що у мене було, буде дуже важко наростити. Але є купа справді хороших навчальних посібників з python xml, тому якщо ви готові витратити якийсь час на читання, я впевнений, що ви вирішите проблему. Щасливе кодування :)
dango

2

В основному, це було неможливо, але придумали обхідний спосіб отримати результат. Дивіться скрипт arcgis python для видачі інструменту для отримання остаточного результату.

Інші питання, щоб потрапити на цю стадію, є

Перетворення стилю (символіки) ArcGIS у шрифт для MapInfo / OpenGeo?

Збережіть символіку ESRI в Mapinfo TAB

і

Створення зведеної таблиці символіки всіх наборів даних у кількох MXD?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.