细看Raster属性

如果你已经看完了上一章,你已经了解了栅格数据是由一个个像元(Cell)按照行列方式构成的,每一个像元都有自己的像元值,并且这些像元值根据栅格类型的不同,可以代表反射值,或高程值,或分类类别等等。But,关于栅格数据属性的细节还是有很多问题。好像是像元值是不是也可以分成Integer, Float,或者Double?为什么栅格数据有的只有一个band,有的确有多个band?栅格统计值是干什么用的?

在ArcCatalog(10.1版本)里面查看栅格数据的属性,见下图:

红框中的内容就是栅格的属性了。这些属性具体告诉了我们关于栅格的什么故事呢?

Columns and Rows行列数告诉我们这个栅格一共有15781x13442个像元,而Cellsize则说明了像元大小为0.1单位。如果栅格是在投影坐标系下,则像元大小为0.1 米。根据这两个属性,我们对栅格数据覆盖的面积就有了概念(行数 x 列数 x 象元大小的平方)。

Number of bands说明了一个栅格数据带有几个波段。我们先不要纠结于栅格数据为什么会有多个波段,以及多波段的影像如何显示的问题(后文有详解)。单纯的从栅格数据的数据结构来看,波段就是描绘栅格数据的除行列数外的另外一个维度。可以这样来理解波段,如果将栅格数据看做一个切片面包,每一个波段就是这个切片面包中的一片,而每个面包片的大小(长和宽)就是栅格的行列数。从栅格的属性也不难看出,栅格数据中每个波段的行列数,像元大小是完全相同的。

再来看下Pixel TypePixel Depth

这两个属性通常情况下是一起出现的。而这两个属性定义的就是栅格数据的像元值的值域范围。例如8bit的 unsigned integer栅格数据的像元值范围就是0~255,8bit的signed integer的像元值范围是 -128~127等等。

一般常见的遥感影像数据都是8bit unsigned integer的。会用到16 bit unsigned 或是32bit float类型的栅格多是高程表面数据,需要用到更大的带小数位的值来精确的记录高程信息。详细的比特深度和值域范围的对照请参见下表。

在拿到新的栅格/影像时,上述的信息可以帮助你快速了解手上的数据。再有就是在创建一个新的栅格数据时,也需要这些信息作为新建栅格的参数。在ArcGIS中创建一个栅格数据集时,会看到如下窗口:

其中像元类型和波段数是必填的。像元大小如果在新建时置空,将会由导入/镶嵌进来的第一幅影像决定。

此外,如果得知栅格数据的这些属性,根据一个8bit像元占1B的空间,32bit的像元占4B的空间,就可以直接得到栅格数据未压缩的大小。

例如上上图中,一个3波段,15781列13442行,8bit的栅格数据未压缩大小为

1B x 15781 x 13442 x 3 =636384606 B = 606.903MB(Uncompressed Size)

栅格属性中的颜色表(color map),金字塔(pyramid),统计值(statistics)等内容都会在下面的栅格的渲染中仔细说说。

预告一下,下一贴讲讲影像压缩(compression)

栅格那点儿事(二)---细看Raster属性的更多相关文章

  1. 栅格那点儿事(一)---Raster是个啥子东西

    Raster是个啥子东西 现如今,不仅是在遥感应用中能看到花花绿绿的影像了,在GIS应用中也能随处看到她们的身影.在各种在线地图中,卫星影像作为底图与矢量的道路层叠加:高程DEM作为高程来源实现地形的 ...

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

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

  3. java web学习总结(二十) -------------------监听器属性详解

    一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...

  4. jQuery源代码阅读之二——jQuery静态属性和方法

    一.jQuery.extend/jQuery.fn.extend //可接受的参数类型如下:jQuery.extend([deep],target,object1,[objectN]) jQuery. ...

  5. TextView之二:常用属性

    参考自<疯狂android讲义>2.3节 //TextView所呈现的文字 android:text="我爱Java" //文字颜色 android:textColor ...

  6. springboot 入门三- 读取配置信息二(读取属性文件方式)

    在上篇文章中简单介绍自带读取方式.springboot提供多种方式来读取 一.@ConfigurationProperties(value="my") 支持更灵活的绑定及元数据的支 ...

  7. CSS布局(二) 盒子模型属性

    盒子模型的属性 宽高width/height 在CSS中,可以对任何块级元素设置显式高度. 如果指定高度大于显示内容所需高度,多余的高度会产生一个视觉效果,就好像有额外的内边距一样: 如果指定高度小于 ...

  8. 二: vue的属性及功能,axios

    一: 过滤器 1. 定义:    过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种. 2.使用vue.filter()进行全局定义 ...

  9. springboot快速入门(二)——项目属性配置(日志详解)

    一.概述 application.properties就是springboot的属性配置文件 在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring ...

随机推荐

  1. Django 自定义模板标签 报错django.template.exceptions.TemplateSyntaxError: '####' is not a registered tag library. Must be one of:

    我写代码遇到这个错误,但是发现程序没有写错,好像是程序有缓存,重新运行几次就好了. 自定义模板标签,可以不用写views,url直接通过自定义函数把变量传给模板. 具体实现: 1.在app下新建Pyt ...

  2. 平衡树学习笔记(6)-------RBT

    RBT 上一篇:平衡树学习笔记(5)-------SBT RBT是...是一棵恐怖的树 有多恐怖? 平衡树中最快的♂ 不到200ms的优势,连权值线段树都无法匹敌 但是,通过大量百度,发现RBT的代码 ...

  3. P1630 求和

    题意:求$\sum_{i=1}^a i^b,a,b\le 10^9$ 暴力只有30分QAQ(本数学蒟蒻当然想不到正解啦) 正解:模数很小,不难(?)想到$i^a%10000=(i+b)^a %1000 ...

  4. element el-tree循环遍历树形结构,并动态赋值disabled属性

    凌晨3点,功夫不负有心人,已经累趴,效果终于出来: 贴上代码: <style scoped> .form { width: 50%; } </style> <templa ...

  5. nginx FastCGI模块配置

    这个模块允许nginx同FastCGI协同工作,并且控制哪些参数将被安全传递. location / { fastcgi_pass localhost:9000;# 或者http://ip:9000; ...

  6. 洛谷1026(字符串dp)

    常规dp.看到数据很小就直接暴力了,没有预处理.kmp好像过分了-- #include <cstdio> #include <cstring> #include <ios ...

  7. echarts设置线条粗细

    series: [ { name:"buy", type:'line', data:[], itemStyle: { normal: { color: '#6cb041', lin ...

  8. thinkphp模板布局

    不知道我们会不会有这样一个困惑,,每当进行一个项目时,发现页面都有好多重复的地方,假如我们每个页面都写,不仅降低的代码的运行效率 而且还不利于后期维护!TP中的模板布局就解决了这一难题! 我们就以Ad ...

  9. Python入妖5-----正则的基本使用

    什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...

  10. Vue.js-----轻量高效的MVVM框架(二、Vue.js的简单入门)

    1.hello vue.js! (1)引入vue.js <script type="text/javascript" src="js/vue.js"> ...