Esri Grid 格式

Esri Grid 用于存储将地理空间定义为以行和列排列的一组大小相同的方形像素(亦称为像元)的栅格数据的 Esri 数据格式。 共有两种类型的格网,具体取决于数据类型:整型和浮点型。

整型格网的属性在值属性表 (VAT) 中存储。 VAT 包含对应格网中的每个唯一值的记录。 记录用于存储唯一值和像素数。 VALUE 是一个整数,表示特定分类或像素分组。 COUNT 是像素数,表示格网中的值。 例如,如果 50 个像素的值为 1(表示森林),则对于 50 个像素中的每一个,VAT 将显示 VALUE = 1,COUNT = 50。

了解有关栅格数据集属性表的详细信息

格网 VAT 的示例

浮点型格网没有 VAT,因为格网中的像素可以采用给定值范围内的任意值。 此类型格网中的像素不会恰好位于离散类别中。 像素值本身指描述位置的属性。 例如,在表示海平面上方高程数据(以米为单位)的格网中,值为 10.1662 的像素表示该位置大约高出海平面 10 米。

可以存储为格网值的数据值范围如下所示:

  • 浮点型格网可以存储介于 -3.4 x 1038 和 3.4 x 1038 之间的值。
  • 整型格网可以存储介于 -2147483648 和 2147483647(-231 到 231-1)之间的值。

对于整型格网,此信息仅适用于 VALUE 项目。 可能已向整型格网的 VAT 添加其他项目,其值范围取决于项目定义。

格网坐标系与其他地理数据的坐标系相同。 行数和列数与坐标系的 x 和 y 轴相对应。 格网内的每个像素与其他像素的维度相同,可根据像素的行和列确定任意像素的位置和覆盖面积。 因此,格网的坐标系由像素大小、行数和列数以及左上角的 x,y 坐标共同定义。 格网还会携带附加信息,例如与格网相关的坐标系。

警告:

与大多数格式一样,格网名称不应包含空格或任何其他特殊字符。 多波段格网的文件名长度不能超过 9 个字符,单波段栅格数据集的文件名长度不能超过 13 个字符。

格网数据结构

格网使用切片栅格数据结构实施,其中数据存储的基本单位为矩形像素数据块。 数据块以压缩形式存储在磁盘中,并且采用可变长文件结构(称为切片)。 每个数据块将存储为一个可变长记录。

格网切片大小取决于创建时格网的行数和列数。 切片大小的上限由应用程序设置,上限为 4,000,000 x 4,000,000 像素。 因此,用于 GIS 应用程序的大多数格网将自动存储在单一切片中。 如果格网在创建时的大小大于切片大小上限,则格网的空间数据将自动跨多个切片分割。

格网的分块存储组织支持对大型栅格数据集进行连续和随机空间访问。 分块结构不会对格网的联合分析施加任何限制。 来自不同格网的切片和数据块无需在地图空间中重合即可进行联合分析,您可以像均匀的方形像素无缝栅格一样创建和操控格网。

格网使用在数据块级别下自适应的游程栅格压缩方案。 将对每个数据块进行测试,以确定要用于数据块的长度(每个像素的位数),并确定哪个存储方法(像素 x 像素或游程编码)更高效。 数据块将以所需磁盘空间更少的格式存储。 建议选择自适应压缩方案,因为该方案可以高效表示同类数据和异类连续数据,同时支持使用两种类型数据的联合分析。 单一图层按像素操作(例如数据重分类)直接作用于数据过程,不会进行解压缩。 对压缩输入图层进行的多图层按像素操作会与不同图层的数据过程相交,并作用于相交的过程。 单图层按邻域操作以及混合压缩和未压缩数据的多图层按像素操作会将处理级别扩展到像素,并以透明的方式执行传统的逐像素处理。

格网切片块结构

格网的切片块结构同样对访问格网中的空间数据的所有应用程序透明。 操控格网的程序会通过设置以地图坐标定义的矩形窗口访问空间数据。

格网数据存储

