Краткая информация
Инструменты геообработки возвращают объект результата (Result).
Обсуждение
Преимущество объекта Result в том, что вы можете управлять информацией о выполнении инструментов, включая сообщения, параметры и выходные данные. Эти результаты могут быть доступны даже после того, как были выполнены несколько других инструментов.
Синтаксис
Result (toolname, resultID)
Параметр | Описание | Тип данных |
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) | Возвращает заданный результат как строку или RecordSet. Если выходные данные инструмента, такого как Создать векторный слой, представляют собой слой, то getOutput возвращает объект Layer. |
getSeverity (index) | Возвращает важность указанного сообщения. |
saveToFile (rlt_file) | Сохраняет результат в файл результата. Примечание:saveToFile Не поддерживается в ArcGIS Pro; используйте инструмент Упаковать результат. |
Методы
cancel ()
getInput (index)
Параметр | Описание | Тип данных |
index | Значение индекса входных данных. | Integer |
Тип данных | Описание |
Object | Входные данные в виде набора записей или строки. |
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 | Значение индекса выходных данных. | Integer |
Тип данных | Описание |
Object | Выходные данные в виде набора записей или строки. Если выходные данные инструмента, такого как Создать векторный слой, представляют собой слой, то getOutput возвращает объект Layer. Результирующие выходные данные также могут быть доступны с помощью индекса, так что методы result.getOutput(0) и result[0] эквивалентны. |
getSeverity (index)
Параметр | Описание | Тип данных |
index | Значение индекса сообщения. | Integer |
Тип данных | Описание |
Integer | Степень серьезности указанного сообщения.
|
saveToFile (rlt_file)
Параметр | Описание | Тип данных |
rlt_file | Полный путь к выходному файлу результата (.rlt). | String |
Пример кода
Использует объект результата, возвращенный после работы инструмента GetCount, чтобы определить число строк в таблице.
import arcpy
in_table = arcpy.GetParameterAsText(0)
result = arcpy.GetCount_management(in_table)
print(result[0])
Получить схему набора объектов из данного инструмента сервера, загрузить данные в набор объектов, передать набор объектов инструменту сервера и проверить объект result. После завершения сохранить результат в местный набор данных.
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.BufferPoints_server(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")
Воссоздать исходные выходные данные сервиса геообработки, используя имя инструмента и 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)