执行 Reviewer 批处理作业 (Data Reviewer)

需要 Data Reviewer 许可。

摘要

运行工作空间中的 Reviewer 批处理作业并将结果写入 Reviewer 会话中。Reviewer 批处理作业包含多组 Reviewer 校验。检查根据条件、规则和空间关系验证数据。检查还指定要验证的多组要素或行及其源工作空间。Reviewer 会话存储 Reviewer 校验执行的验证任务的相关信息。此信息存储在 Reviewer 工作空间的表和数据集中。

使用情况

  • 如果指定的工作空间不是 Reviewer 工作空间,请使用启用 Data Reviewer 工具来创建一个。

  • 可以使用创建 Reviewer 会话工具创建会话。创建 Reviewer 会话生成会话 ID 和名称作为输出参数。

  • Reviewer 批处理作业是使用 ArcGIS Data Reviewer Desktop 扩展模块在 ArcMap 中提供的工具创建的。

  • 连通性规则元数据自定义校验类型不受支持,且在批处理作业执行期间将被跳过。

  • Reviewer 批处理作业结果写入 Reviewer 工作空间中指定的会话(用会话表示)中。

  • 如果工作空间未在生产工作空间参数中进行定义,那么批处理作业将运行在批处理作业文件中定义的工作空间中。

  • 如果生产工作空间是企业级地理数据库,则可使用生产工作空间版本参数来验证特定版本中的数据。

  • 分析区域包含用于创建处理区域的合并面要素或范围值。与该区域相交的要素将通过 Reviewer 批处理作业来进行验证。该区域之外的要素将不会得到验证。

  • 生产工作空间引用版本化(传统)企业级地理数据库时,将启用仅更改要素。此设置将验证限制为已从父版本更改为子版本的要素,并且仅适用于校验的主要要素类(要素类 1)。次要数据资源中的所有要素(要素类别 2+)都用于验证。版本之间的更改包括:

    • 子版本中插入而父版本中未插入的要素
    • 子版本中更改而父版本中未更改的要素
    • 子版本和父版本中都更改的要素
    • 子版本中更改且父版本中删除的要素
  • 批处理作业概要显示在结果窗口中。

  • 此工具的输出参数是 Reviewer 工作空间中 REVBATCHRUNTABLE 表的某一行的表视图。该行表示执行批处理作业时创建的记录。下表介绍了 REVBATCHRUNTABLE 中的 RUNCONTEXTSTATUS 字段内的可能值。

    字段说明

    RUNCONTEXT

    标识运行了批处理作业的上下文的代码:

    • 0 - Desktop
    • 1 - Engine
    • 2 - Server
    • 3 - Pro

    状态

    批处理作业执行状态代码:

    • 0 - 成功

      批处理作业已成功执行。

    • 1 - 成功,但是有错误

      批处理作业成功执行但有错误。处理错误通常与校验失败验证(数据源不可用、校验配置错误)或由于要素问题而跳过验证要素相关联。

    • 2 - 成功,但是有警告

      批处理作业成功执行并显示警告。处理警告通常与无法为结果构建错误几何以及对正确执行批处理作业不重要的其他问题相关联。

    • 3 - 成功,但是有错误和警告

      如上所述,批处理作业成功执行,但是显示了警告和错误。

    • 4 - 失败

      批处理作业未能成功执行。如果由于数据访问或配置问题导致批处理作业中的所有校验都未通过验证,则批处理作业会失败。

  • 可在 %localappdata%\Esri\DataReviewer 目录中找到含结果的日志文件。日志文件中的信息包括对要素类运行了哪些检查、验证过的要素数以及报表的结果数。通过查看地理处理批处理作业服务的服务器作业目录,可以检查服务器处理错误和警告。

参数

标注说明数据类型
Reviewer 工作空间

Reviewer 批处理作业结果将写入的工作空间。

Workspace
会话

Reviewer 会话的标识符和名称。会话必须存在于 Reviewer 工作空间中。

String
批处理作业文件

将要执行的 Reviewer 批处理作业文件的路径。

File
生产工作空间
(可选)

包含要验证的要素的企业级或文件地理数据库。

Workspace
分析区域
(可选)

定义区域的面要素或范围值,该区域将用于构建验证处理区域。

Extent; Feature Layer
仅更改的要素
(可选)

指定在生产工作空间引用企业级地理数据库中的数据时要进行验证的要素类型(无论是否更改)。

  • 选中 - 将仅验证从父版本更改为子版本的要素。
  • 未选中 - 将验证批处理作业引用的数据中的所有要素。这是默认设置。
Boolean
生产工作空间版本
(可选)

将由批处理作业验证的生产工作空间的版本。仅当生产工作空间为企业级地理数据库时适用。

String

派生输出

标注说明数据类型
BATCHRUNTABLE_View

包含工具执行摘要信息的表视图。

表视图

arcpy.Reviewer.ExecuteReviewerBatchJob(reviewer_workspace, session, batch_job_file, {production_workspace}, {analysis_area}, {changed_features}, {production_workspaceversion})
名称说明数据类型
reviewer_workspace

Reviewer 批处理作业结果将写入的工作空间。

Workspace
session

Reviewer 会话的标识符和名称。会话必须存在于 Reviewer 工作空间中。

String
batch_job_file

将要执行的 Reviewer 批处理作业文件的路径。

File
production_workspace
(可选)

包含要验证的要素的企业级或文件地理数据库。