格网存储在工作空间中。 格网将作为具有相关表和文件的单独目录存储,这些表和文件中包含有关格网的具体信息。 在整型格网工作空间中,可以找到以下表和文件:

  • BND 表,用于存储格网的边界
  • HDR 文件,用于存储描述格网的具体信息,例如像素分辨率和分块系数
  • STA 表,包含格网的统计数据
  • VAT 表,用于存储与格网区域有关的属性数据
  • 日志文件,用于监控格网上发生的活动
  • 切片文件 w001001.adf (q0x1y1),用于存储像素数据,以及随附的索引文件 w001001x.adf (q0x1y1x),用于索引切片和日志文件中的数据块

格网

如果更改了格网,则文件和表中包含的值和信息将立即更新。

BND 表

格网 BND 包含格网的边界。 边界是一个包含格网像素的矩形;它以地图坐标进行存储。 所有格网 BND 均采用双精度形式存储。

BND 表中的最小值坐标对应格网中左下方像素的左下角。 最大值坐标对应格网中右上方像素的右上角坐标。

HDR 文件

HDR 为二进制文件。 文件中存储的信息包括像素大小、格网类型(整型或浮点型)、压缩方法、分块系数和切片信息。

STA 文件

STA 表包含有关格网的统计数据。 格网的最小值、最大值、平均值和标准差将作为浮点值存储在 STA 表中。 您不应尝试直接更改这些值。

由于 NoData 表示未知值,因此 NoData 不会用于计算 STA 表中的统计数据。

创建双层格网(仅包含 0 和 1 值)时,STA 表将包含 0(平均值)和 -1(标准差)。 标准差值 - 1 表示尚未计算格网的统计数据。

标准差值 -2 表示格网仅包含 NoData 像素。

VAT 表

VAT 表用于存储与格网区域相关的属性。 只有整型格网具有与其关联的 VAT。 每个 VAT 至少包含两个项目,即 VALUECOUNTVALUE 项目包含整数值,用于区分格网中一个位置与其他位置的特征。 赋予同一值的所有像素都包含相同的特征,因此属于同一区域。 COUNT 指区域中的像素数。

可以将新项目添加至 VAT。 VALUECOUNT 项目不应更改,VAT 必须根据 VALUE 项目保持排序。

注:

不要在 VALUECOUNT 之前添加新项目。

包含 NoData 的像素不会在 VAT 中表示。

下面是 VAT 的示例:

Record	 VALUE     COUNT
 1        0       628872
 2        1       265043
 3        2       151150
 4        3      3185652
 5        4        79983
 6        5         4782
 7        6        74334
 8        7         8877
 9        8         1817
 10       9          491
 11      10          858
 12      11         8770
 13      12        28789
 14      13        72539
 15      14         3686
 16      15         3932
 17      16        13227
 18      17         1890
 19      18         1305
 20      19       427286
 21      20         6695

切片文件

w001001.adf (q0x1y1) 和 w001001x.adf (q0x1y1x) 文件用于存储格网中第一个或基础切片的数据和索引。 切片大小的上限较大,大多数格网使用单一切片进行存储。 如果使用了其他切片,则这些切片会根据其与第一个切片的空间关系自动进行编号。 切片将作为可变长二进制文件实施。

日志文件

日志文件是一个 ASCII 文件,包含有关创建和更改格网的信息。 日志会监控对格网执行的操作,但是不会包含对格网执行的所有操作。 执行所有格网操作时都会生成新格网,因此只有重命名复制等格网命令可以更改现有格网并输入到日志文件中。 可以像所有 ASCII 文件一样,通过系统命令或任意文本编辑器访问日志文件。

存储限制

格网名称限制如下:

  • 该名称不能使用空格或特殊字符存储。
  • 不能以数字开头。
  • 长度不能超过 13 个字符(对于多波段格网,最多允许 9 个字符)。

对于 coverage 和格网,可以在目录中存储的文件数有限。 该总数大约为 10,000。 因此,这将限制可在工作空间中存储的格网数。 例如,下面列出了可以在单一工作空间目录中存储的格网数据集数量的理论最大值:

  • 少于 5,000 个浮点型格网,或
  • 少于 3,333 个具有 VAT 的整型格网(如果无 VAT,则少于 5,000),或
  • 少于 10,000 个格网堆栈

