描述
通过地理处理工具返回 Result 对象。
讨论
Result 对象的优点是可以保留工具执行的相关信息,包括消息、参数和输出。即使在运行了多个其他工具后仍可保留这些结果。
语法
Result (toolname, resultID)
参数 | 说明 | 数据类型 |
toolname | 已执行工具的名称。 | String |
resultID | 作业 ID。 | Integer |
属性
属性 | 说明 | 数据类型 |
inputCount (只读) | 返回输入数目。 | Integer |
maxSeverity (只读) | 返回消息的最大严重性。
| Integer |
messageCount (只读) | 返回消息数目。 | Integer |
outputCount (只读) | 返回输出数目。 | Integer |
resultID (只读) | 获得作业 ID。如果工具不是地理处理服务,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) | 将结果保存至结果文件。 注:不支持在 ArcGIS Pro 中使用 saveToFile;可使用打包结果工具代替。 |
方法
cancel ()
getInput (index)
参数 | 说明 | 数据类型 |
index | 输入的索引位置。 | Integer |
数据类型 | 说明 |
Object | 记录集或者字符串形式的输入。 |
getMapImageURL ({parameter_list}, {height}, {width}, {resolution})
参数 | 说明 | 数据类型 |
parameter_list | 地图服务影像所基于的参数。 | Integer |
height | 影像的高度。 | Double |
width | 影像的宽度。 | Double |
resolution | 影像的分辨率。 | Double |
数据类型 | 说明 |
String | 地图影像的 URL。 |
getMessage (index)
参数 | 说明 | 数据类型 |
index | 消息的索引位置。 | Integer |
数据类型 | 说明 |
String | 地理处理消息。 |
getMessages ({severity})
参数 | 说明 | 数据类型 |
severity | 要返回的消息类型:0 = 消息,1 = 警告,2 = 错误。如果未指定值,则返回所有消息类型。
(默认值为 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])
从服务器工具获取要素集方案、将数据加载至要素集,将要素集传递到服务器工具并检查结果对象。完成后,将结果保存到本地数据集。
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)