Raster是个啥子东西

现如今,不仅是在遥感应用中能看到花花绿绿的影像了,在GIS应用中也能随处看到她们的身影。在各种在线地图中,卫星影像作为底图与矢量的道路层叠加;高程DEM作为高程来源实现地形的山影效果。相信大家对影像这个词,应该一点儿也不感到陌生。

那么栅格呢?相对与我们熟悉的影像,这俩只是名词上的区别么?

栅格(Raster)和影像(Images/Imagery)在GIS应用中经常被相互指代。如果非要区别一下呢,影像是指通过各种遥感设备,传感器,或者照相机得到的电子的或者纸质的图片,栅格则是一种数据模型,用来特指影像存储方式的。类比一下,如果把ArcGIS中存储显示的图片都称之为酒的话,栅格就是酒瓶,而影像就是瓶中的美酒了。

咱们再来仔细看看栅格数据。

如果说使用矢量来描绘我们的世界,需要使用到点,线或者是面。而构成点,线,或者面的最小单元,是点(结点)。那么另外一种用于描绘地物的数据-栅格的最小单元又是什么呢?

如果你曾经好奇的把影像/栅格数据放大放大再放大,那么可能会注意到,当放大到某一个层级后,栅格数据就会变成下图所示的状态,变成了一个个的小格子。这些小格子,就是栅格数据的最小单元,Cell,也叫像元。对影像来说,这个最小的单元被叫做pixel,像素。

熟悉shape格式的筒子们都知道,线或者面数据都是通过点串来存储的。打开属性表也能够看到,撇开业务属性,就空间属性而言,每一条线就是一条记录,而这条记录中存储的shape再展开来才是构成这条线的点串的坐标(xy坐标)。而栅格数据的组织方式就非常的简单,有多简单呢,它就是一矩阵!栅格/影像数据看起来很复杂,还那么大一块,但是其实就是按行和列存储的像元。栅格运算的时候与矩阵运算是一样的,找到相应的位置,然后将象元值进行相应的加减乘除就可以了。

通过矩阵方式存储的栅格数据有显而易见的优点,数据结构简单。矢量的点,线,面也可以存储在栅格数据中,这样更方便参与空间分析的运算。BUT,将地物都栅格化了存储也有自己的弊端的。首先,栅格化之后,数据的精度取决于且仅取决于栅格的象元大小。象元越小,数据的所占的磁盘空间越大,处理起来越慢。再有呢,就是栅格的最小单元是不能够再分割的,在数据存储或者重建的时候会有误差。例如像元大小为1m的栅格是不能精确存储边长为10.5m的矢量边的。

正如上面提到的,像元有个不能被改变的特性,就是它是一个正方形,长 = 宽 = 像元大小 = 格网大小(栅格) = 分辨率(影像)。对于一个栅格来说,长与宽可以不同,说明栅格的行数与列数不等,也就是每一行的像元数与每一列的像元数不等。但是在一个栅格数据中,像元大小是一定的。

象元值又代表了什么呢?

如果需要了解一个矢量数据的属性,我们Identify一下,就可以看到该矢量背后的故事。这个多边形代表的是那个省,这个省的人口有多少,编码是什么等等等等。那么我们Identify一下栅格的某个位置,得到的RGB的值表示又是什么意思呢?

小时候的自然课应该也有讲过,世间万物对不同光的吸收和反射是不同的。而我们看到的影像,就是通过传感器记录下每一个位置对红光(Red),绿光(Green)和蓝光(Blue)的反射值得到的。(高级传感器例如卫星上用的还记录了更多光波段的反射值,这里不罗嗦了)栅格数据中,代表实际“属性”的像元值就是反射值。

当然了,反射值只是针对航片,卫片和照片的。对于DEM或者其他高程影像来说,像元值代表的就是该位置的实际高度。而土地分类图中每一个像元值代表的是该位置上的土地利用类型。

还有一个问题,就是如果栅格都是矩阵,那么为什么会有离散数据(Discrete Data)和连续数据(Continues Data)的区别?

这个是由于栅格数据所表现的事物类型是多种多样的。根据栅格中像元值的分布类型,将他们分成了3类,离散数据(有时也叫专题数据),主要是指分类结果数据,例如土地利用图;连续数据,一般是真实地物的直接体现,比如各种遥感影像,DEM,温度图等等等等;最后一类是图片,例如扫描地图或者楼房照片等。

