Недавно я боролся с подобной задачей и первоначально использовал метод идентификации документа карты, идентификации фрейма данных, создания слоя и добавления слоя в документ карты.Интересно, что все это может быть выполнено с использованием следующего при условии, что он вызывается из текущего документа карты.
# import modules
import arcpy
# create layer in TOC and reference it in a variable for possible other actions
newLyr = arcpy.MakeFeatureLayer_managment(
in_features,
out_layer
)[0]
Создание векторного слоя требует двух входов, объектов ввода и выводаслой.Входными объектами могут быть любые типы классов объектов или слоев.Это включает шейп-файлы.Выходной слой - это имя слоя, которое будет отображаться в оглавлении.
Кроме того, Make Feature Layer может принимать предложение where для создания запроса определения во время создания.Как правило, именно так я это реализую, когда нужно быстро создать множество слоев с различными запросами определений.
Наконец, в приведенном выше фрагменте, хотя это и не является необходимым, я продемонстрировал, как заполнять переменную с помощьюрезультат вывода инструмента, чтобы можно было управлять слоем в оглавлении, используя arcpy.mapping, если это необходимо позже в скрипте.Каждый инструмент возвращает объект результата.Доступ к выходному объекту результата можно получить с помощью метода getOutput, но к нему также можно получить доступ с помощью индекса интересующего вас свойства результата, в данном случае выходной файл расположен с индексом 0.