摘要
地理处理工具的结果。
说明
运行完成后,Result 对象将保留有关工具操作的信息。 其中包括消息、参数和输出。 arcpy.GetMessages 等函数仅提供来自前面工具的信息。 但即使在运行其他工具后,您仍可保留 Result 对象。
语法
Result (toolname, resultID)
参数 | 说明 | 数据类型 |
toolname | 已执行工具的名称。 | String |
resultID | 作业 ID。 | Integer |
属性
属性 | 说明 | 数据类型 |
inputCount (只读) | 返回输入数目。 | Integer |
maxSeverity (只读) | 返回消息的最大严重性。
| Integer |
messageCount (只读) | 返回消息数目。 | Integer |
outputCount (只读) | 返回输出数目。 | Integer |
resultID (只读) | 获得作业 ID。如果工具不是地理处理服务,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) | 将结果保存至结果文件。 注:不支持在 ArcGIS Pro 中使用 saveToFile;可使用打包结果工具代替。 |
方法
cancel ()
getAllMessages ()
数据类型 | 说明 |
List | 返回按位置包含的列表的列表:类型、返回代码和消息字符串。 每个内部列表中的第一个项目是表示消息类型的整数。
第一个项目是表示消息返回代码的整数。 如果消息具有关联的 ID 编号,则该项目将为 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")
使用工具名称和结果 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)