ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

Raster

  • 摘要
  • 说明
  • 语法
  • 属性
  • 方法概述
  • 方法
  • 代码示例

摘要

创建一个可在 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。涉及的属性有 catalogPath、compressionType、format、hasRAT、name 和 path。

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

语法

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

输入栅格数据集。

Raster

属性

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

参考栅格数据集中的波段数。

Integer
catalogPath
(只读)

参考栅格数据集的完整路径和名称。

String
compressionType
(只读)

压缩类型。以下是可用的类型:

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

String
extent
(只读)

参考栅格数据集的范围。

Extent
format
(只读)

栅格格式

  • BIL - Esri 波段按行交叉格式文件
  • BIP - Esri 波段按像元交叉格式文件
  • BMP - 位图图形栅格数据集格式
  • BSQ - Esri 波段顺序格式文件
  • DAT - ENVI DAT 文件
  • GIF - 栅格数据集的图形交换格式
  • Grid - Esri Grid 栅格数据集格式
  • IMAGINE 图像 - ERDAS IMAGINE 栅格数据格式
  • JP2000 - JPEG 2000 栅格数据集格式
  • JPEG - 联合图像专家组栅格数据集格式
  • PNG - 可移植网络图形栅格数据集格式
  • TIFF - 栅格数据集的标记图像文件格式

String
hasRAT
(可读写)

识别是否存在相关的属性表:如果存在则为真,如果不存在则为假。

Boolean
height
(只读)

行数。

Integer
isInteger
(只读)

整型状态:当栅格数据集具有整型时为真。

Boolean
isTemporary
(只读)

参考栅格数据集状态:当栅格数据集为临时数据集时为真,当栅格数据集为永久数据集时为假。

Boolean
maximum
(只读)

参考栅格数据集中的最大值。

Double
mean
(只读)

参考栅格数据集中的平均值。

Double
meanCellHeight
(只读)

y 方向上的像元大小。

Double
meanCellWidth
(只读)

x 方向上的像元大小。

Double
minimum
(只读)

参考栅格数据集中的最小值。

Double
name
(只读)

参考栅格数据集的名称。

String
noDataValue
(只读)

参考栅格数据集中的 NoData 值。

Double
path
(只读)

参考栅格数据集的完整路径和名称。

String
pixelType
(只读)

参考栅格数据集的像素类型。类型如下

  • U1 - 1 位
  • U2 - 2 位
  • U4 - 4 位
  • U8 - 无符号 8 位整数
  • S8 - 8 位整数
  • U16 - 无符号 16 位整数
  • S16 - 16 位整数
  • U32 - 无符号 32 位整数
  • S32 - 32 位整数
  • F32 - 单精度浮点
  • F64 - 双精度浮点

String
spatialReference
(只读)

参考栅格数据集的空间参考。

SpatialReference
standardDeviation
(只读)

参考栅格数据集中值的标准偏差。

Double
uncompressedSize
(只读)

磁盘上参考栅格数据集的大小。

Double
width
(只读)

列数。

Integer

方法概述

方法说明
save ({name})

永久保存栅格对象引用的数据集。

方法

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

分配给磁盘上的栅格数据集的名称。

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")

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明