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数据集总体概览相关推荐

  1. 活动目录在Windows Server 2008 中的改进:总体概览

      本系列文章将谈谈在Windows Server 2008中有关活动目录域服务(Active Directory Domain Services下文缩写为AD DS)的新特性,其主要内容翻译自Tec ...

  2. 玩安卓从 0 到 1 之总体概览

    玩安卓从 0 到 1 之总体概览 前言 其实写MVVM?瞎搞一波?和MVVM?继续搞一波这两篇文章的时候没觉得水,但是后来自己看了一遍,感觉除了截了几张图之外并没说什么关于技术的东西,这就很扯淡了,技 ...

  3. 小码哥iOS--玩转【斗鱼直播APP】系列之直播总体概览

    直播总体概览 概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿 ...

  4. 第二十三篇玩转【斗鱼直播APP】系列之直播总体概览

    直播总体概览 概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿 ...

  5. OpenCV SIFT源码详解——总体概览

    OpenCV SIFT源码详解--总体概览 一.版本 二.章节系列 此系列文章源自本人硕士毕业论文,主要讲源码,对于SIFT理论知识默认大家有过了解.若文章中有不对之处还请读者指出. 一.版本 本系列 ...

  6. iOS直播技术学习笔记 直播总体概览(一)

    ####概述 直播的现状 2016年,是一个直播年.直播行业快速发展,同时也滋生了大大小小上千家相关的公司. 中国互联网络信息中心发布的报告显示,截至今年6月,我国网络直播用户规模达到3.25亿,占网 ...

  7. eShopOnContainers 看微服务 ①:总体概览

    一.简介 eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用. 该参考应用是一个简化版的在线商城/电子商务微服务参考示例应用. 其 ...

  8. [黑马程序员C++笔记]P72-P83通讯录管理系统总体概览

    系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家 ...

  9. 物联网设备管理平台性能测试经验总结(一)——总体概览

    接触性能测试以来,参与了平台两个版本的性能测试,也踩了很多坑,现在对这两次的经验做一个总结. 请看下图,被测系统是一个物联网设备管理平台,对于该平台来说,主要关注以下两个方面:设备连接和API网关性能 ...

最新文章

  1. 阿里云文件存储NAS跨账号挂载
  2. tcpwrapper的使用方法
  3. boost::irange相关的测试程序
  4. getchar()和EOF
  5. Java笔记08-Map详解
  6. 带你了解AKG正反向算子注册+关联流程
  7. java实现线性回归(简单明了,适合理解)
  8. android studio 图表,Android Studio——记账本以及图表可视化实现
  9. 沙迦美国大学科研副校长赵伟:揭秘工业 4.0 核心技术 CPS 的前世今生 | 人物志...
  10. python-简单邮件报警
  11. 【李宏毅2020 ML/DL】P13 Backpropagation | 神经网络反向传播到底是怎么计算的
  12. js使用的一些实用技巧
  13. [Search Engine] 搜索引擎技术之查询处理
  14. 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群 1
  15. VGG16整体框架图
  16. go之树型结构深度理解
  17. Java毕业设计:人民医院体检预约系统(java+springboot+vue+mysql)
  18. oracle表自动模拟多条数据,Oracle使用虚拟表dual一次插入多条记录
  19. kali安装卡在最后一步_解决kali安装过程中配置网络失败问题
  20. ghost Ubuntu环境下安装

热门文章

  1. python资格证书有效期是多久_软考资格证书有效期是多久_软考资格证书有效年限 - 希赛网...
  2. 二分查找的ASL公式及其数学推算
  3. Latex 篇章结构 特殊字符
  4. 2021-08-09校网比赛B题
  5. 【git常用的Linux命令】熟记
  6. 媒体文件信息查看工具 MediaInfo
  7. Axure谷歌浏览器插件下载安装及配置
  8. 逻辑推理—乒乓球问题
  9. 小米路由为何要搭载搜狗预取引擎
  10. 弹弹堂服务器如何修改,弹弹堂端游服务端+手工弹弹堂游戏客户端+GM管理后台+附安裝构建实例教程...