arcgis如何将16bit栅格数据转换为8bit栅格数据
- 1、什么是位深度
- 2、栅格数据集中的 NoData
- 什么是nodata
- 存储 NoData
- 定义 NoData
- 3、色彩映射表
- 4、复制栅格(copy raster)
- 查看栅格数据属性(source)
- Scale Pixel Value
- colormap_to_RGB(可选)
- RGB_to_Colormap(可选)
本篇主要介绍如何转换位深度然后什么是nodata,然后介绍栅格数据储存中,像元的位深度8bit和16bit的区别,以及什么是nodata数据;
理解完这些,我们接下来看看如何将转换16bit数据,变为8bit数据;
1、什么是位深度
像元的位深度(像素深度)决定着特定栅格文件可以存储的值的范围,该范围可根据公式
例如,一个 8 位的栅格可以具有 256 个不同的值(范围从 0 至 255)。
下表显示了针对不同位深度所存储的值的范围:
按像素深度划分的值范围:白话篇,就是栅格数据每个像元所能存储的像元值的范围是多少,也即是上表。
注:存在实际位深度与栅格属性 窗口中的位深度属性不匹配的例外情况。尽管 Esri GRID 栅格始终按 32 位深度进行存储(存储为有或无符号的整数或浮点数),但 ArcGIS 将根据栅格包含的像元值范围按照最为适当的位深度显示位深度属性。
Esri 的产品包含了栅格数据集中所有未知值的标识。未知值是 NoData。在系统内部,实际值必须用于存储 NoData 像元。因此,在向已具有全位范围的栅格(这意味着,在栅格范围内至少有一个像元占有位范围中的所有值,例如,将 0 至 255 都表示出来时)添加 NoData 时,将进入下一个更高的位深度。
例如,某个山体阴影格网的像元值为 0 至 255(即在 8 位范围内),如果该格网中还包含一些 NoData 像元,则该格网的位深度将以 16 位无符号的形式表示。
2、栅格数据集中的 NoData
什么是nodata
栅格中的每个像元位置均包含指定值。如果某像元所表示的位置不存在任何特征信息或特征信息不充足,则会为该像元分配一个 NoData 值。请注意,NoData 与 0 不同,因为 0 是有效值。
像元值可正可负,可以是整型也可以是浮点型。像元中还可以使用 NoData 值来表示数据缺失。有时,栅格数据集中会包含一些您不想显示的均匀区域。这些区域包括边框、背景或其他被认为没有有效值的数据。尽管有时这些数据可能具有实数值,但其他时候会将其表示为 NoData 值。
显示具有 NoData 值的栅格时,所有渲染器可将 NoData 值设置为某个颜色或无颜色;然而,“拉伸”渲染器可识别特定背景值并显示颜色或无颜色。
计算栅格数据集的统计数据时,可选择忽略任何包含 NoData 的像元。
在对包含 NoData 值的栅格数据执行操作时,为每个像元处理 NoData 的方法通常有三种:
无论其本身是什么,都为该位置返回 NoData
忽略 NoData,而使用任何可用的值来计算结果值
必须估计一个值,且不能返回 NoData
存储 NoData
NoData 被作为栅格数据集中的掩码进行存储,或者使用数据集中在其他位置出不会作为有效值的像素值进行存储。例如,-9999 是用于存储 NoData 的共同值。
在 ArcSDE 和文件地理数据库中,如果原始栅格数据包含 NoData 像元,则会在加载栅格时生成位掩码,并将其存储于数据库中。系统会读取位掩码,并在检索时提取 NoData 区域。
在向已具有全位范围且基于文件的栅格(这意味着,在栅格范围内至少有一个像元表示位范围中的所有值,例如,0 至 255)添加 NoData 时,将进入下一个更高的位深度。例如,某个山体阴影格网的像元值为 0 至 255,则在向该格网添加 NoData 时,它将以 16 位无符号的形式表示,以便存储没有用于表示有效值的值(例如 256)。下表列出了数据类型提升的规则:
定义 NoData
将栅格数据集中的像元值分配给 NoData 的方法共有两种,即使用设为空函数工具或通过栅格数据集的“属性”对话框。还可使用栅格数据集的“属性”对话框移除 NoData 值。
还可使用“定义镶嵌数据集 NoData”工具为镶嵌数据集指定 NoData 值。此工具允许指定多个 NoData 值。
3、色彩映射表
色彩映射表是与颜色关联的一组值。色彩映射表用于确保始终使用相同颜色显示单波段栅格。每个像素值与一个颜色关联,定义为一组红绿蓝 (RGB) 值。由于每个值都有确定的颜色与之相关联,所以每次在能够读取带有色彩映射表的栅格的程序中打开栅格时,始终按相同形式显示栅格。
色彩映射表可支持任何位深度(浮点型除外)。色彩映射表还可支持正值和负值,并且其中可以包含缺失的色彩映射值。显示带有包含缺失值的色彩映射表的数据集时,具有该值的像素将不会显示。
默认情况下,带有色彩映射表的栅格数据集始终使用关联的色彩映射表进行显示。
如果要更改栅格数据集的外观,可在“色彩映射表”渲染器面板(可通过栅格数据集的图层属性 对话框的符号系统选项卡访问)中更改颜色或色彩映射表文件,或使用“唯一值”渲染器更改颜色。
要了解有关不同类型的渲染器的详细信息,请参阅用于显示栅格数据的渲染器。
要查看栅格数据集是否有与其关联的色彩映射表,最简单的方法是打开“栅格数据集属性”(ArcCatalog 中)或“图层属性”(ArcMap 中);如果有色彩映射表与栅格数据集关联,则会在源选项卡上显示色彩映射表属性。
色彩映射表可通过不同方式与栅格数据集关联,具体取决于栅格格式。一些栅格格式(如 .bil、.bip 或 .bsq)将色彩映射表信息存储在栅格旁边的辅助文件中。另一些格式(如 .img、.tif 或 ArcSDE)在栅格数据集内部存储色彩映射表信息。
使用地理处理工具,可以复制或删除栅格数据集的色彩映射表。添加色彩映射表工具用于将色彩映射方案从已进行色彩映射的现有栅格数据集、.clr 文件或 .act 文件复制到另一个栅格数据集。
删除色彩映射表工具用于从现有栅格数据集中删除色彩映射表。不是所有栅格格式都适用于这两个地理处理工具;要了解哪些格式支持色彩映射表,请参阅受支持的栅格数据集文件格式。
某些应用程序以特有方式编写内部色彩映射表,ArcGIS 无法对其进行更改。某些 IMG 或 TIFF 文件可能会出现这种情况。因此,“删除色彩映射表”工具将无法删除这些文件的色彩映射表。
包含“红色”、“绿色”和“蓝色”字段的栅格属性表不是有效的色彩映射表,因此无法使用“删除色彩映射表”工具删除。
4、复制栅格(copy raster)
查看栅格数据属性(source)
查看栅格数据的位深度以及数据类型和nodata值;
栅格数据上右键属性打开source。
工具位置:
数据管理工具箱—>栅格工具集–>栅格数据集工具集–>复制栅格
刚打开工具是这样的:
那么我们只需要输入我们需要转换的栅格类型,以及需要转换的位深度即可;
当然这个转换的影像的是16bit,我们从上面知道其值范围是 取值范围为 0 到 65,535,那么我们看到默认的nodata是65536,也就是比我们像元值的多了一个下一个位深度。
这个位置,我们可以进行修改,也可以不用管它。
Scale Pixel Value
注:为什么要勾选Scale Pixel Value:
当输出的像素类型不同于输入像素类型时(如从 16 位到 8 位),可选择将值缩放到符合新的范围;否则,会丢弃不符合新的像素范围的值。
如果进行放大(如从 8 位到 16 位),8 位值的最小值和最大值会放大到 16 位范围中的最小值和最大值。如果进行缩小(如从 16 位到 8 位),16 位值的最小值和最大值会缩小到 8 位范围中的最小值和最大值。
NONE —像素值保持不变且不会缩放。任何不符合值范围的值都会被丢弃。这是默认设置。
ScalePixelValue —像素值会缩放到新的像素类型。缩放像素深度时,栅格会显示相同的位深度,而值却缩放到指定的新的位深度。
colormap_to_RGB(可选)
如果输入栅格数据集具有色彩映射表,则可将输出栅格数据集转换为三波段输出栅格数据集。这在镶嵌包含不同色彩映射表的栅格时很有用。
NONE —不发生任何转换。这是默认设置。
ColormapToRGB —将转换输入数据集。
RGB_to_Colormap(可选)
将 8 位 3 波段 (RGB) 栅格数据集转换为带色彩映射表的单波段栅格数据集。此操作会抑制经常出现在扫描图像中的噪声,这非常适用于屏幕捕获、扫描的地图或扫描的文档。但并不建议将其用于卫星、航空影像或专题栅格数据。
NONE —不转换 RGB
RGBToColormap —转换为色彩映射表
右键属性查看转换完成的栅格的属性和位深度为: