Result (arcpy)
Резюме
Инструменты геообработки возвращают объект Result.
Обсуждение
Преимущество объекта Result в том, что вы можете управлять информацией о выполнении инструментов, включая сообщения, параметры и выходные данные. Эти результаты могут быть доступны даже после того, как были выполнены несколько других инструментов.
Синтаксис
Параметр | Объяснение | Тип данных |
toolname |
Имя выполненного инструмента. | String |
resultID |
ID задания. | Integer |
Свойства
Свойство | Объяснение | Тип данных |
inputCount (только чтение) |
Возвращает количество входных данных. | Integer |
maxSeverity (только чтение) |
Возвращает максимальную степень серьезности сообщений.
| Integer |
messageCount (только чтение) |
Возвращает количество сообщений. | Integer |
outputCount (только чтение) |
Возвращает количество выходных данных. | Integer |
resultID (только чтение) |
Получает ИД задания. Если инструмент не является сервисом геообработки resultID будет иметь вид "". | String |
status (только чтение) |
Получает статус задания.
| Integer |
Обзор метода
Метод | Объяснение |
cancel () |
Отменяет связанное задание |
getInput (index) |
Возвращает исходный ввод либо как набор записей, либо как строку. |
getMapImageURL ({parameter_list}, {height}, {width}, {resolution}) |
Получил изображение картографического сервиса для данного вывода, если таковое существует. |
getMessage (index) |
Возвращает определенное сообщение. |
getMessages ({severity}) |
Возвращает сообщения. |
getOutput (index) |
Возвращает данный выход либо как набор записей, либо как строку. Если выходные данные инструмента, такого как MakeFeatureLayer представляют собой слой, то getOutput возвращает объект Layer. |
getSeverity (index) |
Возвращает важность указанного сообщения. |
Методы
Параметр | Объяснение | Тип данных |
index |
Значение индекса входных данных. | Integer |
Тип данных | Объяснение |
Object |
Входные данные в виде набора записей или строки. |
Параметр | Объяснение | Тип данных |
parameter_list |
Параметры, на которых основывается изображение картографического сервиса. | Integer |
height |
Высота изображения. | Double |
width |
Ширина изображения. | Double |
resolution |
Разрешение изображения. | Double |
Тип данных | Объяснение |
String |
URL изображения карты. |
Параметр | Объяснение | Тип данных |
index |
Значение индекса сообщения. | Integer |
Тип данных | Объяснение |
String |
Сообщение геообработки. |
Параметр | Объяснение | Тип данных |
severity |
Тип возвращаемых сообщений: 0=сообщение, 1=предупреждение, 2=ошибка. Если значение не задано, возвращаются сообщения всех типов.
(Значение по умолчанию — 0) | Integer |
Тип данных | Объяснение |
String |
Сообщения геообработки. |
Параметр | Объяснение | Тип данных |
index |
Значение индекса выходных данных. | Integer |
Тип данных | Объяснение |
Object |
Выходные данные в виде набора записей или строки. Если выходные данные инструмента, такого как MakeFeatureLayer представляют собой слой, то getOutput возвращает объект Layer. |
Параметр | Объяснение | Тип данных |
index |
Значение индекса сообщения. | Integer |
Тип данных | Объяснение |
Integer |
Степень серьезности указанного сообщения.
|
Пример кода
Использует объект result, возвращенный из GetCount, чтобы определить счет таблицы.
import arcpy
inTable = arcpy.GetParameterAsText(0)
result = arcpy.GetCount_management(inTable)
print result.getOutput(0)
Получить схему набора объектов из инструмента сервера, загрузить данные в набор объектов, передать набор объектов инструменту сервера и проверить объект result. После завершения сохранить результат в местный набор данных.
import arcpy
import time
# Add a toolbox from a server
#
arcpy.ImportToolbox("http://myserver/arcgis/services;GP/BufferByVal", "server")
# Use GetParameterValue to get a featureset object with the default
# schema of the first parameter of the tool 'bufferpoints'
#
inFeatureSet = arcpy.GetParameterValue("bufferpoints", 0)
# Load a shapefile into the featureset
#
inFeatureSet.load("C:/Data/roads.shp")
# Run a server tool named BufferPoints with featureset created above
#
result = arcpy.BufferPoints_server(inFeatureSet, "500 feet")
# Check the status of the result object every 0.2 seconds
# until it has a value of 4(succeeded) or greater
#
while result.status < 4:
time.sleep(0.2)
# Get the output FeatureSet back from the server and save to a local geodatabase
#
outFeatSet = result.getOutput(0)
outFeatSet.save("C:/Temp/Base.gdb/roads_buffer")
Восстановить начальный выход сервиса геообработки, используя имя инструмента и id результата.
import arcpy
# Add the toolbox from the server
#
arcpy.ImportToolbox("http://myserver/arcgis/services;GP/BufferByVal")
# Recreate the original output using the tool name and result id
#
result_id = 'jfea96e13ba7b443cb04ba47c19899a1b'
result = arcpy.Result("BufferPoints", result_id)