栅格存储环境设置可用来调整默认压缩类型、金字塔创建和计算统计数据的默认设置、默认分块大小、默认重采样方法以及地理处理核心栅格工具使用的 NoData 制图方法。
地理处理扩展模块工具集(例如 3D Analyst、Geostatistical Analyst 和 Spatial Analyst)并不支持所有栅格存储设置。有关受支持环境的详细信息,请参阅各工具的帮助。
并非所有设置都适用于所有存储类型。有关详细信息,请参阅栅格存储矩阵(下表)。文件组 2 由 ERDAS IMAGINE 文件组成。其余所有 ArcGIS 支持的栅格文件格式都位于文件组 1 中。
栅格存储矩阵
存储设置 | 文件组 1 | 文件组 2 | 个人“地理数据库” | 文件地理数据库 | 企业级地理数据库 |
---|---|---|---|---|---|
金字塔 | 是 OVR 文件 | 是 RRD 类型 | 是 RRD 类型 | 是 | 是 |
| 是 | 是 | 是 | 是 | 是 |
| 是 | 是 | 是 | 是 | 是 |
| 是 | 否 | 否 | 是 | 是 |
栅格统计 | 是 | 是 | 是 | 是 | 是 |
| 是 | 是 | 是 | 是 | 是 |
| 是 | 是 | 是 | 是 | 是 |
压缩 | 是* | 是 RLE 压缩 | 是 | 是 | 是 |
| 是* | 否 | 是 | 是 | 是 |
| 是* | 否 | 是 | 是 | 是 |
| 是* | 否 | 是 | 是 | 是 |
分块大小 | 仅限于 TIFF | 否 | 否 | 是 | 是 |
金字塔
金字塔是数据集分辨率递减的表示方法。通过仅检索对于指定分辨率所必需的数据,金字塔可以加快栅格数据集的显示。默认情况下,通过对原始数据进行重采样可为栅格数据集创建金字塔。有三种重采样方法可供使用:最邻近法、双线性插值法和三次卷积插值法。
如果没有选中“构建金字塔”,将不会使用输出栅格创建金字塔。不构建金字塔可以节省存储空间,但这将导致显示速度变慢,在使用较大的栅格数据集时更是如此。
您可以选择跳过第一个金字塔等级。跳过第一个金字塔等级将会节省一点磁盘空间,但会在查看小比例时使显示变慢。或者,您可定义等级的数量,但以很大比例查看时这可能影响速度。
默认为最邻近法。该方法可用于任何栅格数据集。最邻近法用于包含色彩映射表的名目数据或栅格数据集,例如,土地利用数据、扫描地图与假彩色图像。
对于诸如卫星影像或航空摄影这样的连续数据,可使用双线性插值法或三次卷积插值法。
如果将栅格金字塔构建为概视图 (OVR),则也可以使用 LZ77 或 JPEG 压缩金字塔。如果金字塔只能构建为递减分辨率数据集,则不可使用其他压缩选项。
统计数据
统计分析选项可用于为输出栅格数据集构建统计数据。在 ArcMap 或 ArcCatalog 中执行某些任务(如应用对比度拉伸或分类数据等)时,需要对栅格数据集进行统计。如果尚未计算统计数据,也不必构建统计数据,因为会在首次需要时进行计算。然而,如果要使用某些需要统计数据的要素,建议在使用统计数据之前为栅格数据集计算统计数据。如果已经计算了统计数据,则栅格的默认显示在多数情况下都将得到改善,因为在有统计数据的情况下将应用标准差拉伸。
如果设置了“跳跃”因子,则会跳过一些像素,从而可加快统计数据的计算过程。“跳跃”因子对格网数据集不起作用。
设置为忽略的值不会参与统计数据计算。通常,您可能需要忽略背景的值。
压缩类型
任何输出为栅格数据集的工具都可以使用压缩类型设置。地理处理工具共提供九种不同的压缩方法。将栅格加载到地理数据库时支持其中的四种:LZ77、JPEG、JPEG 2000 和无。
每种像素深度的有效压缩类型
压缩 | 像素深度(8 位) | 像素深度(16 位) | 其他信息 |
---|---|---|---|
LZ77 | 可用 | 可用 | 任何像素深度 |
LERC | 可用 | 可用 | 随着像素深度的增加,压缩算法的效率也将增加 |
JPEG | 可用 | 仅限以 16 位数据形式存储的 12 位数据 | |
JPEG_YCbCr | 可用 | 不可用 | |
JPEG2000 | 可用 | 可用 | |
PackBits | 可用 | 不可用 | 1 位到 8 位数据 |
LZW | 可用 | 可用 | 任何像素深度 |
RLE | 可用 | 可用 | 任何像素深度 |
CCITT_G3 | 不可用 | 不可用 | 仅适用于 1 位数据 |
CCITT_G4 | 不可用 | 不可用 | 仅适用于 1 位数据 |
CCITT_1D | 不可用 | 不可用 | 仅适用于 1 位数据 |
LZ77(默认)是一种无损压缩。这种压缩可保留所有栅格像元值。LZ77 与 PNG 图像格式的压缩算法相同,类似于 ZIP 压缩。由于压缩后像素值不更改,所以您可以使用 LZ77 来执行视觉或算法分析。
JPEG 是有损压缩,因为其在压缩和解压后可能不会保留栅格像元值。JPEG 使用公共域 JPEG (JFIF) 压缩算法并只用于 8 位无符号栅格数据(单波段灰度数据或三波段栅格数据)。
JPEG_YCbCr 为使用亮度 (Y) 和色度(Cb 和 Cr)颜色空间组件的有损压缩。
由于 JPEG 2000 采用小波压缩技术压缩栅格,因此栅格在视觉上是无损的。这意味着尽管像元值确实经过处理,但是很难对原始栅格与压缩栅格进行分辨。对作为图片或背景影像的栅格使用 JPEG 或 JPEG 2000。
如果选择 JPEG 或 JPEG 2000,还可以通过设置压缩质量来控制压缩算法所造成的影像质量损失。一个压缩质量较高的压缩影像的像素值会接近于原始影像的像素值。JPEG 的压缩质量的有效值范围是 5 到 95。JPEG 2000 的压缩质量的有效值范围是 1 到 100。默认的压缩质量是 75。压缩量取决于数据和压缩质量。同类数据越多,压缩比就越高。压缩质量越低,压缩比越高。与无损压缩相比,有损压缩通常会产生较高的压缩比。
压缩数据的主要优点是所压缩的数据需要较小的存储空间并且会加快数据的显示,因为传输的信息较少。
分块大小
任何创建栅格数据集并以块存储数据集的工具都可以使用切片大小设置。
默认切片大小为 128 x 128,该默认值适合于大多数情况。但是,如果切片大小过大,就会在每次访问数据时调出一些不必要的数据。例如,您想要显示一个 100 x 100 的窗口,而该窗口只覆盖一个切片。如果将切片大小设置为 512,则您需要获得 512 x 512 像素的切片。如果将大小设置为 128 x 128,那么当显示窗口为 100 x 100 时,调出的额外数据会比较少。
重采样方法
重采样是在变换栅格数据集时内插像素值的过程。在以下情况使用:输入和输出排列不对应、像素大小发生变化、数据被平移或以上原因的综合。
- 最邻近 - 执行最邻近分配法,是速度最快的插值方法。此选项主要用于离散数据(如土地利用分类),因为它不会更改像元的值。最大空间误差将是像元大小的一半。
- 双线性 - 执行双线性插值并基于四个最邻近的输入像元中心的加权平均距离来确定像元的新值。这对连续数据非常有用并且会对数据进行一些平滑处理。
- 三次卷积 - 执行三次卷积插值法,可通过拟合穿过 16 个最邻近输入像元中心的平滑曲线确定像元的新值。此选项适用于连续数据,尽管所生成的输出栅格可能会包含输入栅格范围以外的值。与通过运行最邻近重采样算法获得的栅格相比,输出栅格的几何变形程度较小。“三次”选项的缺点是需要更多的处理时间。在某些情况下,此选项会使输出像元值位于输入像元值范围之外。如果无法接受此结果,请转而使用“双线性”选项。
NoData
当输入的 NoData 值需要传递到输出栅格时,可使用此环境。您可以通过该设置指定哪个值将用来指定为输出中的 NoData 值。
- NONE - 不存在任何适当的 NoData 值规则。如果您的输入和输出具有相同的值范围,将传送 NoData 且不进行任何更改。但是,如果值范围有所改变,则输出中没有针对 NoData 的值。这是默认方法。
- MAXIMUM - 输出数据范围中的最大值将用作 NoData 值。
- MINIMUM - 输出数据范围中的最小值将用作 NoData 值。
- MAP_UP - 提升范围中的最低值,且最低值将变为 NoData。如果数据无符号,零值会变为一、NoData 值将为零,其余值保持不变。如果数据有符号,则会提升范围中的最低值,且最低值将变为 NoData。例如,对于 8 位有符号的整数数据,-127 会变为 -126 且 NoData 值将为 -127。
- MAP_DOWN - NoData 值是数据范围中的最大值,数据范围中的最高值会变为一个较小的值,而其余的值保持不变。例如,对于 8 位无符号的整型数据,NoData 值将为 255,值 255 会变为 254,其余值保持不变。
- PROMOTION - 如果 NoData 值超出了输入的数据范围,则输出的像素深度可能会提升到下一个可用级别,而 NoData 会采用新数据范围内的最大值。例如,需要将值 256 作为 NoData 的 8 位无符号的整型数据集,将提升到 16 位数据集,并且最大值将变为 NoData。如果要写入到输出的 NoData 值位于输入的数据范围内,或没有任何 NoData,则不会提升像素深度。
如果 NoData 值超出输入的数据范围,像素深度会提升到下一个可用级别,且 Nodata 值会由用户指定。例如,需要 256 作为 NoData 的 8 位无符号整型数据集会提升为 16 位数据集,且 256 会变为 NoData 值。如果指定的 NoData 值位于输入数据范围内,则不会提升输出的像素深度。