栅格那点儿事(一)---Raster是个啥子东西
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是个啥子东西的更多相关文章
- 栅格那点儿事(二)---细看Raster属性
细看Raster属性 如果你已经看完了上一章,你已经了解了栅格数据是由一个个像元(Cell)按照行列方式构成的,每一个像元都有自己的像元值,并且这些像元值根据栅格类型的不同,可以代表反射值,或高程值, ...
- arcgis 栅格计算器(Spatial Analyst/Raster Calculator)
栅格计算器中用得到$$相关函数 $$NROWS: the number of rows in the analysis window (行数)$$NCOLS: the number of column ...
- 栅格那点儿事(四A)---栅格的显示与渲染
栅格的显示与渲染 通过前两章的学习,应该对栅格这个东西不那么陌生了.在这一个部分,我们来看看如何展示出栅格数据最美丽的地方,在ArcGIS中栅格的显示与渲染.在进入细节之前,先来看看在ArcGIS中都 ...
- 栅格那点儿事(四E)
栅格金字塔 如果上面的部分都已经看过了,那么如何在ArcMap中更好的渲染一个栅格数据你已经知道了.可仅展示好一个栅格数据是不够的,我们还需要知道如何快速的展示一个栅格数据. 讲金字塔之前,先解释 ...
- 栅格那点儿事(四D)
统计值与空值 在上一篇的内容里反复提到了一个统计值.那这个统计值是怎么来的,具体是干嘛用的呢? 统计值主要就是用于栅格数据的显示和重分类,顾名思义就是一个波段中所有像元值的一个统计信息,最大值,最小值 ...
- 栅格那点儿事(四C)
栅格渲染之拉伸(Stretch) 现在我们知道如何在ArcGIS中渲染栅格数据了,但是还有一个常常会碰到的问题,尤其是在使用老版本的ArcGIS的时候,为啥我加了一个栅格数据进来,啥也看不见,是黑色的 ...
- 栅格那点儿事(四B)---多波段栅格数据的显示
多波段栅格数据的显示 我上面说了这么多,可能有的人会觉得平时也根本用不上.自然,说起影像数据,大家接触到对多的就是最最常见的航片或卫片.对于这种栅格数据呢,大多数的场景下,都只需实现一个效果,就是最接 ...
- ArcGIS Engine开发之地图基本操作(3)
地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...
- Geodatabase数据模型
1 Geodatabase概念 Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统一的.智能的空间数据模型.“统一”是指,Geodatabase ...
随机推荐
- Jenkins 相关
手动下载Jenkins plugin 的地址, 下载后的是zip 文件,然后再手动修改为.hpi 文件,然后再手动上传 https://plugins.jenkins.io/
- 如何进bat
既然是要谈如何进入BAT,那么咱们就从面试的角度来谈学习这件事,会谈谈一流互联网公司对于Java后端程序员的要求,相应的,也会谈谈如何达到这样的要求. 为了简单起见,这些要求分为三个层次,分别为基本要 ...
- IDEA 文档注释 乱码 终极... 解决方案
idea bin 目录 下 phpstorm64.exe.vmoptions 最后一行添加 : -Dfile.encoding=UTF-8
- poj3713 Transferring Sylla 枚举+tarjan判割点
其实就是判断是否为三连通图 三连通图指的是去掉3个点就不连通的图,但是并没有直接求三连通的算法.著名的Tarjan算法可以求解连通和割点,再枚举删除一个点就能达到三连通的目的. 先看用例2,是由用例1 ...
- 1022 D进制的A+B (20 分)
输入两个非负 10 进制整数 A 和 B (≤),输出 A+B 的 D (1)进制数. 输入格式: 输入在一行中依次给出 3 个整数 A.B 和 D. 输出格式: 输出 A+B 的 D 进制数. 输入 ...
- photoshop中魔棒工具的使用
魔术棒工具一般用于纯色背景快速扣图,打开魔术棒工具,设定容差,点击选定背景,清除,文件-保存为png格式图片.ok! 魔棒工具是photoshop中提供的一种比较快捷的抠图工具,对于一些分界线比较明显 ...
- WCF的三种模式
WCF通信的3种模式 1.正常模式:客户端调取接口->等待服务响应->接受响应->执行客户端后面代码(wcf服务有入参,有返回值) 2.数据报模式:客户端调取接口->不等待响应 ...
- 6 GPath
1 GPath GPath是Groovy的表达式语言,类似xml的XPath.而二者的不同在于,GPath表达式可以应用于处理POJOs或者处理xml. 例如:a.b.c语句等同于a.ge ...
- 【ACM】阶乘因式分解(二)
阶乘因式分解(二) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解质因数,求 ...
- java——利用生产者消费者模式思想实现简易版handler机制
参考教程:http://www.sohu.com/a/237792762_659256 首先说一下这里面涉及到的线程: 1.mainLooper: 这个线程可以理解为消费者线程,里面运行了一个死循环, ...