栅格比较 (数据管理)

摘要

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

使用情况

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

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

参数

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

要比较的第一个栅格或镶嵌数据集。

Raster Layer; Mosaic Layer
输入测试栅格数据

要与第一个栅格或镶嵌数据集进行比较的第二个栅格或镶嵌数据集。

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

指定将比较的栅格类型。

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

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

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

指定发现不匹配时是否停止比较。

  • 未选中 - 发现不匹配时,将停止比较。 这是默认设置。
  • 选中 - 发现不匹配时,继续比较。
Boolean
输出比较文件
(可选)

包含比较结果的文本文件。

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

要比较的第一个栅格或镶嵌数据集。

Raster Layer; Mosaic Layer
in_test_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
(可选)

包含比较结果的文本文件。

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
RasterCompare_management("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.RasterCompare_management("raster_base.tif","raster_test.tif","RASTER_DATASET",\
                                   "","CONTINUE_COMPARE","compareresult.txt","","","")
    
    ##Compare two Raster Catalog with ignore options
    arcpy.RasterCompare_management("fgdb.gdb/rc_base","fgdb.gdb/rc_test","RASTER_CATALOG",\
                                   "IsManaged;Extent","CONTINUE_COMPARE","compareresult2.txt",\
                                   "","","DATE")
    
    ##Compare two Mosaic Dataset with torelance
    arcpy.RasterCompare_management("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()