GDAL数据模型
Geodatabase数据模型概述精品PPT课件

Shapefile至少由.shp、 . Shx、.dbf三个文件组成: .shp——储存地理要素的几何关系的文件 .shx——储存图形要素的几何索引的文件 .dbf——储存要素属性信息的dBase文件(关系数据库文件)
有时还会出现以下文件:
.sbn——当执行类似选择“主题之主题”,“空间连接”等操作,或者对一个 主题(属性表)的shape字段创建过一个索引,就会出现这个文件; .ain和.aih——储存地理要素主体属性表或其他表的活动字段的属性索引信息 的文件。当执行过“表格链接(link)”操作,这两个文件就会出现。 .prj——坐标系定义文件 .shp.xml——元数据文件
(第3代)
第2讲 Geodatabase数据模型概述
4
1. CAD数据模型 (第1代)
1. 以二进制文件格式存储地理数据; 2. 以点、线和面的形式表达; 3. 这些文件中只能保存极少的属性信息,地图图层
和注记是主要的属性表达方式;
第2讲 Geodatabase数据模型概述
5
2. coverage/Shapefile数据模型 (第2代)
空间数据统一存储
所有的空间数据(空间数据及属性数据)由一个(关系)数据库存储和集中管理;
空间数据录入和编辑更加精确
大多数错误可以通过验证规则或智能验证行为加以防止,因而错误几乎不会出现;
用户操作更直观的对象
经过适当的设计,Geodalabase包含的数据对象可与用户数据的模型保持一致,用户操作的 不再是通常的点、线和多边形,而是他们感兴趣的对象,比如变压器、道路和湖泊等;
Geodatabase数据模型无需编写代码,通过ArcInfo提供的域、 验证规则及其它功能可轻松实现大部分自定义行为 (仅建模特 殊的要素行为时才需编写代码)。
OGR介绍

第四步: 从获取的层中读取各种实体(feature)。
OGRFeature *poFeature; //定位至开头 poLayer->ResetReading(); while( (poFeature = poLayer->GetNextFeature()) != NULL ) {
最后一步: 释放资源 OGRFeature::DestroyFeature( poFeature ); OGRDataSource::DestroyDataSource( poDS );
OGRFeature::GetGeometryRef()返回的是 OGRFeature中数据的的指针, 因此用完之 后我们不能删除 poGeometry指针对应内容。 OGRLayer::GetNextFeature() 返回的是层中 当前实体的一个拷贝,因此在使用完 poFeature之后必须手工释放。 OGRDataSource::GetLayerByName() 返回的 OGRLayer是OGRDataSource中数据的引用, 因此我们可以不用delete它。但是我们需要 删除OGRDataSource本身,这样才会关闭文 件。
OGR实例
假设读取一个名为point.shp的shapefile格式 文件中的POINT层数据并输出至STDOUT。 第一步: 调用OGRRegisterAll(); 注册所有格式的驱动
第二步: 打开用于输入的数据源(Datasources)。 Datasources可以是文件、RDBMSes、 目录中 的所有文件或者是被连接到本机的 web地址。 OGRDataSource *poDS; poDS = OGRSFDriverRegistrar::Open( "point.shp", FALSE ); 第二个参数FALSE表示Open()方法并不需要更 新的权限。 如果操作失败,则会返回NULL
osgEarth编译环境配置

