栅格比较 (数据管理)

摘要

比较两个栅格数据集或镶嵌数据集的属性。

使用情况

  • 此工具可返回显示比较结果的信息。

  • 参数和属性容差允许比较结果存在指定量的偏差。

  • Python 中使用此工具时,通过返回的 Result 对象(使用索引位置 1)获取比较状态。(result[1])。 此工具未检测到差异时将显示 'true' 值,检测到差异时将显示 'false' 值。

    了解有关使用 Python 中工具的详细信息。

参数

标注说明数据类型
输入基础栅格

将与输入测试栅格参数值进行比较的栅格或镶嵌数据集。 此参数值是您已声明为有效的数据。 此基础数据包含正确的内容和信息。

Raster Layer; Mosaic Layer
输入测试栅格

将与输入基础栅格参数值进行比较的栅格或镶嵌数据集。 此参数值是因编辑或编译新信息而进行更改的数据。

Raster Layer; Mosaic Layer
比较类型
(可选)

指定将比较的栅格类型。

  • 栅格数据集将比较两个栅格数据集。
  • 地理数据库栅格数据集将比较地理数据库中的两个栅格数据集。
  • 镶嵌数据集将比较两个镶嵌数据集。
String
忽略选项
(可选)

指定将在比较中被忽略的属性。

  • 波段计数将忽略波段数。
  • 范围将忽略范围。
  • 列和行将忽略列和行数。
  • 像素类型将忽略像素类型。
  • NoData将忽略 NoData 值。
  • 空间参考将忽略空间参考系统。
  • 像素值将忽略像素值。
  • 色彩映射表将忽略色彩映射表。
  • 栅格属性表将忽略属性表。
  • 统计数据将忽略统计数据。
  • 元数据将忽略元数据。
  • 存在金字塔将忽略已有的金字塔。
  • 压缩类型将忽略压缩类型。
  • 数据源类型将忽略数据源类型。
String
继续比较
(可选)

指定在找到输入之间的第一个差异后,是否继续比较。

  • 未选中 - 该工具将在找到第一个差异后停止。 这是默认设置。
  • 选中 - 该工具将在找到第一个差异后继续运行。

Boolean
输出比较文件
(可选)

该输出文件将包含输入之间的所有异同点。 该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。

该输出文件将包含输入之间的所有异同点。 该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。

File
参数容差
(可选)

落在此容差范围内的值视作相同。 可以对所有参数使用相同的容差,也可以向各个参数应用不同的容差。

容差类型可以为值,也可以为小数部分。

如果容差类型是分数,则每个像素的容差将不同,因为每个像素具有不同的值。 例如,如果容差分数设置为 0.5,则容差计算如下:

  • 如果像素值为 0.2,则容差将为 0.1,因为 0.5 * 0.2 = 0.1。
  • 如果像素值为 3,则容差将为 1.5,因为 0.5 * 3 = 1.5。

Value Table
属性容差
(可选)

在该数值范围内的属性值将被视作相同。 此参数仅适用于数值字段类型。

Value Table
忽略字段
(可选)

在比较过程中将被忽略的一个或多个字段。 这些字段的字段定义和表格值将被忽略。

String

派生输出

标注说明数据类型
比较状态

未找到差异时,比较状态将为 'true',找到差异时,比较状态将为 'false'

Boolean

arcpy.management.RasterCompare(in_base_raster, in_test_raster, {compare_type}, {ignore_option}, {continue_compare}, {out_compare_file}, {parameter_tolerances}, {attribute_tolerances}, {omit_field})
名称说明数据类型
in_base_raster

将与 in_test_raster 参数值进行比较的栅格或镶嵌数据集。 此参数值是您已声明为有效的数据。 此基础数据包含正确的内容和信息。

Raster Layer; Mosaic Layer
in_test_raster

将与 in_base_raster 参数值进行比较的栅格或镶嵌数据集。 此参数值是因编辑或编译新信息而进行更改的数据。

Raster Layer; Mosaic Layer
compare_type
(可选)

指定将比较的栅格类型。

  • RASTER_DATASET将比较两个栅格数据集。
  • GDB_RASTER_DATASET将比较地理数据库中的两个栅格数据集。
  • MOSAIC_DATASET将比较两个镶嵌数据集。
String
ignore_option
[ignore_option,...]
(可选)