上述数字为理论最大值。 如果您具有创建临时格网(和工作空间中的文件)的过程,则上述数字可能更小。 此外,如果您要存储混合文件(例如格网和 coverage),则存储的文件会更少。

这些数字与格网文件夹中存储工作空间中的信息的文件数有关。 最大值为 9,999,但是这不是工作空间中的总文件数,而是指向工作空间中的文件的文件数。 对于每个格网,格网文件夹中存在两个指向工作空间中的文件的文件:BND(边界)文件和 STA 表(统计数据)文件 (9999/2≈5000)。 当格网具有 VAT 时,这还将指向工作空间中的文件,因此可以存储的数目再次减少 (9999/3≈3333)。 格网堆栈只有一个文件,该文件指向工作空间 (9999/1≈9999)。

堆叠

堆栈包含有序的空间重叠格网(图层)集,在多元分析中视为单一实体。 聚类分析、分类和主成分分析均可作用于堆栈中的图层。

格网堆栈

堆栈具有以下特征:

  • 每个图层对应一个格网的图层集
  • 地图范围或 BND
  • 像素大小
  • 数据类型
  • 投影

堆栈中指定的每个图层都具有一个索引编号,表示其在堆栈中的顺序。 组成堆栈的格网必须在同一工作空间中。

输入图层的边界可能完全重叠、部分重叠或不重叠,但是堆栈中仅包含图层重叠的区域。 堆栈的 BND 为其图层边界的相交位置。 将对重叠区域进行多元统计分析函数计算。 如果输入图层之间没有公共区域,则堆栈为空并且不会进行计算。

将进行计算的堆栈位置示例

堆栈的像素大小默认为堆栈中的最粗糙图层。

可以在堆栈中组合任意数量的输入格网数据类型(实型或整形);但是在应用多元方法之前,应了解值表示的内容、是分类还是连续数据以及值的范围或相对范围。 在某些分析中,堆栈的输入数据类型决定了输出的数据类型。

与输入格网有关的投影信息将存储在堆栈中。 由于堆栈视为单一实体,因此堆栈中的所有格网必须在同一投影中。 投影信息用于确保堆栈的每个格网占据相同的地理面积。

存储格网堆栈

堆栈存储在类似于格网的目录结构中。 堆栈目录中存在两个文件:外部表和 ASCII PRJ 文件。 组成堆栈的实际格网不会存储在堆栈中。 它们是工作空间中的普通格网。 这意味着可以将任意格网用于多个堆栈。 STK 表存储组成堆栈的格网的名称及其对应的索引值:

GRID: LIST JER135.STK
Record  INDEX   GRID
  1       1     jer1
  2       2     jer3
  3       3     jer5

INDEX 项目提供格网在堆栈中的位置,而 GRID 项目列出组成堆栈的格网的名称。 输入格网的空间数据不会在堆栈中重复。 因此,堆栈始终反映最新版本的输入格网。 STK 可以像任何其他 INFO 文件一样进行访问。 可以添加项目以进行说明,例如用于存储数据采集日期的项目,但是不要更改 INDEX 项目中的值或 GRID 项目中的名称。 对这些项目进行的所有操作应仅使用格网中提供的不同堆栈管理命令执行。

PRJ 文件(如果存储)存储堆栈的投影信息:

Projection STATEPLANE 
Zone     4701 
Datum    NAD27 
Zunits   NO 
Units    FEET 
Spheroid CLARKE1866 
Xshift   0.0000000000 
Yshift   0.0000000000 
Parameters

如果堆栈中所有输入格网的投影未知,则不会创建 PRJ 文件。

格网堆栈的名称不能包含空格,不能以数字开头,并且长度不能超过 9 个字符。

格网中的 NoData

已向格网中的所有像素赋值;但是,可以向表示该主题的格网上无实际值的像素赋值 NoData。 NoData 和 0(零)不同;0 为有效值。 为此,NoData 像素不能用于计算格网 STA 表中的统计数据。