中国西安OSGEARTH三维地形开源项目项目使用手册XComs2011-11-4[在此处键入文档的摘要。
摘要通常是对文档内容的简短总结。
在此处键入文档的摘要。
摘要通常是对文档内容的简短总结。
]前言本书主要基于OSGEarth v2.0版本进行编写,以vs2010主要编译工具,windowsXP 作为运行平台。
根据实际项目需求编写,主要目录前言 (2)第一章OSGEarth介绍 (5)第二章OSGEarth编译环境配置 (5)第一节OSGEarth V2.0相关资源 (5)第二节Open Scene Graph安装与配置 (6)2.1 CMake介绍与安装 (6)2.2 Open Scene Graph介绍 (7)2.3 Open Scene Graph 安装 (8)第三节CURL安装与配置 (18)3.1 CURL介绍 (18)3.2 CURL编译 (19)第四节GDAL安装与配置 (20)4.1 GDAL介绍 (20)4.2 GDAL编译 (21)第五节GEOS安装与配置 (23)5.1 GEOS介绍 (23)5.2 GEOS编译 (23)第六节Expat安装与配置 (29)6.1 Expat介绍 (29)6.2 Expat配置 (29)第七节SQLite安装与配置 (30)7.1 SQLite介绍 (30)7.2 SQLite编译与配置 (30)第八节Minizip安装与配置 (32)8.1 MiniZip介绍 (32)8.2 MiniZip的编译与配置 (32)第九节Virtual Planet Builder安装与配置 (33)9.1 Virtual Planet Builder介绍 (33)9.2 Virtual Planet Builder编译 (34)最后其他资源的配置 (42)X.1 Open Scene Graph 第三方支持库 (42)X.2 libzip库 (43)X.3 Osgearth资源下载 (43)第三章OSGEarth编译 (46)第一节sln生成 (46)1.1 CMAKE配置 (46)1.2 VS2010配置 (52)第二节OSGEarth编译与测试 (54)2.1 OSGEarth编译 (54)2.2 OSGEarth测试 (56)第四章OSGEarth学习 (57)第一章OSGEarth介绍第二章OSGEarth编译环境配置OSGEarth的编译环境配置随着版本的不同、运行平台的不同,也有很大的差异。
GDAL源码剖析(一) - 李民录的专栏

前言:一直在使用和研究GDAL的相关东西,发现网上对GDAL的内容倒是不少,但是很少有系统的介绍说明,以及内部的一些结构说明,基于这些原因,将本人的一些粗浅的理解放在此处,形成一个系列,暂时名为《GDAL源码剖析》(名称有点大言不惭,欢迎大家口水吐之,板砖拍之),供大家交流参考,有什么错误之处,望大家不吝指正,本系列对于GDAL 的使用均是在Windows平台下,对于Linux平台下的不在此系列讨论范围之内。
此外,转载本博客内容,请注明出处,强烈鄙视转载后不注明出处的“类剽窃”行为。
一、GDAL简介GDAL官方网站/,本文章中的基本内容都是参照官网中的信息,如有错误或者与官网中的内容冲突,以官网中的为正确。
在开始文章之前,我想先提出几个问题,什么是GDAL?GDAL能做什么?GDAL怎么使用?GDAL内部结构是怎么组织的?GDAL提供的算法原理是什么?对于上面的几个问题,希望大家看完该系列文章后能对上面的几个问题少点疑惑,希望能对感兴趣的童鞋们有所帮助。
本人不才,文章中难免会出现问题,希望大家不吝指正。
什么是GDAL?这个问题比较简单,通俗的讲,GDAL是一个读写空间数据(这里的空间数据包括栅格数据和矢量数据)的开源库(但不仅限于此,此外还提供了一些非常常用的算法和工具)。
严格的讲,大家可以参考GDAL首页上的介绍。
GDAL is a translator library for raster geospatial dataformats that is released under an X/MIT style Open Source license by the Open Source Geospatial Foundation. As alibrary, it presents a singleabstract data model to the calling application for allsupported formats. It also comes with a variety of useful commandline utilities fordata translation and processing. The NEWS page describes the July 2011 GDAL/OGR 1.8.1 release.The related OGR library(which lives within the GDAL source tree) provides a similar capability forsimple features vector data.二、GDAL目录结构首先对于GDAL的目录结构进行一个简单的介绍。
Geodatabase数据模型

