焦点统计的工作原理
焦点统计工具可执行用于计算输出栅格数据的邻域运算,各输出像元的值是其周围指定邻域内所有输入像元值的函数。对输入数据执行的函数可得出统计数据,例如最大值、平均值或者邻域内遇到的所有值的总和。
从概念上讲,在执行过程中此算法将访问栅格中的每个像元,并且根据识别出的邻域范围计算出指定的统计数据。要计算统计数据的像元称为待处理像元。待处理像元的值以及所识别出的邻域中的所有像元值都将包含在邻域统计数据计算中。
各邻域可以重叠,因此一个邻域中的像元也可以包含在其他待处理像元的邻域中。
示例
通过下图中值为 5 的待处理像元可演示出焦点统计计算总和统计值的邻域处理过程。指定一个 3 x 3 的矩形像元邻域形状。邻域像元值的总和 (3 + 2 + 3 + 4 + 2 + 1 + 4 = 19) 与待处理像元的值 (5) 相加等于 24 (19 + 5 = 24)。因此将在输出栅格中与输入栅格中该待处理像元位置相同的位置指定值 24。
上图演示了如何对输入栅格中单个像元执行计算。而在下图中,将显示出所有输入像元的计算结果。以黄色高亮显示的是上例中所述的相同待处理像元及其邻域。
邻域的形状可以是环形(圆环)、圆形、矩形或楔形。邻域中可以计算的统计量有均值、众数、最大值、中值、最小值、少数、范围、标准差、总和以及变异度。
焦点统计工具可控制邻域类型和要计算的统计数据。
邻域类型
邻域的形状可以是环形(圆环)、圆形、矩形或楔形。通过使用核文件,也可自定义邻域形状,以及在计算统计数据之前将不同的权重分配给邻域中的各个特定像元。
以下是不同邻域形状的介绍及其定义方法:
- 环形
- 由一个较大圆及位于其中的较小圆构成的环形(圆环形)。中心落在小圆半径范围以外,但落在大圆半径范围以内的像元将包含在邻域处理范围内。
- 内半径和外半径的单位可定义为像元或地图单位。
- 圆形
- 像元中心落在圆半径范围内的任何像元均将包含在邻域处理范围内。
- 半径的单位可定义为像元或地图单位。
- 矩形
- 矩形邻域的大小由宽度和高度确定。
- 邻域内待处理像元相对于邻域左上角的 x,y 位置可通过以下方程式确定:
x = (width of the neighborhood + 1)/2 y = (height of the neighborhood + 1)/2
- 如果输入像元数为偶数,则可通过截断操作来计算 x,y 坐标。
- 例如,在 5 x 5 的像元邻域中,x 和 y 值为 3,3。而在 4 x 4 的邻域中,x 和 y 值则为 2,2。
- 宽度和高度值的单位可定义为像元或地图单位。
- 楔形
- 中心落入楔形的像元均将包含在邻域处理范围内。
- 起始角度和终止角度为介于 0 至 360 之间的整数值或浮点值。范围值从 x 轴正方向上的 0 开始(3 点钟方向)沿逆时针方向逐渐增大,直至再次归 0。
- 半径的单位可定义为像元或地图单位。起始角度和终止角度的单位为度。
- 不规则形状
- 用于在待处理像元周围指定形状不规则的邻域。
- 通过不规则形状核文件可指定应包含在邻域范围内的像元位置。
- 邻域范围内待处理像元相对于邻域左上角的 x,y 位置可通过以下方程式来确定:
x = (width + 1)/2 y = (height + 1)/2
- 如果输入像元数为偶数,则可通过截断操作来计算 x 坐标和 y 坐标。
- 对于不规则邻域的核文件:
- 不规则形状核文件属于 ASCII 文本文件,可定义不规则邻域的值和形状。
- 第一行指定了邻域的宽度和高度(表示为由空格分开的 x 轴方向上的像元数和 y 轴方向上的像元数)。
- 随后几行则指定了邻域中各个位置的值。按照与各像元在所在邻域中相同的配置输入这些像元值。各个值之间需要由空格分隔。
- 核文件中的值非 0(零)即 1(一)。任何不等于 0 的值均将视为 1。
- 某像元位置的值为 0(非空)表示该像元不属于该邻域从而无法用于邻域处理。而值为 1 则表示该值对应的像元(和像元值)属于该邻域。
- 以下示例为 ASCII 不规则形状核文件及其所代表的邻域:
- 权重
- 定义处理像元周围的形状不规则的邻域,并指定用于乘以输入栅格中像元值的权重。
- 权重核文件可指定应包含在邻域范围内的各像元位置以及将应用于这些位置的权重。
- 权重邻域仅适用于平均值、标准差 (STD) 和总和统计类型。
- 邻域范围内待处理像元相对于邻域左上角的 x,y 位置可通过以下方程式来确定:
x = (width + 1)/2 y = (height + 1)/2
- 如果输入像元数为偶数,则可通过截断操作来计算 x 坐标和 y 坐标。
- 对于加权邻域的核文件:
- 权重核文件属于 ASCII 文本文件,可定义权重邻域的值和形状。
- 第一行指定了邻域的宽度和高度(表示为由空格分开的 x 轴方向上的像元数和 y 轴方向上的像元数)。
- 随后几行则指定了邻域中各个位置的权重值。按照与各像元在所在邻域中相同的配置输入这些像元值。正值、负值和小数值均可用作权重。各个值之间需要由空格分隔。
- 对于邻域中不用于计算的位置,核文件中的相应位置将用值 0 表示。
- 以下示例为 ASCII 加权核文件及其所代表的邻域:
统计类型
可用的统计数据包括众数、最大值、平均值、中值、最小值、少数、范围、标准差和总和。默认统计类型为平均值。
- 众数
- 只有整型栅格数据可以作为输入。
- 当邻域范围内存在多个众数值时,输出中处理像元位置的值将为 NoData。
- 最大值
- 如果输入栅格值为整型,则输出栅格中的值也将为整型;如果输入栅格值为浮点型,则输出栅格中的值也将为浮点型。
- 平均值
- 输出栅格将始终为浮点型。
- 平均值统计数据适用于权重邻域类型。
- 中值
- 只有整型栅格数据可以作为输入。
- 如果邻域中有效像元值数量为奇数,则将通过排列这些值然后选择位于中间的值计算出中值。如果邻域中值的数量为偶数,则将对这些值进行排列,然后取中间两个值的平均值。
- 最小值
- 如果输入栅格值为整型,则输出栅格中的值也将为整型;如果输入栅格值为浮点型,则输出栅格中的值也将为浮点型。
- 少数
- 只有整型栅格数据可以作为输入。
- 当邻域范围内存在多个少数值时,输出中待处理像元位置的值将为 NoData。
- 范围
- 如果输入栅格值为整型,则输出栅格中的值也将为整型;如果输入栅格值为浮点型,则输出栅格中的值也将为浮点型。
- 通过应用以下这个简单的公式可逐个像元地确定输出栅格中各个像元位置上的值:焦点范围 = 焦点最大值 – 焦点最小值。
- STD
- 输出栅格将始终为浮点型。
- STD 统计数据适用于权重邻域类型。
- 总和
- 如果输入栅格值为整型,则输出栅格中的值也将为整型;如果输入栅格值为浮点型,则输出栅格中的值也将为浮点型。
- 变异度
- 只有整型栅格数据可以作为输入。
NoData 的待处理像元
在计算中忽略 NoData 选项可控制邻域窗口内 NoData 像元的处理方式。选中此选项时(DATA 选项),输出像元值的计算将会忽略邻域中的所有 NoData 像元。取消选中此选项时(NODATA 选项),如果邻域中存在任何 NoData 像元,则输出像元将为 NoData。
如果处理的像元本身就是 NoData,则在选择“忽略 NoData”选项后,将根据邻域中具有有效值的其他像元来计算像元的输出值。当然,如果邻域中的所有像元均为 NoData,则无论如何设置此参数,输出都将为 NoData。