Копировать домен (и только домен) между базами геоданных Esri?

23

Иногда мне нужно скопировать домен (ы) из одной базы геоданных в другую (без класса пространственных объектов или таблицы).

В прошлом я выполнял это несколькими различными способами, но каждый метод не так прост, как мне кажется (или, может быть, есть инструмент CopyDomain , который я пропустил).

Какой метод вы используете для этого?

Джей Камминс
источник
Я знаю как минимум 2 дополнительных метода: возможно, не «принятый ответ» достоин, но определенно заслуживает репутации. Я опубликую их через несколько дней, если никто не предоставит их в качестве ответов.
Джей Камминс
Публикуйте
Несколько раз мне приходилось объяснять администраторам баз данных не из ГИС, как домены похожи на таблицу, но не хранятся в виде таблицы, к которой можно получить доступ через SQL. Возможно, ответы на это должны быть на языке, понятном администратору базы данных, не являющемуся ГИС.
Кирк Куйкендалл

Ответы:

10

http://arcscripts.esri.com/details.asp?dbid=14729

Это расширение ArcCatalog, которое позволяет копировать домены между базами геоданных.

Я считаю, что он актуален только для 9.3.1 SP1, поэтому он может не работать с ArcGIS 10.

Бритт Уэскотт
источник
+1 Я нахожусь на ArcGIS 10, но я сознательно оставил вопрос открытым для любой версии. Я получил расширение 9.3.1 для работы в ArcCatalog 10. Я не получил новую команду в контекстном меню, но я смог добавить команду на панель инструментов и использовать ее таким образом.
Джей Камминс
Хорошо, рад, что это сработало. Вы должны сообщить автору расширения о том, что команда контекстного меню не работает в ArcCatalog 10.
Бритт Уэскотт
Я уведомил автора (сверчки пока). Кроме того, я применил SP1 к ArcGIS 10 в пятницу. Теперь копирование доменов приводит к ошибкам расширения arccatalog при запуске ArcCatalog.
Джей Камминс
Это имеет смысл, надеюсь, он скоро его обновит.
Бритт Уэскотт
15

Для доменов с кодированными значениями я сделаю « Домен в таблицу» из исходной базы геоданных, а затем внесу « Стол в домен» в новую базу геоданных.

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

Джей Камминс
источник
3
Этим утром я просто использовал инструменты «Домен в таблицу» и «Стол в домен», и они отлично работали.
Тимоти Майкл
3

Этот метод более хакерский и практичен только для одного или нескольких доменов.

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

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

Джей Камминс
источник
3

Я написал быструю командную строку arcobjects exe на основе некоторого кода VBA, который я нашел на прошлой неделе . Это не сложный код.

Экс е здесь .
Фильм AVI здесь .

Мелкий шрифт: exe скомпилирован в 10.0 / лицензия ArcEditor (лицензия является частью, жестко запрограммированной на данный момент).

альтернативный текст

Джей Камминс
источник
Я попробовал это, но я получаю ошибки исключения CopyDomain.exe canvec_blank.gdb target.gdb * Exception from HRESULT: 0x80040228 Exception from HRESULT: 0x80040228. Любые идеи?
Мэтт Уилки
Не знаю наверняка, но вы лицензия ArcEditor? Это был быстрый и грязный инструмент, так что это, вероятно, не самый элегантный инструмент. У вас есть Visual Studio? Источник находится здесь: code.google.com/p/umbriel/source/browse/…
Джей Камминс
3

Вот метод для экспорта / импорта доменов, который использует XML Workspace Documents .

Требования

  • ArcGIS Desktop 10.XX
  • ArcGIS Pro последняя (проверенная)
  • Блокнот ++, Блокнот или ваш любимый текстовый редактор

Процедура

Экспорт XML из источника

  1. Выберите вашу исходную базу геоданных
  2. Экспорт XML-документа рабочей области

экспорт

  1. Экспортируйте только схему. Метаданные необязательны (красная стрелка).

только схема

Редактировать XML

Схема набора данных удаляется на шаге.

  1. Откройте файл XML.
  2. (необязательно) Включите перенос слов, чтобы все было лучше видно.
  3. Удалить все между <DatasetDefinitions xsi:type='esri:ArrayOfDataElement'>и в </DatasetDefinitions>тегах. Это должно выглядеть примерно так:

XML правки

  1. Оставь все остальное в покое.
  2. Сохраните файл XML

Импорт в цель

  1. Найти / Создать новую базу геоданных
  2. Импортировать документ XML Workspace ...
  3. Выберите отредактированный XML и перейдите.
  4. Выполнено.

Поиск проблемы

  • Спецификация рабочего пространства Esri XML очень специфична. Если шаг импорта выдает ошибку, возможно, имеется ошибка схемы. Просмотрите XML или просто экспортируйте его снова и повторите. Не удаляйте лишние каретки или разрывы строк.
Elliott
источник