Обновление источников данных в mxd используя arcpy

0 голосов
спросил 08 Апр, 16 от lid_0k (290 баллов) в категории Программные продукты Esri
Всем здравсвуйте, помогите пожайлуста разобраться.
У меня есть слой в mxd: Улицы
Старый путь к этому слою:
D:\Работа\Baza.gdb\M_500_Moskva\S_500_street
Можно ли изменить путь с помощью arcpy на новый:
D:\Работа\Baza.gdb\M_600_Piter\S_600_street
Получается у меня База остается та же самая, а меняется Набор данных и имя класса объектов.

4 Ответы

0 голосов
ответил 11 Апр, 16 от Porter19801107 (2,630 баллов)
Добрый день Лидия.
Да это можно делать.
А вот и сам скрипт
Открываете IDLE и пишите
import arcpy.mapping as mapping
mxd = mapping.MapDocument(D:\") ## здесь указываете свой путь к MXD
mxd.findAndReplaceWorkspacePaths(r"D:\Работа\Baza.gdb\M_500_Moskva\S_500_street", r"D:\Работа\Baza.gdb\M_600_Piter\S_600_street") ## здесь указываете старые и новые пути слоя.
Можно делать и в самом Mxd в этом случаеmxd = mapping.MapDocument(D:\") надо заменять наmxd = mapping.MapDocument("CURRENT")
0 голосов
ответил 19 Апр, 16 от lid_0k (290 баллов)

Добрый день Лидия.
Да это можно делать.
А вот и сам скрипт
Открываете IDLE и пишите
import arcpy.mapping as mapping
mxd = mapping.MapDocument(D:\") ## здесь указываете свой путь к MXD
mxd.findAndReplaceWorkspacePaths(r"D:\Работа\Baza.gdb\M_500_Moskva\S_500_street ", r"D:\Работа\Baza.gdb\M_600_Piter\S_600_street") ## здесь указываете старые и новые пути слоя.
Можно делать и в самом Mxd в этом случае mxd = mapping.MapDocument(D:\") надо заменять на mxd = mapping.MapDocument("CURRENT")

Я попробовала сделать так как вы написали, но к сожалению путь к слою не обновился. Не могу понять почему не работает.
0 голосов
ответил 26 Апр, 16 от Porter19801107 (2,630 баллов)
Добрый день Лидия.
А где сам скрипт сам вводите ?
0 голосов
ответил 26 Апр, 16 от lid_0k (290 баллов)

Добрый день Лидия.
А где сам скрипт сам вводите ?

Здравствуйте!
Я писала скрипт прям в ArcCatalog в окне для ввода Питона. В итоге у меня получилось изменить источники данных у слоев в mxd. Только я использовала другой метод обновления источников данных:
lyr.replaceDataSource
Спасибо вам большое за помощь!
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...