Краткая информация
Импортирует заданный набор инструментов в ArcPy, обеспечивая доступ к входящим в этот набор инструментам.
Обсуждение
Хотя все базовые наборы инструментов ArcGIS доступны по умолчанию из скрипта, пользовательские наборы инструментов или наборы инструментов сторонних разработчиков должны добавляться с помощью команды ImportToolbox, для того, чтобы использоваться в скрипте.
Другие наборы инструментов различного происхождения можно найти в любой из множества папок или баз геоданных. Среди них могут быть наборы инструментов, созданные вами или вашей организацией, а также наборы инструментов, загруженные с сайтов, таких как Ресурсный центр геообработки. В любом случае эти наборы инструментов должны быть одношаговым процессом импортированы в ArcPy, прежде чем их можно будет использовать как инструменты в Python.
Серверные наборы инструментов также можно добавить с использованием точки с запятой в качестве разделителя.
Сервер | Синтаксис |
---|---|
Интернет ArcGIS Server | URL;servicename;{username};{password} |
ImportToolbox также поддерживает работу с защищенными сервисами ArcGIS Online с помощью файла подключения к ArcGIS Server (.ags). Использование файла .ags позволяет сохранять в нем учетные данные в скрытом виде.
import arcpy
arcpy.ImportToolbox('c:/logistics/logistics.ags;World/ServiceAreas')
arcpy.GenerateServiceAreas_ServiceAreas()
Для того, чтобы разрешить любому пользователю arcgis.com доступ к вашему инструменту, используйте ключевое слово UseSSOIdentityIfPortalOwned. При выполнении ImportToolbox появится диалоговое окно Вход, если вы еще не выполнили вход, иначе вы увидите сообщение об успешной операции.
import arcpy tbx = "http://logistics.arcgis.com/arcgis/services;World/ServiceAreas;UseSSOIdentityIfPortalOwned"
arcpy.ImportToolbox(tbx) arcpy.GenerateServiceAreas_ServiceAreas()
Примечание:
Будет использовано диалоговое окно Вход, запускающее автономный файл Python.
Если токен ранее уже был получен, он также может использоваться с ImportToolbox.
import arcpy
token = 'sadsa213d2j32jsdw02dm2' referrer = 'http://www.arcgis.com/' tbx = 'http://logistics.arcgis.com/arcgis/services;' + \ 'World/ServiceAreas;token={};{}'.format(token, referrer) arcpy.ImportToolbox(tbx)
result = arcpy.GenerateServiceAreas_ServiceAreas()
Синтаксис
ImportToolbox (input_file, {module_name})
Параметр | Описание | Тип данных |
input_file | Наборы инструментов геообработки доступны в Python. | String |
module_name | Если у набора инструментов нет псевдонима, требуется module_name. Если доступ к инструменту осуществляется через пакет ArcPy, псевдониму набора инструментов, в котором содержится этот инструмент, необходим суффикс (arcpy.<toolname>_<alias> или arcpy.<alias>.<toolname>). Поскольку доступ к инструментам и их правильное выполнение в ArcPy зависит от псевдонимов наборов инструментов, псевдонимы чрезвычайно важны при импорте пользовательских наборов инструментов. Желательно всегда указывать псевдоним пользовательского набора инструментов; однако, если псевдоним набора инструментов не указан, можно настроить временный псевдоним в качестве второго параметра. | String |
Тип данных | Описание |
Module | Возвращает импортированный модуль. При необходимости имена инструментов можно получить из свойств модуля __all__. |
Пример кода
Импорт набора инструментов геообработки для использования в ArcPy.
import arcpy
# Import custom toolbox
arcpy.ImportToolbox("c:/tools/My_Analysis_Tools.tbx")
try:
# Run tool in the custom toolbox. The tool is identified by
# the tool name and the toolbox alias.
arcpy.GetPoints_myanalysis("c:/data/forest.shp")
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))