Workspace
analysis_area
(可选)

定义区域的面要素或 arcpy.Extent 对象,该区域将用于构建验证处理区域。

Extent; Feature Layer
changed_features
(可选)

指定在生产工作空间引用企业级地理数据库中的数据时要进行验证的要素类型(无论是否更改)。

  • CHANGED_FEATURES将仅验证从父版本更改为子版本的要素。
  • ALL_FEATURES将验证批处理作业引用的数据中的所有要素。这是默认设置。
Boolean
production_workspaceversion
(可选)

将由批处理作业验证的生产工作空间的版本。仅当生产工作空间为企业级地理数据库时适用。

String

派生输出

名称说明数据类型
tableView

包含工具执行摘要信息的表视图。

表视图

代码示例

ExecuteReviewerBatchJob 示例(Python 窗口)

以下 Python 窗口脚本演示了如何使用 ExecuteReviewerBatchJob 工具。

# Path to the tutorial reviewer workspace
rev_workspace = "C:/gisdata/TutorialsSamples/Tutorials/Reviewer/Reviewer.sde"

# path to the tutorial batch job file
batch_job_file = "C:/gisdata/TutorialsSamples/Tutorials/Reviewer/BatchJobs/RevTutorial.rbj"

# session - must exist before executing this script.
session = "Session 2 : Session 2"

# path to the tutorial production workspace - this contains the data to validate
prod_workspace = "C:/gisdata/TutorialsSamples/Tutorials/Reviewer/California.sde"

# execute the batch job
res = arcpy.ExecuteReviewerBatchJob_Reviewer(rev_workspace,session,batch_job_file,prod_workspace)

# get the output table view from the result object
tbl = res.getOutput(0)

print(tbl.name)  # prints REVBATCHRUNTABLE
ExecuteReviewerBatchJob 示例 2(独立脚本)

此独立脚本演示了如何使用 ExecuteReviewerBatchJob 工具。

# Name: ExecuteReviewerBatchJob_Example.py
# Description: Executes a reviewer batch job

# Import arcpy module
import arcpy

# reviewer workspace
reviewer_db = "c:/gisdata/reviewer.sde"

# reviewer batch job file - corresponds to Finding geometries with spatial relationships doc
SoCal_GeoOnGeoChecks_rbj = "C:/gisdata/SoCal_GeoOnGeoChecks.rbj"

# session - must exist before executing this script.
session =  "Session 2 : Session 2"

# production database - contains data to validate
production_db = "C:/gisdata/Edit_Sample.sde"

# aoi feature layer
arcpy.MakeFeatureLayer_management(production_db + "/Features/PolbndA",'PolbndA',"objectid = 145")

# Execute Reviewer Batch Job function
res = arcpy.ExecuteReviewerBatchJob_Reviewer(reviewer_db, session, SoCal_GeoOnGeoChecks_rbj, production_db,'PolbndA')

# get the output table
tbl = res.getOutput(0)
print(tbl.name)

# query the table
for row in arcpy.da.SearchCursor(tbl,("RECORDID","BATCHJOBID","BATCHJOBFILE")):
    print(str(row[0]))
    print(row[1])
    print(row[2])
ExecuteReviewerBatchJob 示例 3(独立脚本)

此独立脚本演示了如何使用 ExecuteReviewerBatchJob 工具。

# Name: ExecuteReviewerBatchJob_Example.py
# Description: Executes a reviewer batch job
# Requirements: Data Reviewer extension

# Import arcpy module
import arcpy

# Check out a Data Reviewer extension license
arcpy.CheckOutExtension("datareviewer")

arcpy.env.overwriteOutput="true"

# reviewer workspace
reviewer_db = "c:/gisdata/reviewer.sde"

# reviewer batch job file - corresponds to Finding geometries with spatial relationships doc
SoCal_GeoOnGeoChecks_rbj = "C:/gisdata/SoCal_GeoOnGeoChecks.rbj"

# session - must exist before executing this script.
session =  "Session 2 : Session 2"

# production database - contains data to validate
production_db = "C:/gisdata/Edit_Sample.sde"

# aoi extent

Extent_Analysis_Area = arcpy.Extent(-118.02, 33.65, 117.71, 33.94)

# Define spatial reference of analysis area extent using factory code
# GCS_WGS_1984, WKID: 4326
# If spatial reference is not defined the following warning message will appear:
# Spatial reference of the analysis area extent is not defined. Spatial reference is required to ensure that the analysis area extent is compatible with the data sources being validated.
spatial_reference =  arcpy.SpatialReference()
spatial_reference.factoryCode = 4326
spatial_reference.create()
Extent_Analysis_Area.spatialReference = spatial_reference

# Execute Reviewer Batch Job function
res = arcpy.ExecuteReviewerBatchJob_Reviewer(reviewer_db, session, SoCal_GeoOnGeoChecks_rbj, production_db, Extent_Analysis_Area, "ALL_FEATURES", "")

# get the output table
tbl = res.getOutput(0)
print tbl.name

# query the table
for row in arcpy.da.SearchCursor(tbl,("RECORDID","BATCHJOBID","BATCHJOBFILE")):
    print str(row[0])
    print row[1]
    print row[2]

# Check in the Data Reviewer extension
arcpy.CheckInExtension("datareviewer")

许可信息

  • Basic: 需要 Data Reviewer
  • Standard: 需要 Data Reviewer
  • Advanced: 需要 Data Reviewer

相关主题