Краткая информация
Результат выполнения инструмента геообработки.
Обсуждение
Объект Result сохраняет информацию об операции инструмента после его выполнения. Это сообщения, параметры и выходные данные. Такие функции, как arcpy.GetMessages, содержат информацию исключительно из предыдущего инструмента. Но можно сохранить объект Result даже после запуска других инструментов.
Синтаксис
Result (toolname, resultID)
Параметр | Описание | Тип данных |
toolname | Имя выполненного инструмента. | String |
resultID | ID задания. | Integer |
Свойства
Свойство | Описание | Тип данных |
inputCount (только чтение) | Возвращает количество входных данных. | Integer |
maxSeverity (только чтение) | Возвращает максимальную степень серьезности сообщений.
| Integer |
messageCount (только чтение) | Возвращает количество сообщений. | Integer |
outputCount (только чтение) | Возвращает количество выходных данных. | Integer |
resultID (только чтение) | Получает ИД задания. Если инструмент не является сервисом геообработки resultID будет иметь вид "". | String |
status (только чтение) | Получает статус задания.
| Integer |
Обзор метода
Метод | Описание |
cancel () | Отменяет связанное задание |
getAllMessages () | Возвращает типы сообщений, коды возврата и строки сообщений. |
getInput (index) | Возвращает заданные входные данные в виде строки или объекта RecordSet. |
getMapImageURL ({parameter_list}, {height}, {width}, {resolution}) | Возвращает изображение картографического сервиса для заданных выходных данных, если таковое имеется. |
getMessage (index) | Возвращает определенное сообщение по позиции индекса. |
getMessages ({severity}) | Возвращает сообщения инструмента геообработки. |
getOutput (index) | Возвращает заданный результат как объект RecordSet или строку. Если выходные данные инструмента, такого как Создать векторный слой, представляют собой слой, тоgetOutput возвращает объект Layer. |
getSeverity (index) | Возвращает важность указанного сообщения. |
saveToFile (rlt_file) | Сохраняет результат в файл результата. Примечание:saveToFile Не поддерживается в ArcGIS Pro; используйте инструмент Упаковать результат. |
Методы
cancel ()
getAllMessages ()
Тип данных | Описание |
List | Возвращает список списков, включающий по положению: тип, код возврата и строку сообщения. Первый элемент в каждом внутреннем списке представляет собой целое число, соответствующее типу сообщения.
Второй элемент - это целое число, соответствующее коду возврата сообщения. Если у сообщения есть связанный идентификационный номер, элементу будет присвоен ID. Сообщения об ошибках без ID будут возвращать -2147467259. Все остальные сообщения вернут 0. Второй элемент - это строка сообщения. |
getInput (index)
Параметр | Описание | Тип данных |
index | The index position of the input as an integer, or the parameter name. | Variant |
Тип данных | Описание |
Variant | Входные данные, как объект RecordSet или строка. |
getMapImageURL ({parameter_list}, {height}, {width}, {resolution})
Параметр | Описание | Тип данных |
parameter_list | The parameters on which the map service image will be based. | Integer |
height | The height of the image. | Double |
width | The width of the image. | Double |
resolution | The resolution of the image. | Double |
Тип данных | Описание |
String | URL изображения карты. |
getMessage (index)
Параметр | Описание | Тип данных |
index | The index position of the message. | Integer |
Тип данных | Описание |
String | Сообщение геообработки. |
getMessages ({severity})
Параметр | Описание | Тип данных |
severity | The type of messages to be returned.
Not specifying a severity level will return all types of messages. (Значение по умолчанию — 0) | Integer |
Тип данных | Описание |
String | Сообщения инструмента геообработки. |
getOutput (index)
Параметр | Описание | Тип данных |
index | The index position of the output as an integer, or the parameter name. | Variant |
Тип данных | Описание |
Variant | Выходные данные в виде RecordSet или строки. Если выходные данные инструмента, такого как Создать векторный слой, представляют собой слой, тоgetOutput возвращает объект Layer. Результирующие выходные данные также могут быть доступны с помощью индекса (целого числа или имени). Например, чтобы получить доступ к счетчику записей инструмента Посчитать строки, result.getOutput(0), result[0], result.getOutput("row_count") и result["row_count"] эквивалентны. |
getSeverity (index)
Параметр | Описание | Тип данных |
index | Значение индекса сообщения. | Integer |
Тип данных | Описание |
Integer | Степень серьезности указанного сообщения.
|
saveToFile (rlt_file)
Параметр | Описание | Тип данных |
rlt_file | Полный путь к выходному файлу результата (.rlt). | String |
Пример кода
Из объекта Result, возвращенного инструментом Посчитать строки, получите доступ к количеству записей по индексу.
import arcpy
in_table = arcpy.GetParameterAsText(0)
result = arcpy.management.GetCount(in_table)
print(result[0])
Из объекта Result, возвращенного инструментом Посчитать строки, получите доступ к количеству записей по имени.
import arcpy
in_table = arcpy.GetParameterAsText(0)
result = arcpy.management.GetCount(in_table)
print(result["row_count"])
Скрипт берет схему набора объектов серверного инструмента, затем загружает данные в набор объектов и передает их серверному инструменту. После завершения работы инструмента скрипт сохраняет результат в локальный набор данных.
import time
import arcpy
# Add a toolbox from a server
arcpy.ImportToolbox("http://myserver/arcgis/services;GP/BufferByVal",
"servertools")
# Use GetParameterValue to get a featureset object with the default
# schema of the first parameter of the tool 'bufferpoints'
in_featureset = arcpy.GetParameterValue("bufferpoints", 0)
# Load a shapefile into the featureset
in_featureset.load("C:/Data/roads.shp")
# Run a server tool named BufferPoints with featureset created above
result = arcpy.server.BufferPoints(in_featureset, "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
out_featureset = result.getOutput(0)
out_featureset.save("c:/temp/base.gdb/roads_buffer")
Повторно создайте выходные данные сервиса геообработки, используя имя инструмента и идентификатор результата.
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)