ImportToolbox (arcpy)
Краткая информация
Импортирует заданный набор инструментов в ArcPy, обеспечивая доступ к входящим в этот набор инструментам.
Обсуждение
Хотя все базовые наборы инструментов ArcGIS доступны по умолчанию из скрипта, пользовательские наборы инструментов или наборы инструментов сторонних разработчиков должны добавляться с помощью команды ImportToolbox.
Другие наборы инструментов различного происхождения можно найти в любой из множества папок или баз геоданных. Среди них могут быть наборы инструментов, созданные вами или вашей организацией, а также наборы инструментов, загруженные с сайтов, таких как Ресурсный центр геообработки. В любом случае эти наборы инструментов должны быть одношаговым процессом импортированы в ArcPy, прежде чем их можно будет использовать как инструменты в Python.
Серверные наборы инструментов также можно добавить с использованием точки с запятой в качестве разделителя.
Сервер | Синтаксис |
---|---|
Интернет ArcGIS for Server | URL;servicename;{username};{password} |
Более подробно об использовании сервиса геообработки в Python
ImportToolbox также поддерживает работу с защищенными сервисами ArcGIS Online с помощью файла подключения к ArcGIS Server (.ags). Использование файла .ags позволяет сохранять в нем учетные данные, в скрытом виде.
import arcpy
arcpy.ImportToolbox('c:/logistics/logistics.ags;World/ServiceAreas')
arcpy.GenerateServiceAreas_ServiceAreas()
Чтобы разрешить любому пользователю arcgis.com доступ к вашему инструменту, используйте ключевое слово UseSSOIdentityIfPortalOwned. При выполнении ImportToolbox появится диалоговое окно Вход (Sign In), если вы еще не выполнили вход, иначе вы увидите сообщение об успешной операции.
import arcpy
tbx = "http://logistics.arcgis.com/arcgis/services;World/ServiceAreas;UseSSOIdentityIfPortalOwned"
arcpy.ImportToolbox(tbx)
arcpy.GenerateServiceAreas_ServiceAreas()
Будет использовано диалоговое окно Вход (Sign In), запускающее отдельный файл 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()
Синтаксис
Параметр | Объяснение | Тип данных |
input_file |
Набор инструментов геообработки, добавляемый в пакет сайта ArcPy. | String |
module_name |
Если у набора инструментов нет псевдонима, требуется аргумент module_name. Если доступ к инструменту осуществляется через пакет ArcPy, псевдониму набора инструментов, в котором содержится этот инструмент, требуется суффикс (arcpy.<toolname>_<alias>). Поскольку доступ к инструментам и их правильное выполнение в 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))