Raster (arcpy)

摘要

创建一个可在 Python 脚本或地图代数表达式中使用的栅格对象。栅格对象是一个引用栅格数据集的变量。

可以通过两种方式创建栅格对象。一方面,通过提供指向磁盘上某一现有栅格数据的路径来创建栅格对象;另外任何可输出栅格的地图代数语句,其结果也可以作为栅格对象。

许可许可:

执行地图代数语句需要 ArcGIS Spatial Analyst 扩展模块

讨论

根据现有数据创建的栅格对象可用于后续的地图代数表达式中,并且将拥有所有关联的栅格属性和方法。

# out_raster is a resultant raster object
out_raster = Raster("c:/data/inraster")

任何在等号左侧生成输出栅格的 Spatial Analyst 工具或运算符(请参阅使用运算符)均可创建栅格对象。例如,在以下表达式中,out_raster 是一个栅格对象。

out_raster = Slope("inelevation")

默认情况下,通过地图代数表达式返回的栅格对象(变量和相关数据集)是临时对象。

通过以下方法,可将与栅格对象关联的临时数据集转变为永久数据集:

  1. 通过调用栅格对象的 save 方法。
  2. 通过在 TOC 中右键单击包含相关栅格对象的图层并指定输出名称来调用使永久化
  3. 通过保存包含相关栅格对象的所有图层的地图投影文件(.MXD、.3DD 等)。

    对于第 3 种情况,栅格对象所引用的数据集将以默认名称自动永久保存到磁盘中。

如果未通过以上三种方式对引用的栅格做永久化处理,则当变量超出范围时(如独立脚本完成或 ArcGIS 关闭时),将删除该变量和引用的栅格数据集。当栅格对象引用磁盘上的永久数据时,则不会删除该数据。

某些运算符同时存在于地图代数和 Python 中。如果要使用运算符处理栅格数据(而非标量),则必须通过调用栅格类的构造函数将输入栅格转换为栅格对象:Raster("inRaster").

# The Spatial Analyst plus operator is used on the input rasters creating
# an output raster object
out_raster = Raster("input1") + Raster("input2") 
																																												
# The Python plus operator is used on numbers creating a scalar variable
out_var = 4 + 7 

# When there is a mix of rasters with numbers the Spatial Analyst
# operator is used creating an output raster object
out_raster = Raster("input") + 10

某些与栅格对象关联的属性只有在引用的栅格数据集为永久数据集时才可用。当引用的栅格数据集为临时数据集时,这些属性的值为 None。涉及的属性有 catalogPathcompressionTypeformathasRATnamepath

将引用的栅格数据集设置成永久数据集后,它将无法返回到临时状态。

语法

Raster (inRaster)
参数说明数据类型
inRaster

The input raster dataset.

Raster

属性

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

The number of bands in the referenced raster dataset.

Integer
catalogPath
(只读)

The full path and the name of the referenced raster dataset.

String
compressionType
(只读)

The compression type. The following are the available types:

  • LZ77
  • JPEG
  • JPEG 2000
  • PACKBITS
  • LZW
  • RLE
  • CCITT GROUP 3
  • CCITT GROUP 4
  • CCITT (1D)
  • None

String
extent
(只读)

The extent of the referenced raster dataset.

Extent
format
(只读)

The raster format

  • BIL—Esri Band Interleaved by Line file
  • BIP—Esri Band Interleaved by Pixel file
  • BMP—Bitmap graphic raster dataset format
  • BSQ—Esri Band Sequential file
  • DAT—ENVI DAT file
  • GIF—Graphic Interchange Format for raster datasets
  • Grid—Esri Grid raster dataset format
  • IMAGINE Image—ERDAS IMAGINE raster data format
  • JP2000—JPEG 2000 raster dataset format
  • JPEG—Joint Photographic Experts Group raster dataset format
  • PNG—Portable Network Graphic raster dataset format
  • TIFF—Tag Image File Format for raster datasets

String
hasRAT
(读写)

Identifies if there is an associated attribute table: True if an attribute table exists or False if no attribute table exists.

Boolean
height
(只读)

The number of rows.

Integer
isInteger
(只读)

The integer state: True if the raster dataset has integer type.

Boolean
isTemporary
(只读)

The state of the referenced raster dataset: True if the raster dataset is temporary or False if permanent.

Boolean
maximum
(只读)

The maximum value in the referenced raster dataset.

Double
mean
(只读)

The mean value in the referenced raster dataset.

Double
meanCellHeight
(只读)

The cell size in the y direction.

Double
meanCellWidth
(只读)

The cell size in the x direction.

Double
minimum
(只读)

The minimum value in the referenced raster dataset.

Double
name
(只读)

The name of the referenced raster dataset.

String
noDataValue
(只读)

The NoData value of the referenced raster dataset.

Double
path
(只读)

The full path and name of the referenced raster dataset.

String
pixelType
(只读)

The pixel type of the referenced raster dataset. The types are

  • U1—1 bit
  • U2—2 bits
  • U4—4 bits
  • U8—Unsigned 8 bit integers
  • S8—8 bit integers
  • U16—Unsigned 16 bit integers
  • S16—16 bit integers
  • U32—Unsigned 32 bit integers
  • S32—32 bit integers
  • F32—Single precision floating point
  • F64—Double precision floating point

String
spatialReference
(只读)

The spatial reference of the referenced raster dataset.

SpatialReference
standardDeviation
(只读)

The standard deviation of the values in the referenced raster dataset.

Double
uncompressedSize
(只读)

The size of the referenced raster dataset on disk.

Double
width
(只读)

The number of columns.

Integer

方法概述

方法说明
save ({name})

Permanently saves the dataset the raster object references.

方法

save ({name})
参数说明数据类型
name

The name to assign to the raster dataset on disk.

String

代码实例

栅格示例 1

根据栅格数据集创建栅格对象并获取分析属性。

import arcpy

my_raster = arcpy.Raster('elevation')
my_min = my_raster.minimum
my_max = my_raster.maximum
my_area = (my_raster.width * my_raster.height) * my_raster.meanCellWidth
栅格示例 2

创建栅格对象、获取属性、创建随机误差栅格(+/- 3 英尺)、将随机误差栅格添加到高程栅格中并将其单位从英尺转换成米。

import arcpy
from arcpy.sa import *

elev_raster = Raster('c:/data/elevation')
my_extent = elev_raster.extent
my_cellsize = (elev_raster.meanCellHeight + elev_raster.meanCellWidth) / 2
res01 = arcpy.CreateRandomRaster_management("", "error3", "UNIFORM 0.0 3.0",
                                            my_extent, my_cellsize)
elev_meters = (elev_raster + Raster(res01)) * 0.3048
elev_meters.save("c:/output/fgdb.gdb/elevM_err")
5/10/2014