PixelBlock

摘要

定义要包括在栅格处理中的像素组或像素块。PixelBlockCollection 对象由一个或多个 PixelBlock 对象组成。

说明

PixelBlock 对象可定义栅格中要用于处理的像素块。可将其与 PixelBlockCollection 对象结合使用,以遍历一个或多个要进行处理的较大栅格。

语法

PixelBlock
 (data, extent)
参数说明数据类型
data

其中包含像素块的像素值的 NumPy 数组。

如果栅格并非多维栅格,则数组的形状应为(行、列、波段)。

如果栅格是多维栅格,则数组的形状应为(剖切、行、列、波段)。

NumPyArray
extent

像素块的空间范围。

Extent

属性

属性说明数据类型
cell_size
(只读)

像素块中像素的像元大小。 这是一个包含 x 方向和 y 方向上的像元大小(x 大小、y 大小)的元组。

tuple
tlc
(只读)

像素块左上角的坐标。

Point
spatial_reference
(只读)

导出图像的空间参考。 支持的选项如下:

  • None
  • SpatialReference 数据类型
  • ICSICS:<object_id>,其中 object_id 用于选择应使用其图像坐标系的特定栅格。
如果未指定某一值,则将使用栅格数据集的空间参考。

SpatialReference

方法概述

方法说明
getData ()

返回像素块中的 NumPy 数组。

方法

getData ()
返回值
数据类型说明
NumPyArray

来自像素块的 NumPy 数组对象。

代码示例

PixelBlock 示例

遍历像素块以计算土地覆被栅格中的森林总面积。

import arcpy 

# Specify the input raster
in_raster = arcpy.Raster("landcover.tif")  

# Create a PixelBlockCollection

blockCollection = arcpy.ia.PixelBlockCollection(
	in_raster, pixel_block_size = (512, 512), nodata_to_values = -1) 
forest_cell_count = 0 

# Iterate through each PixelBlock 

try: 
    while True: 
        pixelblock = next(blockCollection) 
        np_array = pixelblock.getData() 
        forest_cell_count+= np.count_nonzero(np_array == 1) # value = 1 is forest class 
except StopIteration: 
    pass 
print ("total forest pixels : " + str(forest_cell_count))