8.GDAL数据集总体概览
GDAL使用抽象数据模型(abstract data model)来解析它所支持的数据格式,抽象数据模型中包括下面几部分内容:
- 数据集(Dataset)
- 坐标系统(Coordinate System)
- 仿射地理坐标系统(AffineGeoTransform)
- 地面控制点(GCPs)
- 元数据(Metadata)
- 子数据集域(Subdatasets Domain)
- 图像结构域(Image_Structure Domain)
- RPC域(RPC Domain)
- XML域(XML:Domain)
- 栅格波段(Raster Band)
- 颜色表(Color Table)
- 快视图(Overviews)
1. 数据集(Dataset)
数据集是由栅格波段和一些相关的信息共同组成的。在一个数据集中所有的波段都具有相同的大小,即图像行数和列数相等;相关信息包括该i数据的地理坐标、投影信息以及一些元数据信息等,其中元数据信息是由形如“名称:值”的字符串组成的字符串列表
GDAL数据集是基于OpenGIS网格数据的标准来实现的。
2. 坐标系统(Coordinate System)
数据集中的坐标系统是使用OpenGIS的WKT字符串格式来实现的,包含以下内容。
- 坐标系统名称
- 地理坐标系统名称
- 大地水准面
- 椭球体名称、长半轴和扁率
- 中央经线名称与本初子午线的偏移量
- 投影方式
- 投影参数列表
- 单位名称、单位与米或者弧度之间的转换系数
- 坐标轴名称和顺序
- 以上各项对应的EEPPSG代码
3. 元数据(Metadata)
GDAL中的元数据是对该数据的一个辅助说明,元数据的格式是由一系列形如"名称=值"的字符串组成的列表。元数据的名称由指定的付好构成的任何字符。
数据集中最好不要存储太多元数据,如果元数据大小超过100KB就可能导致性能下降。
4. 子数据集域(Subdatasets Domain)
子数据集域是含有多个子数据集的字符串列表,通常用来提供指向多个影像的指针,这些影像存储在同一个多影像文件中
5. 图像结构域(Image_Structure Domain)
在默认域的元数据用来描述图像的相关信息,这些元数据并没有以特殊的方式保存在磁盘中。意思就是说,当这些元数据信息被复制到一个新的图像中的时候,会以合适的方式存在新的图像中。此外还有一些信息是和图像的格式紧密关联的。为了防止这些信息在写入新图像的时候被复制,将这些信息存储在一个叫IMAGE_STRUCTURE的特殊域中,通常这里存储的东西不会写入到新的图像中去。
目标,在IMAGE_STRUCTURE域中定义的项目主要有下面几个。
COMPRESSION:压缩方式用来指定数据集或者波段的压缩方式,这个是没有固定的压缩类型名称,但是一个指定的格式,如果指定压缩方式,那么在创建的时候会使用这种压缩方式进行压缩。
NBITS:当前波段或者当前数据集的波段中真实的数据存储bit数。通常只有非标准的数据类型才会使用该值,比如TIFF图像中的1bit数据,在GDAL会使用GDT_Byte来表示。
INTERLEAVE:这个只能用在数据集中,用来表示一个像元,一行和一个波段之间的间隔,可以用来作为读取数据的一个提示。
PIXELTYPE:这个值会出现在一个GDT_Byte类型的波段(或者相应的数据集)中,并且会使用SIGNEDBYTE值来表示无符号byte值介于128和255之间值应该转换为-128到-1之间。
6. RPC域(RPCDomain)
RPC元数据域存储的是有理函数模型的系数,该模型表示从图像行列号与空间参考位置间的变换关系,该模型具体定义如下:
- ERR_BIAS: 偏移误差,图像上所有的点在水平轴上的偏移的中误差,-1.0表示未知。
- ERR_RAND: 随机误差,图像上所有的点在水平轴上的随机中误差,-1.0表示未知。
- LINE_OFF: 行偏移量
- SAMP_OFF: 列偏移量
- LAT_OFF: 纬度偏移量
- LONG_OFF: 经度偏移量
- HEIGHT_OFF: 高程偏移量
- LINE_SCALE: 行缩放比例
- SAMP_SCALE: 列缩放比例
- LAT_SCALE: 纬度缩放比例
- LONG_SCALE: 经度缩放比例
- HEIGHT_SCALE: 高程缩放比例
- LINE_NUM_COEFF (1-20): 行分子系数,一共20个(使用空格隔开)
- LINE_DEN_COEFF (1-20): 行分母系数,一共20个(使用空格隔开)
- SAMP_NUM_COEFF (1-20): 列分子系数,一共20个(使用空格隔开)
- SAMP_DEN_COEFF (1-20): 列分母系数,一共20个(使用空格隔开)
- 些内容都是来自GeoTIFF的RPC文档(http://geotiff.maptools.org/rpc_prop.html)。
7. XML域(XML:Domains)
任何前缀是“xml:”的一个字符串,但不是名称/值这种类型的,这是一个简单的XML格式的长字符串。
8. 栅格波段(Raster Band)
一个栅格波段在GDAL中使用GDALRasterBand类来进行表示。他表示一个栅格波段、通道或者图层。波段不能完全用来表示整个图像,比如一个24位的RGB图像中就含有三个波段,分别是红波段,绿波段和蓝波段。
栅格波段含有下面属性:
- 图像的宽和高,这个和数据集里面的定义一样,如果这个波段是全分辨率波段的话。(这里有个说明,GDALRasterBand还可以表示金字塔的波段,如果是金字塔的波段的话,里面的宽高就和图像的宽高不一样)。
- 数据类型(GDALDataType)。应该是Byte、UInt16、Int16、UInt32、Int32、Float32、Float64以及复数类型CInt16、CInt32、CFloat32和CFloat64中的一个。
- 大小。通过块是读取数据最高效的方式,对于分块数据,就是一个分块大小,对于大多数图像来说,一块就是一行。
- 称/值的元数据对,格式和数据集中的一员,但是包含的信息可能是波段特有的。
- 个可选的波段描述字符串。
- 个可选的用来描述NODATA值的像元值。
- 个可选的NODATA值表示的掩码波段或者在某些时候作为透明通道。
- 选的类别名称列表(用于分类图)
- 选的最大值和最小值。
- 选的偏移量和缩放比例,用来对图像的像素值进行变换,比如变换高度到米等。
- 像单位名称,可选。比如可以用来表示高程数据的海拔。
- 段的颜色信息,是下面值中的某一个:
GCI_Undefined:默认值,未知
GCI_GrayIndex: 灰度图
GCI_PaletteIndex:颜色表图
GCI_RedBand: RGBA图像的R部
GCI_GreenBand: RGBA图像的G部
GCI_BlueBand: RGBA图像的B部
GCI_AlphaBand: RGBA图像的Alpha部
GCI_HueBand: HLS图像的色调部
GCI_SaturationBand: HLS图像的饱和度部
GCI_LightnessBand:HLS图像的亮度部
GCI_CyanBand: CMYK图像的青色部
GCI_MagentaBand: CMYK图像的品红部
GCI_YellowBand: CMYK图像的黄色部
GCI_BlackBand: CMYK图像的黑色部。
- 颜色表,下面有更详细的说明
- 如果金字塔可用,含有一些关于金字塔的信息。
9. 颜色表(Color Table)
颜色表的定义如下,使用C语言的风格定义:
typedef struct
{/- gray, red, cyan or hue-/short c1;/- green, magenta, orlightness -/ short c2;/- blue, yellow, orsaturation -/short c3;/- alpha or blackband -/short c4;
} GDALColorEntry;
颜色表通常是颜色调色板的一个值,对于c1/c2/c3/c4 四个值对应不同的调色板,其表示的含义不同,具体表示见下:
- GPI_Gray: 使用c1表示灰度值
- GPI_RGB: c1表示红色,c2表示绿色,c3表示蓝色,c4表示alpha通道
- GPI_CMYK: c1表示青色,c2表示洋红,c3表示黄色,c4表示黑色
- GPI_HLS: c1表示色调,c2表示亮度,c3表示饱和度。
通过颜色表,将象元值用颜色表中的颜色来进行表示,颜色表中的值是从0开始递增。
10. 快视图(Overviews)
一个波段中可能没有或者有很多个快视图。每个快视图都是一个GDALRasterBand,略缩图大小将和其下层的栅格大小不一样,但是快视图表示的区域与整个图像的区域是一致的。
快视图是用来快速显示图像用的,使用全分辨率图像进行降采样得到。
我们可以通过波段类中的HasArbitraryOverviews属性来判断是否由快视图,如果返回TRUE表示有,就可以读取任何分辨率的快视图。
8.GDAL数据集总体概览相关推荐
- 活动目录在Windows Server 2008 中的改进:总体概览
本系列文章将谈谈在Windows Server 2008中有关活动目录域服务(Active Directory Domain Services下文缩写为AD DS)的新特性,其主要内容翻译自Tec ...
- 玩安卓从 0 到 1 之总体概览
玩安卓从 0 到 1 之总体概览 前言 其实写MVVM?瞎搞一波?和MVVM?继续搞一波这两篇文章的时候没觉得水,但是后来自己看了一遍,感觉除了截了几张图之外并没说什么关于技术的东西,这就很扯淡了,技 ...
- 小码哥iOS--玩转【斗鱼直播APP】系列之直播总体概览
直播总体概览 概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿 ...
- 第二十三篇玩转【斗鱼直播APP】系列之直播总体概览
直播总体概览 概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿 ...
- OpenCV SIFT源码详解——总体概览
OpenCV SIFT源码详解--总体概览 一.版本 二.章节系列 此系列文章源自本人硕士毕业论文,主要讲源码,对于SIFT理论知识默认大家有过了解.若文章中有不对之处还请读者指出. 一.版本 本系列 ...
- iOS直播技术学习笔记 直播总体概览(一)
####概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿,占网 ...
- eShopOnContainers 看微服务 ①:总体概览
一.简介 eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用. 该参考应用是一个简化版的在线商城/电子商务微服务参考示例应用. 其 ...
- [黑马程序员C++笔记]P72-P83通讯录管理系统总体概览
系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家 ...
- 物联网设备管理平台性能测试经验总结(一)——总体概览
接触性能测试以来,参与了平台两个版本的性能测试,也踩了很多坑,现在对这两次的经验做一个总结. 请看下图,被测系统是一个物联网设备管理平台,对于该平台来说,主要关注以下两个方面:设备连接和API网关性能 ...
最新文章
- 阿里云文件存储NAS跨账号挂载
- tcpwrapper的使用方法
- boost::irange相关的测试程序
- getchar()和EOF
- Java笔记08-Map详解
- 带你了解AKG正反向算子注册+关联流程
- java实现线性回归(简单明了,适合理解)
- android studio 图表,Android Studio——记账本以及图表可视化实现
- 沙迦美国大学科研副校长赵伟:揭秘工业 4.0 核心技术 CPS 的前世今生 | 人物志...
- python-简单邮件报警
- 【李宏毅2020 ML/DL】P13 Backpropagation | 神经网络反向传播到底是怎么计算的
- js使用的一些实用技巧
- [Search Engine] 搜索引擎技术之查询处理
- 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群 1
- VGG16整体框架图
- go之树型结构深度理解
- Java毕业设计:人民医院体检预约系统(java+springboot+vue+mysql)
- oracle表自动模拟多条数据,Oracle使用虚拟表dual一次插入多条记录
- kali安装卡在最后一步_解决kali安装过程中配置网络失败问题
- ghost Ubuntu环境下安装
热门文章
- python资格证书有效期是多久_软考资格证书有效期是多久_软考资格证书有效年限 - 希赛网...
- 二分查找的ASL公式及其数学推算
- Latex 篇章结构 特殊字符
- 2021-08-09校网比赛B题
- 【git常用的Linux命令】熟记
- 媒体文件信息查看工具 MediaInfo
- Axure谷歌浏览器插件下载安装及配置
- 逻辑推理—乒乓球问题
- 小米路由为何要搭载搜狗预取引擎
- 弹弹堂服务器如何修改,弹弹堂端游服务端+手工弹弹堂游戏客户端+GM管理后台+附安裝构建实例教程...