指定将在比较中被忽略的属性。

  • BandCount将忽略波段数。
  • Extent将忽略范围。
  • Columns And Rows将忽略列和行数。
  • Pixel Type将忽略像素类型。
  • NoData将忽略 NoData 值。
  • Spatial Reference将忽略空间参考系统。
  • Pixel Value将忽略像素值。
  • Colormap将忽略色彩映射表。
  • Raster Attribute Table将忽略属性表。
  • Statistics将忽略统计数据。
  • Metadata将忽略元数据。
  • Pyramids Exist将忽略已有的金字塔。
  • Compression Type将忽略压缩类型。
  • Data Source Type将忽略数据源类型。
String
continue_compare
(可选)

指定在找到输入之间的第一个差异后,是否继续比较。

  • NO_CONTINUE_COMPARE该工具将在找到第一个差异后停止。 这是默认设置。
  • CONTINUE_COMPARE该工具将在找到第一个差异后继续运行。
Boolean
out_compare_file
(可选)

该输出文件将包含输入之间的所有异同点。 该文件是一个以逗号分隔的文本文件,在 ArcGIS 中可以表的形式对其进行查看和使用。

File
parameter_tolerances
[[Parameter, Tolerance, Type],...]
(可选)

落在此容差范围内的值视作相同。 可以对所有参数使用相同的容差,也可以向各个参数应用不同的容差。

容差类型可以为值,也可以为小数部分。

如果容差类型是分数,则每个像素的容差将不同,因为每个像素具有不同的值。 例如,如果容差分数设置为 0.5,则容差计算如下:

  • 如果像素值为 0.2,则容差将为 0.1,因为 0.5 * 0.2 = 0.1。
  • 如果像素值为 3,则容差将为 1.5,因为 0.5 * 3 = 1.5。

Value Table
attribute_tolerances
[[Field, {Tolerance}],...]
(可选)

在该数值范围内的属性值将被视作相同。 此参数仅适用于数值字段类型。

Value Table
omit_field
[omit_field,...]
(可选)

在比较过程中将被忽略的一个或多个字段。 这些字段的字段定义和表格值将被忽略。

String

派生输出

名称说明数据类型
compare_status

未找到差异时,比较状态将为 'true',找到差异时,比较状态将为 'false'

Boolean

代码示例

RasterCompare 示例 1(Python 窗口)

这是 RasterCompare 函数的 Python 示例。

import arcpy
arcpy.management.RasterCompare("C:/workspace/image1.tif","C:/workspace/image2.tif",
                         "RASTER_DATASET","'Pyramids Exist'",
                         "CONTINUE_COMPARE","C:/workspace/compare01.txt",
                         "Pixel_Value 1 Value","Count 5","OID")
RasterCompare 示例 2(独立脚本)

这是 RasterCompare 函数的 Python 示例。

##====================================
##Raster Compare
##Usage: RasterCompare_management in_base_raster in_test_raster {RASTER_DATASET |
##                                GDB_RASTER_DATASET | GDB_RASTER_CATALOG |
##                                MOSAIC_DATASET} {ignore_option;ignore_option...}
##                                {NO_CONTINUE_COMPARE | CONTINUE_COMPARE}
##                                {out_compare_file} {Parameter {Tolerance} {Type};
##                                Parameter {Tolerance} {Type}...} {Field {Tolerance};
##                                Field {Tolerance}...} {omit_field;omit_field...}


try:
    import arcpy

    arcpy.env.workspace = "c:/workspace"

    ##Compare two Raster dataset
    arcpy.management.RasterCompare("raster_base.tif","raster_test.tif","RASTER_DATASET",
                                   "","CONTINUE_COMPARE","compareresult.txt","","","")

    ##Compare two Raster Catalog with ignore options
    arcpy.management.RasterCompare("fgdb.gdb/rc_base","fgdb.gdb/rc_test","RASTER_CATALOG",
                                   "IsManaged;Extent","CONTINUE_COMPARE","compareresult2.txt",
                                   "","","DATE")

    ##Compare two Mosaic Dataset with torelance
    arcpy.management.RasterCompare("fgdb.gdb/md_base","fgdb.gdb/md_test","MOSAIC_DATASET",
                                   "IsEmbedded;Seamline","CONTINUE_COMPARE","compareresult3.txt",
                                   "All 0.00001 Fraction","HighPS 0.0001;LowPS 0.0001",
                                   "ItemTS;UriHash")

except:
    print("Raster Compare exsample failed.")
    print(arcpy.GetMessages())

相关主题