Geodatabase数据模型1 Geodatabase概念Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统一的、智能的空间数据模型。
“统一”是指,Geodatabase之前的多个空间数据模型都不能在一个统一的模型框架下对地理空间要素信息进行统一的描述,而Geodatabase做到了这一点;“智能化”是指,在Geodatabase模型中,对空间要素的描述和表达较之前的空间数据模型更接近我们的现实世界,更能清晰、准确地反映现实空间对象的信息。
GeoDatabase的设计主要是针对标准关系数据库技术的扩展,它扩展了传统的点、线和面特征,为空间信息定义了一个统一的模型。
在该模型的基础上,使用者可以定义和操作不同应用的具体模型,例如交通规划模型、土地管理模型、电力线路模型等。
GeoDatabase为创建和操作不同用户的数据模型提供了一个统一的、强大的平台。
由于Geodatabase是一种面向对象的数据模型,在此模型中,空间中的实体可以表示为具有性质、行为和关系的对象。
Geodatabase描述地理对象主要通过以下以下四种形式:(1)用矢量数据描述不连续的对象;(2)用栅格数据描述连续对象;(3)用TINs描述地理表面;(4)用Location或者Address描述位址。
Geodatabase还支持表达具有不同类型特征的对象,包括简单的物体、地理要素(具有空间信息的对象)、网络要素(与其他要素有几何关系的对象)、拓扑相关要素、注记要素以及其他更专业的特征类型。
该模型还允许定义对象之间的关系和规则,从而保持地物对象间相关性和拓扑性的完整。
2 Geodatabase体系结构Geodatabase以层次结构的数据对象来组织地理数据。
这些数据对象存储在要素类(Feature Classes)、对象类(0bject classes)和数据集(Feature datasets)中。
gdal 矢量转栅格

