栅格数据
数据介绍
栅格数据(Raster Data)*是地理信息系统(GIS)中用来表示空间连续或离散现象的一种空间数据模型。它将空间域(即地理区域)划分为一组具有*规则拓扑关系的二维矩形单元格(像元,cell或pixel)。每个单元格以唯一的坐标位置为索引,并存储一个或多个属性值,用以描述该单元格所覆盖空间的特征或现象状态。栅格数据是**离散覆盖(Discrete Coverage)或连续覆盖(Continuous Coverage)**的一种实现形式,其数学上可视为定义在离散网格上的空间变量的采样。每个像元的空间定位通过空间参考系统(坐标系与投影)和栅格几何(原点位置、分辨率、行列索引)共同确定,从而支持空间分析与地图可视化。
栅格数据具有下列严格要素:
- 空间域(Domain Extent)
- 表示栅格覆盖的地理区域,通常以最小矩形(Bounding Box)定义。
- 栅格几何(Grid Geometry)
- 原点(Origin):定义栅格起始位置(通常是左上角或左下角的坐标)。
- 分辨率(Resolution or Cell Size):每个像元在X、Y方向的地面尺寸。
- 行列数(Rows × Columns):矩阵维度。
- 像元编号(Grid Indexing):行列号用于唯一定位每个像元。
- 空间参考系统(Spatial Reference System, SRS)
- 定义栅格数据在地理坐标系或投影坐标系中的地理位置。
- 属性值(Range Values)
- 存储于每个像元的值,可为:
- 实数型(如高程、温度)
- 整数型(如分类代码)
- 多波段(如遥感影像的多个光谱波段)
- 存储于每个像元的值,可为:
- 空值定义(NoData Value)
- 用于指示无效或缺测数据的像元值。
- 元数据(Metadata)
- 描述数据来源、生成方法、采样精度、处理历史等
数据特征
- 在栅格数据集中,每个像元(也称为像素)都有一个值。此像元值表示的是栅格数据集所描绘的现象,如类别、量级、高度或光谱值等。而其中的类别则可以是草地、森林或道路等土地利用类。量级可以表示重力、噪声污染或降雨百分比。高度(距离)则可表示平均海平面以上的表面高程,可以用来派生出坡度、坡向和流域属性。光谱值可在卫星影像和航空摄影中表示光反射系数和颜色。
- 像元值可正可负,可以是整型也可以是浮点型。整数值适合表示类别(离散)数据;浮点值则适合表示连续表面。在单元中,还可以使用 NoData 值来表示数据缺失。
- 各像元所表示区域(或表面)的高和宽都相等,而且在栅格表示的整个表面上占据相等的部分。例如,表示高程的一个栅格(即,数字高程模型)可能会覆盖 100 平方千米的区域。如果该栅格中有 100 个像元,则每个像元都将表示等高等宽的 1 平方千米(即,1 km x 1 km)。
- 像元的尺寸可大可小,具体可根据栅格数据集所描述的表面,以及表面中要素的表达需要来确定。它可以是平方千米、平方英尺,甚至是平方厘米。像元的大小决定着栅格中图案或要素呈现的粗细程度。像元大小越小,则栅格将越平滑或越详细。但是像元数量越多,所需的处理时间会越长,占据的存储空间也越大。如果像元大小过大,则可能会出现信息丢失或精细的图样变得模糊的情况。例如,如果像元大小超过道路的宽度,则栅格数据集中便不存在该道路。下图显示如何使用不同像元大小的栅格数据集来表示简单的面要素。
栅格数据支持的数据类型
数据类型 | 说明 | 数值范围 |
---|---|---|
Byte | 8位无符号 | 0 ~ 255 |
Int8 | 8位有符号 | -128 ~ 127 |
UInt16 | 16位无符号 | 0 ~ 65,535 |
Int16 | 16位有符号 | -32,768 ~ 32,767 |
UInt32 | 32位无符号 | 0 ~ 4,294,967,295 |
Int32 | 32位有符号 | -2,147,483,648 ~ 2,147,483,647 |
Float32 | 32位浮点 | 支持小数 |
Float64 | 64位浮点 | 支持小数 |
栅格数据坐标系
栅格数据中的坐标系是指用来定位和描述栅格数据中每个像素或单元的坐标系统。在地理信息系统 (GIS) 中,栅格数据通常用于表示地表上的各种现象,如地形、土地覆盖类型、气候等。这些数据以网格或栅格的形式组织,每个栅格单元都有一个特定的位置和值。
以下是栅格数据中常见的两种坐标系统:
- 像素坐标系:
- 在最简单的栅格数据中,坐标系可能只是简单的像素坐标系。这种情况下,每个像素都用其在栅格图像中的行号和列号来表示,通常从左上角开始,第一个像素的坐标为 (0,0)。
- 这种坐标系统不考虑地理空间中的位置,只是简单地将栅格图像分割成固定大小的像素单元。这种坐标系统适用于一些简单的图像处理任务,但无法提供地理空间上的位置信息。
- 地理坐标系:
- 许多栅格数据都基于地理坐标系,这意味着每个栅格单元都与地球表面上的实际位置相对应。
- 地理坐标系使用地理经度和纬度或投影坐标来描述地球表面上的位置。经度表示东西方向的位置,纬度表示南北方向的位置。
- 坐标系通常由一个参考点(如原点)和一个单位(如度或米)来定义。在平面投影中,这个参考点可以是地图投影的中心点,而单位可以是米或其他距离单位。
- 栅格数据中的每个像素或单元都会与地理坐标系中的一个特定位置相关联。例如,一个栅格图像中的像素可能与地图上的一个经纬度坐标相对应。
数据存储
栅格数据是以栅格或网格的形式组织的数据,通常用于表示地理空间上的各种现象,如地形、土地覆盖、气候等。栅格数据的数据格式描述了数据存储在计算机中的方式,包括数据的结构、存储方式、元数据等信息。
下面描述常见的数据格式。
GeoTIFF
GeoTIFF 是一种基于 TIFF (Tagged Image File Format) 格式的地理信息系统 (GIS) 栅格数据格式。它允许将地理空间信息与标准的图像数据结合起来存储。GeoTIFF 格式支持多种投影和地理坐标系,并且可以包含地理元数据,如地理范围、分辨率、坐标系信息等。
由于其广泛的支持和灵活性,GeoTIFF 是许多 GIS 软件和工具中最常用的栅格数据格式之一。
GeoTIFF 的主要特点
- 兼容所有TIFF工具和库
- 在TIFF文件头中直接嵌入坐标和投影信息
- 支持多波段、多分辨率栅格数据,可用于存储:
遥感影像(卫星、航片)
数字高程模型(DEM
)热红外影像
等 - 被 GDAL、QGIS、ArcGIS、ERDAS 等几乎所有GIS软件支持
GeoTIFF 的核心内容
GeoTIFF通过TIFF标签和扩展标记来存储地理信息。
-
坐标参考信息
-
地理坐标系 (经纬度,WGS84等)
-
投影坐标系 (UTM、高斯克吕格等)
-
EPSG 代码 (SpatialRefSys)
-
- 空间定位信息
通过两个关键部分记录影像定位:
- A. 仿射变换(Affine Transformation)
用6个参数描述像素 → 地理坐标的转换:
Xgeo = GT0 + GT1 * i + GT2 * j
Ygeo = GT3 + GT4 * i + GT5 * j
-
GT0, GT3
:左上角坐标 -
GT1, GT5
:像素分辨率 -
GT2, GT4
:旋转分量(通常为0) -
B. Tie Points (控制点)
通过“像素—地理坐标对”来定位。
-
投影定义,GeoTIFF可保存:
-
投影类型(如UTM)
-
椭球(如WGS84)
-
基准面
-
投影参数(中央经线、尺度因子等)
-
-
像元值,支持:
-
8/16/32位整数或浮点
-
单波段/多波段
-
压缩或未压缩(如LZW、JPEG)
-
GeoTIFF 与云优化GeoTIFF
**COG(Cloud Optimized GeoTIFF)**是GeoTIFF的改进版,内部包含以瓦片(Tiles)存储的预览图像,具有 支持HTTP分块读取、可在Web端按需加载、支持多层金字塔(overview)特征。
ERDAS Imagine IMG 格式
IMG 文件是由 Hexagon Geospatial(原 Leica Geosystems)开发的 ERDAS Imagine 软件专用的栅格数据格式。 它是遥感、地理信息、影像分析领域最常用的大数据影像格式之一。
基本概述
ERDAS IMG
- 完整名称:ERDAS Imagine Raster Format
- 文件扩展名:
.img
- 类型:栅格影像
- 支持:单波段 / 多波段 / 多分辨率
- 兼容:GDAL、ArcGIS、ENVI、QGIS等主流GIS平台
核心特性
✅ 支持任意波段数 ✅ 可存储大尺寸影像(TB级) ✅ 内嵌地理参考信息(坐标系统、仿射变换) ✅ 支持金字塔层(Pyramids) ✅ 支持压缩(无损 / 有损) ✅ 能保存统计信息(最小值、最大值、直方图) ✅ 可携带丰富元数据(传感器信息、处理记录
文件组成
一个标准的 .img
文件由以下组成部分:
文件 | 描述 |
---|---|
.img | 主数据文件(栅格数据、波段、元数据) |
.ige | 大文件扩展(当超过2GB时自动生成) |
.aux | 辅助文件(兼容ArcGIS) |
.rrd | 金字塔层(缩略图缓存) |
.xml | 元数据文档 |
数据类型支持
IMG 格式支持多种数据精度:
数据类型 | 用途示例 |
---|---|
8位整数 | 普通影像(可见光) |
16位整数 | 遥感多光谱、DEM |
32位浮点 | 连续变量(坡度、反射率) |
64位浮点 | 高精度分析结果 |
坐标与投影
IMG文件可以存储: ✅ 地理坐标系(如WGS84 EPSG:4326) ✅ 投影坐标系(如UTM、Gauss-Krüger) ✅ 仿射变换矩阵 ✅ 投影元数据
性能特性
为什么大型遥感项目常选 IMG?
- 多波段支持:单文件可同时包含几十个波段(例如:Hyperspectral数据)
- 分块存储(Blocks):快速随机访问,性能优于传统GeoTIFF
- 金字塔层:内置多分辨率缩略图,缩放浏览迅速
- 大文件支持:支持 >2GB大影像(通过.ige扩展)
- 压缩灵活:支持RLE、JPEG压缩
应用场景
应用领域 | 示例 |
---|---|
卫星遥感影像存储 | Landsat、Sentinel、MODIS数据 |
数字高程模型(DEM) | SRTM、ASTER |
多波段栅格分析 | 植被指数、土壤水分 |
大规模影像拼接成果 | 正射影像图集 |
其它常见格式
- ASCII Grid:
- ASCII Grid 是一种简单的文本格式,用于存储栅格数据。每个像素的值以文本形式表示,并用空格或其他分隔符分隔。
- ASCII Grid 格式简单易懂,可读性好,因此在一些情况下被广泛应用。但是,由于其文本格式,文件大小通常较大,不适用于存储大规模的栅格数据。
- NetCDF:
- NetCDF (Network Common Data Form) 是一种多维数组数据格式,通常用于存储科学数据,包括栅格数据。
- NetCDF 格式支持元数据和多维数组的存储,并提供了灵活的数据访问和子集选择功能。
- 由于其灵活性和高效性,NetCDF 格式被广泛用于气象学、海洋学、地球科学等领域的栅格数据存储和共享。
- GRIB:
- GRIB (GRIdded Binary) 是一种二进制格式,通常用于存储气象和环境数据。它被国际气象组织 (WMO) 用于共享气象数据。
- GRIB 格式具有良好的压缩性能和高效的存储方式,适合存储大规模的栅格数据。
- GRIB 格式也支持元数据和多个数据层的存储。
- HDF5:
- HDF5 (Hierarchical Data Format version 5) 是一种灵活的数据存储格式,通常用于存储科学数据,包括栅格数据。
- HDF5 格式支持多维数组、元数据和数据集之间的层次结构,提供了高效的数据存储和访问方式。
- HDF5 格式适用于存储大规模的栅格数据,同时也支持数据压缩和并行 I/O 等功能。
概念解释
块(Blocks)和瓦片(Tiles)
什么是块(Blocks):
在 GeoTIFF 和其他栅格格式中,块是指图像数据的存储单位,是栅格文件内部存储数据的最小单元。。
块可以是行形式,条带(Strip,即图像的一行像素),也可以是区块形式(Tiles,即图像的一个小方形区域)。行形式的块延伸于整个图像宽度,而区块形式的块则是一个更小的矩形。
使用块的目的是为了优化数据的读写效率。通过将图像划分为小块,可以只读取或写入感兴趣的图像部分,而不是整个图像,从而提高处理大型图像文件的效率。
什么是瓦片(Tiles):
瓦片一词通常用于描述将大型图像划分为较小的、规则的方形或矩形部分,特别是在金字塔层级、网络地图服务(如 WMS、TMS)和一些 GIS 应用中,主要目的是提高网络传输和渲染效率。
每个瓦片是图像的一个独立部分,可以单独访问和处理。瓦片化使得在不同缩放级别下查看大型图像更加高效,因为只需要加载用户当前查看区域的瓦片。
栅格金字塔ovr
栅格金字塔(Pyramid,也叫影像金字塔)是为提高大影像多层次显示性能而生成的多分辨率影像数据。
它的基本原理:
将原始栅格影像逐步“缩小”生成若干副本,每层分辨率是上层的一半,用于低缩放等级的快速显示。
这样,用户在GIS软件中缩放影像时: ✅ 可以直接读取对应分辨率的副本 ✅ 不需要一次性加载全分辨率数据 ✅ 显著提高显示速度、减少内存占用
栅格金字塔的层级, 假设原始影像大小:8192 x 8192
像素。
金字塔通常按2倍分辨率递减:
- 第0层:8192×8192(原始)
- 第1层:4096×4096
- 第2层:2048×2048
- 第3层:1024×1024
- 第4层:512×512
- …… 直到最小缩略图
金字塔的存储方式,一般有两种,XinGEO使用外部金字塔。
存储方式 | 描述 |
---|---|
内部金字塔 | 金字塔数据直接写入影像文件(GeoTIFF / IMG内) |
外部金字塔 | 金字塔数据另存为单独文件,常用扩展名.ovr (overview) |