Skip to main content

Добавление наборов инструментов в Python

Изначально ArcPy знает только о инструментах, хранящихся в наборах инструментов системы ArcGIS. Пользовательские инструменты, созданные человеком, сторонней организацией или компанией и сохраненные в пользовательском наборе инструментов, можно использовать в ArcPy как любой системный инструмент, импортировав пользовательский набор инструментов.

В следующем примере функция ImportToolbox используется для того, чтобы инструменты, содержащиеся в пользовательском наборе инструментов, можно было использовать в ArcPy. После импорта набора инструментов можно получить доступ к пользовательским инструментам в виде arcpy.<toolname>_<alias>.

>>> arcpy.ImportToolbox("c:/mytools/geometrytools.atbx")
>>> arcpy.CreateRegularPolygons_geometry(

Если доступ к инструменту осуществляется через пакет ArcPy, псевдониму набора инструментов, в котором содержится этот инструмент, необходим суффикс (arcpy.<toolname>_<alias>). Поскольку доступ к правильному инструменту и его запуск в ArcPy зависят от псевдонимов наборов инструментов, псевдонимы чрезвычайно важны при импорте пользовательских наборов инструментов. Рекомендуется всегда задавать псевдоним для пользовательского набора инструментов. Однако, если псевдоним набора инструментов не определен, в качестве второго параметра функции ImportToolbox можно задать временный псевдоним.

>>> arcpy.ImportToolbox("c:/mytools/geometrytools.atbx", "mytools")
>>> arcpy.CreateRegularPolygons_mytools(

Наборы инструментов Server

Сервисы геообработки также можно добавлять в среду написания скриптов посредством команды ImportToolbox. Независимо от того, добавляете ли вы сервис геообработки с локального или интернет-сервера, имя сервера и название набора инструментов разделяются точкой с запятой.

Чтобы добавить набор инструментов с интернет-сервера, укажите URL и имя набора, разделённые точкой с запятой.

import arcpy
arcpy.ImportToolbox("http://lab13/arcgis/services;BufferByVal")

Чтобы добавить набор инструментов с локального сервера, укажите имя сервера и набора, разделённые точкой с запятой.

import arcpy
arcpy.ImportToolbox("lab13;BufferByVal")