gdal矢量转栅格1. 简介gdal(Geospatial Data Abstraction Library)是一个开源的地理空间数据处理库,提供了对各种栅格和矢量数据格式的读写、转换和分析功能。
其中,矢量转栅格是gdal库的一个重要功能,用于将矢量数据转换为栅格数据,方便进行地理空间分析和可视化。
本文将介绍gdal矢量转栅格的基本原理、常用参数和使用方法,以及一些常见的应用场景。
2. 原理矢量数据是由点、线、面等几何要素和属性数据组成的地理数据,而栅格数据是由像素组成的二维网格数据。
矢量转栅格就是将矢量数据中的几何要素和属性数据映射到栅格数据中的像素上。
矢量转栅格的基本原理如下:1.确定栅格的空间范围和分辨率:栅格数据需要指定空间范围和像素分辨率,以确定栅格的几何特征和像素大小。
2.将矢量数据转换为栅格数据:根据栅格的空间范围和分辨率,将矢量数据中的几何要素映射到栅格像素上,并根据属性数据确定像素的值。
3.生成栅格数据文件:将栅格数据保存为常见的栅格数据格式,如GeoTIFF、JPEG、PNG等。
3. 常用参数gdal矢量转栅格提供了丰富的参数选项,可以根据实际需求进行调整。
以下是一些常用的参数:•-a: 指定要转换的属性字段,默认为全部属性字段。
•-tr: 指定栅格的像素分辨率,格式为xres yres,单位为地理坐标单位。
•-te: 指定栅格的空间范围,格式为xmin ymin xmax ymax,单位为地理坐标单位。
•-ot: 指定栅格的数据类型,如Byte、Int16、Float32等。
•-co: 指定输出栅格文件的创建选项,如压缩、块大小等。
•-of: 指定输出栅格文件的格式,如GeoTIFF、JPEG、PNG等。
以上参数只是常见的一部分,更多参数可以通过gdal_rasterize --help命令查看。
4. 使用方法gdal矢量转栅格的使用方法如下:1.安装gdal库:gdal是一个开源的库,可以通过源码编译或者包管理器安装。
gdal.wrap 原理 -回复
gdal.wrap 原理-回复GDAL (Geospatial Data Abstraction Library) 是一个开源的地理信息系统(GIS) 库,用于读取、写入和处理各种栅格和矢量地理数据格式。
gdal.wrap 是GDAL 的Python 绑定之一,它提供了简单而灵活的方式来使用GDAL 功能。
gdal.wrap 原理即是通过Python 语言调用GDAL 的C/C++ 接口。
下面,我们将一步一步详细回答关于gdal.wrap 原理的问题。
1. 什么是gdal.wrap?gdal.wrap 是一个Python 模块,它作为GDAL 的一个封装库,提供了一种使用GDAL 函数的便捷方式。
通过调用gdal.wrap 提供的函数和类,可以方便地读取、写入和处理栅格和矢量数据。
2. GDAL 的基本工作原理是什么?GDAL 的基本工作原理是通过驱动程序(Driver) 来读取和写入不同的地理数据格式,如GeoTIFF、Shapefile、NetCDF 等。
GDAL 使用不同的驱动程序来处理不同的格式,将这些不同格式的数据转换为统一的中间数据模型,并通过GDAL 的函数和类提供对这些数据的访问和处理。
3. gdal.wrap 是如何与GDAL 的C/C++ 接口交互的?gdal.wrap 使用ctypes 模块来实现与GDAL 的C/C++ 接口的交互。
ctypes 是Python 提供的一个标准库,它允许Python 代码调用和使用动态链接库的函数和全局变量。
gdal.wrap 使用ctypes 将Python 代码中的函数和参数传递给GDAL C/C++ 接口,并获取返回的结果。
4. 使用gdal.wrap 的步骤是什么?使用gdal.wrap 的步骤主要包括导入模块、打开数据集、读取或写入数据、关闭数据集。
下面是详细的步骤:- 导入模块:首先,需要导入gdal 模块,这样我们才能使用其中的函数和类。
基于gdal的ads100推扫式像片数据自动生成
Vol.33 No.11November2019第33卷第11期2019年11月北京测绘BejngSurvey(ngand Mapp(ng引文格式:刘建明,高照根,于宁,等•基于GDAL 的ADS100推扫式像片数据自动生成北京测绘,2019,33 (11):1374-13778DOI :10. 19580/j. cnki. 1007-3000. 2019. 11. 019基于GDAL 的ADS100推扫式像片数据自动生成刘建明 高照根 于 宁 田茂荣 杜 冲(山东省国土测绘院,山东济南250013)[摘要]ADS100推扫式数码航摄仪广泛应用于遥感影像获取,国家基础地理信息中心为提高航空摄影资料科学管理水平,针对推扫式资料整理工作提出指导标准$像片数据作为重要资料列入提交成果序列, 当前生产ADS100推扫式像片方式需经过多步骤处理,需大量人工操作,过程复杂且效率低下,本文深入分析推扫式像片数据生产规范,提出基于GDAL 的ADS100推扫式像片数据自动生成方案,并基于Visual Stu dio 平台开发出像片自动生成软件,可大幅提高推扫式像片数据生产效率,为ADS100数据提交提供保障$[关键词]推扫式数码航摄仪(ADS100) %推扫式像片数据;栅格空间数据转换库(GDAL );影像裁切[中图分类号]P231 [文献标识码]A 0引言为保证航空摄影产品的质量,提高航空摄影资料科学管理水平和航空摄影资料分发服务效 率,必须对所有航空摄影资料的文档格式、数据 格式、以及包装和注记进行规范化,保证航空摄 影成果资料格式的统一!1"(国家基础地理信息中 心针对推扫式影像成果资料整理提出指导标准,像片数据指摄影数据经抽稀后用于印制纸质像片的 电子数据。
ADS100数码航摄仪作为新型推扫航摄仪,其像片裁切及标注一直没有商业软件提供支持,当前处理办法主要依靠多步骤衔接,大量人工 操作,流程复杂而且十分耗时。
影像数据格式访问开源包GDAL
)ቤተ መጻሕፍቲ ባይዱ
注意:性能可能不高。如果是读数据,必须分配足够的内存给pData。本函数会 自动根据eBufType进行类型转换。
像素坐标和地理坐标仿射转换
• 获取转换系数: • 转换函数
double a[6]; GDALGetGeoTransform( hDataset, a );
void World2Pixel(double a[6], double x, double y, int* r, int* c) { *r = (int)((a[4]*x - a[1]*y - a[4]*a[0] + a[1]*a[3])/ (a[4]*a[2] - a[1]*a[5])); *c = (int)((a[5]*x - a[2]*y - a[5]*a[0] + a[2]*a[3])/ (a[5]*a[1] - a[2]*a[4]));
获取波段基本信息
• GDALGetRasterBandXSize • GDALGetRasterBandYSize • GDALGetRasterDataType • GDALGetRasterColorTable • GDALGetDefaultRAT
按块(block)读写栅格数据
• 按block读写可以获得很高的性能 • GDALGetBlockSize:获取一个标准block的大小( • • •
横向和纵向像素数) ReadBlock:读一个block WriteBlock:写一个block 计算block数目:
GDALGetBlockSize(hBand, &nXBlockSize, &nYBlockSize ); nXBlocks = (GDALRasterBandGetXSize(hBand) + nXBlockSize - 1) / nXBlockSize; nYBlocks = (GDALRasterBandGetYSize(hBand) + nYBlockSize - 1) / nYBlockSize;
基于Geodatabase构建空间数据模型
工具
工具箱 功能
行为
GeoDatabase空间数据模型
拓扑Topology
Arcgis10新增6类拓扑,
ArcMap
•不同要素类之间(水井与地下水源)
由规则定义
2
规则
1 A
数据
3
B
•同一要素类不同要素之间(堤段之间的手拉手关系)
Geodatabase
GeoDatabase空间数据模型
属性域Domain
等。
GeoDatabase空间数据模型
Schema
XML文件转成GDB GDB输出成XML
如何构建空间数据模型
如何构建空间数据模型
步骤
如何构建空间数据模型
要素分类
基于业务梳理空间数据模型基本数据结构
逻辑分类(Feature Dataset)
形式上:水利工程、水利资源、自然资源……
……
空间要素与非空间要素间关系
空间要素挂接属性表
如何构建空间数据模型
数据入库顺序确定
合理的数据入库顺序,符合实际应用
先有河道,后有闸;河在闸在。 要素分主次,入库有先后。
如何构建空间数据模型
数据入库顺序确定
空间要素间关系具备继承性
流域关联河道,河道关联闸、取水口、排污口 等设施。 流域也将与闸等水利设施存在关联关系。 逐级继承。
如何构建空间数据模型
数据入库顺序确定
要素关系确定是唯一前置条件
建立关系最多的要素值得关注,如,水系轴线。 建立关系越复杂,越应该考虑提前入库。
人为判断必不可少
如何构建空间数据模型
模型具体设计
ArcGIS桌面建模
利用ArcCatalog构建模型,ArcMap验证模型。 Personal GDB和File GDB是优秀的空间数据模型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/gdal_datamodel.htmlGDAL数据模型翻译:cuckoo321(wow-GIS) QQ:27949218本文档主要介绍GDAL的数据模型。
它指出了包含GDAL数据存储和语义信息。
数据集一个数据集(用GDALDataset来表示)是一个包含一系列相关的波段和这些波段的共有信息的集合。
特别是数据集有一个适用于它的所有栅格波段的栅格大小(在象素和线性上)的概念。
数据集也负责所有波段的地理参考转换和坐标系统定义。
数据集也可以有自己的元数据,是一个字符串形式的名字或值的列表。
坐标系统数据集的坐标系统用OpenGIS Wellknown Text(wkt)字符串来表示。
它包括:✓一个全局的坐标系统名字✓一个地利坐标系统的名字✓一个数据识别器✓一个椭球体的名字,长半轴,扁率✓本初子午线的名字和它到格林尼治的偏移量✓投影类型(比如:横轴墨卡托投影)✓投影参数(比如:中央子午线)✓单位名字,以及到米或弧度的转换因数✓各轴的名字和顺序✓由授权单位(象EPSG)预先定义的大多数坐标系统的代码想了解更多关于OpenGIS WKT坐标系统定义的信息,并机械的操纵他们,请参考osr_tutorial文档或OGRSpatialReference类的文档。
由GDALDataset::GetProj ectionRef()返回的坐标系统描述了地理参考坐标,这个地理参考坐标隐含于GDALDataset::GetGeoTransform()返回的仿射地理参考变换。
GDALDataset::GetGCPProj ection()返回的坐标系统描述了由GDALDataset::GetGCPs()返回的GCPs地理参考坐标系。
注意:返回的坐标字符串为空””表明地理参考为未知。
仿射地理变换GDAL用两种方式描述栅格位置(象素坐标或线坐标)和地理参考坐标的关系。
第一种也是最普遍应用的一种是仿射变换(另一种是GCPs)。
放射变换由GDALDataset::GetGeoTransform()返回的六个系数构成,它用如下的关系式将象素/线坐标映射到地理参考空间:Xgeo = GT(0) +Xpixel*GT(1) + Yline*GT(2)Ygeo = GT(3) +Xpixel*GT(4) + Yline*GT(5)对于north up(向下排列的?)图象,GT(2)和GT(4)都是零,GT(1)是象素宽,GT(5)是象素高,(GT(0),GT(3))表示栅格左上角象素的左上角坐标。
注意:上面的象素和线坐标都是从左上角象素的左上角坐标(0.0,0.0)到右下角象素的右下角坐标(象素宽,象素高)。
左上角象素/线的中心位置则是(0.5,0.5). GCPs一个数据集可以包含关联栅格到地理参考坐标系的一个或多个位置的一套控制点。
所有的GCPs公用一个地理参考坐标系统(由GDALDataset::GetGCPs()返回的)。
每个GCP(由GDAL_GCP类表示)包含:typedef struct{char *pszId;char *pszInfo;double dfGCPPixel;double dfGCPLine;double dfGCPX;double dfGCPY;double dfGCPZ;} GDAL_GCP;字符串pszId是由唯一标识该数据集的这套GCPs中的一个GCP点(通常是数字,但不一定总是数字)确定的。
pszInfo通常是空串,但它可以包含用户定义的与该GCP关联的任意文本。
潜在地,它可以包含GCP状态的机械部分的信息,虽然现在还没有做到。
(Pixel,Line)是GCP在栅格中的位置。
(X,Y,Z)是GCP对应的地理参考位置,Z通常为零。
GDAL数据模型并没有包含由GCPs确定的变换机制…它留给了应用程序。
尽管如此,第一到第五的多项式是通用的(However 1st to 5th order polynomials are common.)。
通常情况下一个数据集包含仿射变换或GCPs中的一个或者二者都不包含。
它几乎不会同时包含两个,却可以包含未定义的。
元数据GDAL元数据是以一系列名称对或值对构成的列表表示的特定数据的辅助信息和应用。
这些名称必须是严密组合的(没有空格或奇怪的字符)。
而值可以是任意长度,可以包含除了嵌入的空值(ASCII zero)之外的anything。
元数据处理系统并不能处理很大量的元数据体。
处理100K以上的元数据可能导致执行很低效。
随着时间的推移,将会根据已建立的语义定义广为人知的名称;但目前尚未定义。
有些格式将支持普通的(用户定义的)元数据,另有一些格式的驱动能映射特定格式域到元数据名称。
例如,TIFF驱动返回少量消息标签包括日期/时间等作为元数据:TIFFTAG_DATETIME=1999:05:11 11:29:56元数据被分割到各指定的组(或称域,domain),默认的域没有名称(NULL,或””)。
特定的域为了特定的目的而存在。
注意,现在还没有办法对于一个给定的对象列举出所有有效的域,但应用程序可以为各个域做检测,知道怎样解译。
次数据集域SUBDAT ASETS DomainSUBDA T ASETS域是子数据集列表。
它通常用来提供指向某个单一的多图象文件(a single multi file)(象HDF或者NITF文件)的指针。
例如,下面是一个有4个图像的NITF 文件的子数据集列表:SUBDATASET_1_NAME=NITF_IM:0:multi_1b.ntfSUBDATASET_1_DESC=Image 1 of multi_1b.ntfSUBDATASET_2_NAME=NITF_IM:1:multi_1b.ntfSUBDATASET_2_DESC=Image 2 of multi_1b.ntfSUBDATASET_3_NAME=NITF_IM:2:multi_1b.ntfSUBDATASET_3_DESC=Image 3 of multi_1b.ntfSUBDATASET_4_NAME=NITF_IM:3:multi_1b.ntfSUBDATASET_4_DESC=Image 4 of multi_1b.ntfSUBDATASET_5_NAME=NITF_IM:4:multi_1b.ntfSUBDATASET_5_DESC=Image 5 of multi_1b.ntf*_NAME的值是一个字符串,由它可以通过GDALOpen()进入文件。
*_DESC值是一个对多用户而言友好的字符串(a more user friendly string),它能够显示给选中的用户看。
图象结构域IMAGE_STRUCTURE Domain默认域里的元数据是由相关的图象确定的,并不明显的与图象在磁盘上的存储方式有关。
也就是说,当需要拷贝为一种新的格式时,它是适用于拷贝数据集的。
一些感兴趣的信息与特定的文件格式和存储机制紧密相联。
一种被称为图象结构的特定域可以用来防止这些信息随着数据集拷贝到新的格式。
xml: Domains任何以” xml:”为域名前缀的域都不是普通的名称/值元数据。
它是以一个大字符串存储的单个XML文档。
栅格波段在GDAL中GDA LRasterBand类代表一个栅格波段。
它可以表示一个单一的栅格波段、通道、或图层。
它不一定代表一个完整的图象。
比如,一个24bit的RGB图象通常是由一个包含红、绿、蓝三个波段的数据集组成。
一个栅格波段具有如下属性:✓一个象素上和线形上的宽度和高度,如果这是一个全分辨率的波段,这和在数据集类中定义的一样;✓数据类型(GDALDataType),单一类型Byte,UInt16, UInt32, Int32, Int16, Float32, Float64, 复合类型CInt16,CInt32,CFloat32,CFloat64;✓块的大小,是首选的(高效)读取块大小的通道。
对于瓦片图象,它是一块瓦片大小。
对于扫描线排列的图象,它常常是一条扫描线。
✓由名称对/值对组成的一个元数据列表,同数据集中的格式一样,但它包含的信息是本波段特有的;✓一个可选的描述字符串;✓一个可选的目录名列表(尤其是专题图象中的类别名);✓可选的最小最大值;✓可选的偏移量和变换栅格值到平均明暗度的比例尺(如把高度变成米);✓波段的颜色解译,可以是下列之一:✧GCI_Undefined:默认的,未知的✧GCI_GrayIndex:独立的灰度图✧GCI_PaletteIndex:该栅格表示颜色表中的索引值✧GCI_RedBand:该栅格表示RGB或RGBA图象的红色分量✧GCI_GreenBand:该栅格表示RGB或RGBA图象的绿色分量✧GCI_BlueBand:该栅格表示RGB或RGBA图象的蓝色分量✧GCI_AlphaBand:该栅格表示RGB或RGBA图象的alpha分量✧GCI_HueBand:该栅格表示HLS图象的色调hue✧GCI_SaturationBand:该栅格表示HLS图象的饱和度Saturation✧GCI_LightnessBand:该栅格表示HLS图象的亮度✧GCI_CyanBand:该栅格表示CMY或CMYK图象的青色分量Cyan✧GCI_MagentaBand:该栅格表示CMY或CMYK图象的品红分量Magenta✧GCI_Y ellowBand:该栅格表示CMY或CMYK图象的黄色分量Y ellow✧GCI_BlackBand:该栅格表示CMY或CMYK图象的黑色分量Black✓一个颜色表,稍后将描述✓金字塔overview减少的分辨率标识(如果有效的话)颜色表颜色表是由零值或更多的颜色实体表示的如下的C语言结构:typedef struct{ /---gray, red, cyan, or hue ---/short c1;/---green, magenta, or lightness ---/short c2;/---blue, yellow, or saturation---/short c3;/--- alpha or blackband ---/short c4;}GDALColorEntry;颜色表也有一个调色板解译值(GDALPaletteInterp),可以是如下值之一,它表明如何解释c1/c2/c3/c4的意义:GPI_Gray: 用c1作灰度值GPI_RGB: 用c1作红色,c2作绿色,c3作蓝色,c4作alphaGPI_CMYK: 用c1表示青色,c2是品红色,c3是黄色,c4是黑色GPI_HLS: c1是色调,c2是亮度,c3是饱和度要关联一个颜色和一个栅格象素,象素值要写在颜色表的下面。