转自:https://blog.csdn.net/peckerzeng/article/details/78297159
对于地理空间数据而言,GIS有两大基本存储模型,一种是矢量数据模型,一种是栅格数据模型。栅格数据模型与矢量数据模型是地理信息系统中空间数据组织的两种最基本的方式。
同样信息的表达,在矢量数据模型中,我们看到的是清晰的点、线、面的实体,来表达河流、湖泊、地块这样的信息。
而在栅格数据模型中,我们看到的则是一个个的格子,相同的像元值在地图上展示出相同的颜色,从而也呈现出河流、湖泊、地块的形态。
虽然都能表达出一样的信息,但是这两种存储模型是完全不同,矢量是以对象为单位,我们可以把一个湖泊的面积等属性都存储在该对象中;而用栅格表达的话,湖泊是由一组像元组成的,我们不可能将整个湖泊的面积分别赋予每个像元。
另外,栅格数据是以二维矩阵(行和列或格网)的形式来表示空间地物或现象分布的数据组织方式,每个矩阵单位称为一个栅格单元(cell), 每个像元都包含一个信息值(例如温度)。
栅格的每个数据表示地物或现象的属性数据.因此栅格数据有属性明显,定位隐含的特点。而矢量数据结构是利用点,线,面的形式来表达现实世界,具有定位明显,属性隐含的特点。
经过上面的解释之后,相信大家已经对矢量和栅格有了很清晰的了解。那么现实世界的哪些现象是可以用栅格数据模型来管理呢?概况起来,主要是以下三类:
尽管栅格数据的结构很简单,但它在各种应用中都极为重要。在 GIS 中,栅格数据一般在以下四种情况下使用:
在 GIS的应用中,将影像作为基础底图是常见的使用方式,在影像基础底图上叠加专题图层,可以让我们更加准确的知道专题数据的位置是不是正确的(准确来说应该是:数据在空间上跟影像所表述的地物是不是对齐了)。
我们可以把正射航空摄影、正射卫星影像和正射扫描地图用栅格数据模型来存储,简称为栅格底图。
栅格非常适合用来表达那些沿地表连续变化的数据。譬如说高程数据是表面地图常见的使用方式,当然我们也可以将降雨量、温度、密度和人口密度等连续变化的数据,用栅格来表达。上面的栅格图是一份DEM数据,其中使用绿色的区域表示地势比较低的地区,红色、粉红色和白色像元则地势比较高的地区。
备注:数字高程模型(Digital Elevation Model),简称DEM,属于连续表面的栅格制图表达,要将真实的地球表面进行数字化,最常见的是采用DEM模型。
随着你接入越来越多的GIS项目,特别是涉及到国土、测绘、规划等部门的业务系统的时候,土地利用现状图是绕不过去的专业名词。像上面的这张土地利用现状分类图包含了农田、草地、水域等地物,也就是说这块地是干什么用的,是种树、种田还是搞了水利设施,又或者是盖了房子,调查这些地块的用途所做出来的专题地图就叫土地利用现状图。它要表达的是土地资源的利用现状、地域差异和分类。
像这类的专题图,可以用栅格来表达。一般来说,要获取这种表达主题数据的栅格,我们可以通过分析其他数据来获得,譬如可以把多光谱数据进行数据解译后,划分成各个类别的数据(植被、水系、道路等等),这些数据就可以用栅格来组织管理。
看到【将栅格用作要素的属性】这个标题,你可以会一头雾水。确实也很少这么总结过,但其实或多或少我们都这么干过。简单来说就是,我们可以数字照片、扫描的文档或扫描的绘图作为地理对象的属性。譬如上面这张古树图片,我们就可以把它作为古树图层的一个要素属性,也就是说,这个位置有一颗古树,这个古树长的什么样,那就看这张照片。这张图片我们就可以用栅格来存储管理
其实除了影像数据必须要以栅格进行管理之外,其他的要素(例如点要素)和测量值(例如降雨量)既可以存储为栅格数据类型也可以存储为矢量数据类型。那为什么还需要把数据存储为栅格呢?这就要说到栅格数据的优势了:
栅格数据结构更加简单,即由像元组成矩阵结构,其中的像元值表示坐标,有时与属性表相关联
可进行高级的空间和统计分析,ArcGIS提供了一个空间分析扩展模块专门针对栅格数进行地理处理和分析
可以表示连续表面以及执行表面分析
点、线、面和表面都可同样存储
对复杂数据集也可执行快速叠置
但是有时选择基于矢量的存储方法反而会更合适,譬如:
由于栅格数据集的像元尺寸具有局限性,所以可能会带来空间误差。
栅格数据集可能会非常大。虽然分辨率会随着栅格像元大小的减小而提高,但这会占用更多的磁盘空间,而且会拖慢处理速度。对于给定区域,将栅格像元大小更改为现有大小的一半时,所需的存储空间会增大为原来的四倍,具体情况取决于所使用的数据类型和存储技术。
将数据重建到固定间距的栅格像元边界时也会损失一定的精度。
如果要做地物的空间定位,矢量数据模型更加适合
在栅格数据集中,每个像元都有一个值,用来表达是所描绘的现象,如类别、高度、量级或光谱等等。其中的类别则可以是草地、森林或道路等土地利用类;高度(距离)则可表示平均海平面以上的表面高程,可以用来派生出坡度、坡向和流域属性;量级可以表示重力、噪声污染或降雨百分比;光谱可在卫星影像和航空摄影中表示光反射系数和颜色。
每个像元值可正可负,可以是整型也可以是浮点型。整型适合表达类别(离散)数据;浮点型则适合表达连续表面。另外,在像元值中,还可以使用 NoData 值来表示数据缺失。
同时,每个像元所表示的区域(或表面)的高和宽都相等。例如,表示高程的一个栅格(即,数字高程模型)可能会覆盖 100 平方千米的区域,如果这份栅格数据包含了 100 个像元,那么每个像元的高和宽都是1 方千米,也就是还说每个像元覆盖的面积是1 平方千米(即,1 km x 1 km)。
当然,像元的尺寸可大可小,具体可根据栅格数据集所描述的表面的精细度来确定。像元的大小可以是平方千米、平方英尺,甚至是平方厘米,它的大小决定了栅格中要素呈现的粗细程度。像元越小,那么栅格所表达的数据就越平滑或越详细。相应的,像元越小,数量也就越多,所需的处理时间会越长,占据的存储空间也越大。但是,如果像元过大,也可能会出现信息丢失或图样模糊的情况。举个栗子:如果像元大小超过道路的宽度,那么栅格数据集中就很难辨别出道路。
下图显示如何使用不同像元大小的栅格数据集来表示简单的面要素。
各像元的位置由其所在的栅格矩阵中的行和列来定义。矩阵实质上是使用直角坐标系来表示的,矩阵的行与笛卡尔平面的 x 轴平行,列与 y 轴平行。行和列的值均从 0 开始。在下面的示例中,如果栅格在通用横轴墨卡托 (UTM) 投影坐标系中,而且像元大小为 100,那么 (5,1) 处的像元在东和北方向上的坐标分别为 300,500 和 5,900,600
另外,通常我们在管理栅格数据时,都需要指定栅格范围。定义范围的时候,应指定栅格覆盖的矩形区域的顶部、底部、左侧和右侧的坐标,如下图所示:
这个范围的定义,一般来说软件都已经帮我们完成了,譬如ArcGIS里就自动的读取了栅格的范围: