PixelBlock

此 ArcGIS 3.1 文档已 存档,并且不再对其进行更新。 其中的内容和链接可能已过期。 请参阅最新文档

摘要

定义要包括在栅格处理中的像素组或像素块。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))