Как сравнить схемы из двух файловых баз геоданных?

13

У нас есть шаблонная база геоданных, которую мы отправляем нашим региональным создателям данных. Они обновляют эти базы геоданных и оцифровывают все данные из своего региона в предопределенные классы пространственных объектов.

Теперь, когда у нас есть файловые базы геоданных, мы обнаруживаем, что часто многие классы объектов были изменены. Может быть, поле может быть добавлено или удалено. В некоторых случаях сам класс объектов удаляется или создается новый.

Я хотел бы получить отчет, указывающий, какие классы пространственных объектов и таблицы изменены, а также различные поля в общих таблицах и классах пространственных объектов.

Я уже рассмотрел несколько вопросов, таких как:

Но ответы, данные в этих Вопросах, не помогли.

Девдатта Тенгше
источник
Я не уверен в протоколе здесь, в SE с некротическими темами, но у меня был к вам связанный вопрос, Devdatta: есть ли инструмент, который берет ваше решение из надстройки X-ray и разрешает различия между GeoDBs / XML?
Кайл Шепард
@KyleShepard Обычная процедура, чтобы задать новый вопрос, для нового вопроса. Вы можете сослаться на старый вопрос, если он содержит соответствующую информацию. И чтобы ответить на ваш вопрос, я не нашел ничего подобного. Может быть, вы могли бы задать новый вопрос, и кто-то, кто что-то нашел, ответит на него.
Девдатта Тенгше

Ответы:

9

Для ArcCatalog есть замечательная надстройка X-ray . У него много функций, но в итоге мы использовали инструмент «Анализировать разницу» из меню «Инструменты».

Он находит для вас разницу между базой геоданных и документом рабочей области XML. Мы просто экспортировали схему нашей базы геоданных шаблонов в XML и сравнили различные базы геоданных с ней.

Вряд ли требуется несколько секунд, чтобы показать хороший отчет со всеми классами объектов и полями, которые отсутствуют или отличаются в двух базах геоданных.

Девдатта Тенгше
источник
Это выглядит великолепно. Это работает на 10.1?
Фезтер
@Fezter: Это похоже на 10.1: arcgis.com/home/item.html?id=e1e911d7d7374285b1ef03d06b3ee642
Девдатта Тенгше
7

Я думаю, что написание скрипта на Python лучше всего подойдет для того, что вы пытаетесь понять. Ниже приведен общий рабочий процесс сценария:

Сначала сравните базу геоданных 1 (geo1) с базой геоданных 2 (geo2)

  1. Поиск / цикл по geo1 и получение имени класса пространственных объектов (fc) 1 и поиск того же имени fc в другом geo2 (если имя fc1 не может быть найдено в geo2, запишите первое имя fc в текстовый файл)
  2. Если шаг 1 fc1 == имя fc2, перечислите поля в fc1 и ищите поля в fc2, если имя поля fc1 не может быть найдено в fc2, запишите имя поля fc1 в текстовый файл
  3. Затем выполните поиск или составьте список доменов в geo1, а затем найдите то же доменное имя в geo2, если домен geo1 == домен geo2, тогда получите первое кодированное значение домена 1 и посмотрите, существует ли он в домене 2, если нет, запишите имя домена geo1 или кодированное значение домена в текстовый файл.

Второе обратное сравнение geo2 с geo1

Выполните шаги 1-3 выше, но в обратном порядке от geo2 до geo1

После того, как скрипт завершен, проверьте текстовый файл на предмет возможных расхождений.

artwork21
источник
3

Похоже, у вас уже есть хороший ответ. Но для всех, кто хочет разобраться в своих схемах базы геоданных, я также могу порекомендовать ArcGIS Diagrammer , отдельную программу, написанную одним из сотрудников Esri.

ArcGIS Diagrammer - это продуктивный инструмент для специалистов по ГИС для создания, редактирования или анализа схемы базы геоданных. Схема представлена ​​в виде редактируемой графики в среде, знакомой пользователям Microsoft Visual Studio. По сути, ArcGIS Diagrammer - это визуальный редактор для документов рабочей области ESRI xml, который можно создавать в ArcMap или ArcCatalog.

Стивен Лид
источник
чтобы прояснить, это не требует Visio - но это выглядит немного "знакомым пользователям Visio" в том смысле, что он использовал похожий макет
Стивен Лид
Да ты прав. Похоже, я ошибся.
Девдатта Тенгше