预告一下,下一贴要讲讲像元深度(pixel depth),波段等属性信息。

栅格那点儿事(一)---Raster是个啥子东西的更多相关文章

  1. 栅格那点儿事(二)---细看Raster属性

    细看Raster属性 如果你已经看完了上一章,你已经了解了栅格数据是由一个个像元(Cell)按照行列方式构成的,每一个像元都有自己的像元值,并且这些像元值根据栅格类型的不同,可以代表反射值,或高程值, ...

  2. arcgis 栅格计算器(Spatial Analyst/Raster Calculator)

    栅格计算器中用得到$$相关函数 $$NROWS: the number of rows in the analysis window (行数)$$NCOLS: the number of column ...

  3. 栅格那点儿事(四A)---栅格的显示与渲染

    栅格的显示与渲染 通过前两章的学习,应该对栅格这个东西不那么陌生了.在这一个部分,我们来看看如何展示出栅格数据最美丽的地方,在ArcGIS中栅格的显示与渲染.在进入细节之前,先来看看在ArcGIS中都 ...

  4. 栅格那点儿事(四E)

    栅格金字塔   如果上面的部分都已经看过了,那么如何在ArcMap中更好的渲染一个栅格数据你已经知道了.可仅展示好一个栅格数据是不够的,我们还需要知道如何快速的展示一个栅格数据. 讲金字塔之前,先解释 ...

  5. 栅格那点儿事(四D)

    统计值与空值 在上一篇的内容里反复提到了一个统计值.那这个统计值是怎么来的,具体是干嘛用的呢? 统计值主要就是用于栅格数据的显示和重分类,顾名思义就是一个波段中所有像元值的一个统计信息,最大值,最小值 ...

  6. 栅格那点儿事(四C)

    栅格渲染之拉伸(Stretch) 现在我们知道如何在ArcGIS中渲染栅格数据了,但是还有一个常常会碰到的问题,尤其是在使用老版本的ArcGIS的时候,为啥我加了一个栅格数据进来,啥也看不见,是黑色的 ...

  7. 栅格那点儿事(四B)---多波段栅格数据的显示

    多波段栅格数据的显示 我上面说了这么多,可能有的人会觉得平时也根本用不上.自然,说起影像数据,大家接触到对多的就是最最常见的航片或卫片.对于这种栅格数据呢,大多数的场景下,都只需实现一个效果,就是最接 ...

  8. ArcGIS Engine开发之地图基本操作(3)

    地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...

  9. Geodatabase数据模型

    1  Geodatabase概念 Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统一的.智能的空间数据模型.“统一”是指,Geodatabase ...

随机推荐

  1. Python学习之路--1.0 Python概述及基本数据类型

    Python是一门解释性语言,弱类型语言 python程序的两种编写方式: 1.进入cmd控制台,输入python进入编辑模式,即可直接编写python程序 2.在.朋友文件中编写python代码,通 ...

  2. CF708B Recover the String 构造

    For each string s consisting of characters '0' and '1' one can define four integers a00, a01, a10 an ...

  3. python中各种转义字符

    转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \’ 单引号 \” 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \t 横向制 ...

  4. spring 通过beanDefinition注册自定义规则的bean

    目的: 扫描某个自定义注解标注的类, 或者自定义xml 为这些类生成spring Bean 基本原理:org.springframework.beans.factory.support.Default ...

  5. mysql隔离级别与锁,接口并发响应速度的关系(1)

    默认隔离级别:可重复读 原始数据 | id | name | addr | | nick | NULL | 事务1 事务2 start transaction start transaction ; ...

  6. python练习六十二:文件处理,往文件中所有添加指定的前缀

    往文件中所有添加指定的前缀 方法一:open方法 f_r = open('text.txt') f_w = open('text_new.txt','w+') i = 0 while True: i ...

  7. Java多线程之同步集合和并发集合

    Java多线程之同步集合和并发集合 不管是同步集合还是并发集合他们都支持线程安全,他们之间主要的区别体现在性能和可扩展性,还有他们如何实现的线程安全. 同步集合类 Hashtable Vector 同 ...

  8. 3d Max 2010安装失败怎样卸载3dsmax?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  9. maya2016安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  10. Murano py27和py34的兼容处理

    tox.ini envlist = py27,py34,pep8 1. django.utils.encoding.force_unicode替换成django.utils.encoding.forc ...