首页 > > > GDAL的数据模型.pdf

GDAL的数据模型.pdf

GDAL的数据模型.pdf

上传者: deirjie 2014-02-20 评分1 评论0 下载1 收藏10 阅读量556 暂无简介 简介 举报

简介:本文档为《GDAL的数据模型pdf》,可适用于软件工程领域,主题内容包含本文档描述了GDAL的数据模型也就是GDAL数据集能够包含的信息类型和信息的语义。DATASET数据集数据集(由GDALDataset类表示)是一个符等。

本文档描述了 GDAL的数据模型,也就是 GDAL数据集能够包含的信息类型和信息的语义。 DATASET 数据集 数据集(由 GDALDataset类表示)是一个栅格波段数据和所有相关信息的集合。特别的, 数据集有一个应用于所有波段的栅格大小的概念(由像素或者行表示)。数据集也负责所有波段 数据的地理投影转换和坐标定义的任务。数据集本身也能够有相关的元数据信息,由“name/value” 形式的字符对来表示。 注意:GDAL数据集和栅格波段数据模型是建立在 OpenGIS格网数据模型之上的,但这种 关系并不十分紧密。 COORDINATE SYSTEM 坐标系统 Dataset的坐标系统是由 OpenGIS知名的文本字符串来表示的。它包含: 整体坐标系名称 地理坐标系名称 基准标识 椭球体名称,长半轴及扁率 本初子午线名称和从格林威治偏移 投影类型(例如:横轴墨卡托投影) 投影参数列表(例如:中央子午线) 单位,以及转换为米或弧度转换参数 坐标轴的名称和顺序 预定义坐标系统时上述大多数术语所需要的官方代码,例如 EPSG 更多关于 OpenGIS WKT坐标系统的定义信息和操作方法,参见 OSR教程和 OGRSpatialReference类文档。 由 GDALDataset::GetProjectionRef()返回的坐标系统描述了由 GDALDataset::GetGeoTransform()返回的仿射坐标转换的地理坐标信息。由 GDALDataset::GetGCPProjection()返回的坐标系统描述的是 GDALDataset::GetGCPs()返回的控制 点信息。注意:返回的坐标系统字符串若为“”表示地理参考坐标信息为空。 仿射地理坐标转换 GDAL数据集有两种方式描述栅格(由像素/行表示)位置信息和地理参考坐标信息。第一 种也是最常用的一种是仿射变换(另一种是控制点变换)。 仿射转换由 6个转换系数组成,它们通过将图像的像素/行坐标转换到地理参考空间的 GDALDataset::GetGeoTransform()方法返回得到,转换关系如下: Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5) 对于上方为北方的图像,GT(2)和 GT(4)系数值为 0,GT(1)为像素宽,GT(5)为像素高,(GT(0), GT(3))是图像左上角像素位置。注意:上述的像素/行坐标是从左上角像素位置(0.0,0.0)到图像 右下角像素位置,图像宽和高是由像素表示的。因此图像中央位置的像素/行位置应该为(0.5,0.5)。 GCP 控制点 一个数据集可以有一系列的控制点,它们表示栅格坐标向地理参考坐标的一个或多个变换关 系。所有的控制点共用一个地理参考坐标系统(由 GDALDataset::GetGCPProjection()返回)。每 个控制点(表示为 GDAL GCP类)包含如下信息: typedef struct { char *pszId; char *pszInfo; double dfGCPPixel; double dfGCPLine; double dfGCPX; double dfGCPY; double dfGCPZ; } GDAL_GCP; pszId字符应该是数据集控制点集中每个控制点唯一的标识(经常是,但并不总是连续的)。 pszInfo通常为空字符串,但能够包含任何用户定义的与控制点相关的信息文本,同时也可以包 含控制点中的机器可解析信息状态,但这里并未包含。 (像素,行)坐标表示控制点在栅格图像中的位置,(X,Y,Z)坐标表示控制点在地理空间 中的位置,Z值通常为 0。GDAL数据模型并不指定从控制点中提取的转换方法,这是应用程序 应该做的。1到 5阶多项式是常用的方法。通常一个数据集会包含仿射变换信息或者控制点信息, 或者都不包含。两者都包含并不常见,这样就不知道使用哪个。 元数据 GDAL元数据是辅助格式,由名称/值(name/value)的形式保存的应用程序特殊文字数据。 名称(name)需要严格的标记(无空格和生僻的字符),值(value)可以是任意长度、包含除 了字符串 元数据处理系统并不适合处理大体积的元数据。处理数据集中大于 100K的元数据通常会引 发奇怪的问题。 一些格式支持通用(用户定义)的元数据,然而另外一些格式驱动器会匹配特殊的格式字段 到元数据名称上。例如 TIFF格式驱动器返回一些信息标签作为元数据,包括日期/时间字段返回 格式为: TIFFTAG_DATETIME=1999:05:11 11:29:56 元数据被分割成名称的组合,叫做域,默认域没有名称(NULL或者“”)。一些特殊的域 为了特殊的目的存在。注意:目前没有任何方法可以列举出一个对象的所有可用的域,但是应用 程序能够“测试”任何它们知道如何解析的域。 下面的元数据元素包含了默认域中良好定义的语义信息: AREA_OR_POINT::可能是“Area”(默认)或者是“Point”。表示一个像素值是表 示整个像素区域还是用只表在像素区域中央的点值。这并不影响保留了面向区域的地 理参考的解译。 NODATA VALUES:值为一个对应于数据集中波段数目的空间分隔的像素值表示,能 够被用来正确的识别数据集中没有值的像素。利用这种表示空值的方式使得一个像素 在所有波段中当且仅当所有波段的该像素值都满足 NODATA_VALUES元祖。这个元 数据并不被目前的 GDAL驱动器,算法和组织所广泛推荐。 MATRIX_REPRESENTATION:这个值用于极化雷达数据,包含了该数据提供的矩阵 表示。下面的是合法的值: SCATTERING SYMMETRIZED_SCATTERING COVARIANCE SYMMETRIZED_COVARIANCE COHERENCY SYMMETRIZED_COHERENCY KENNAGH SYMMETRIZED_KENNAGH POLARIMETRIC_INTERP:这个元数据元素是为了极化雷达数据的栅格波段而定义的, 表示指定矩阵数据所代表的该波段的入口,例如,这个元素的合法值有 HH、HV、VH、 VV。当数据集是一个协方差矩阵时,这个元数据元素就会是 Covariance_11, Covariance_22, Covariance_33, Covariance_12, Covariance_13, Covariance_23中的一个 (因为矩阵本身就是一个厄米特矩阵,这是描述矩阵所需的全部数据)。 SUBDATASETS DOMAIN 子数据集域 这个子数据集域包含了一个子数据集的列表。通常用于提供指向一个多图像文件中图像列表 的指针。例如,一个包含两幅图像的 NITF文件可能具有下面的子数据集列表 SUBDATASET_1_NAME=NITF_IM:0:multi_1b.ntf SUBDATASET_1_DESC=Image 1 of multi_1b.ntf SUBDATASET_2_NAME=NITF_IM:1:multi_1b.ntf SUBDATASET_2_DESC=Image 2 of multi_1b.ntf _NAME为字符串,能够传入 GDALOpen()函数来接触到文件。_DESC是一个对用户友好的 字符串,能够在选择窗口中对用户显示。支持子数据集的驱动器建议使用 DMD子数据集的功能。 这个信息显示为\-\-格式和\-\-格式传入命令行的实用程序。 目前,支持子数据集的驱动器有:ADRG, ECRGTOC, GEORASTER, GTiff, HDF4, HDF5, netCDF, NITF, NTv2, OGDI, PDF, PostGISRaster, Rasterlite, RPFTOC, RS2, WCS, and WMS。 IMAGE_STRUCTURE 图像结构域 元数据的默认域目的就是连接到图像,不是特别为了连接到图像在硬盘的存储方式。也就是 说,当数据集被拷贝到新的格式时,它适合同数据集一起拷贝存储。一些感兴趣的信息被紧密的 连接到指定的数据格式和存储方式上,为了防止这些信息被同时拷贝到新的格式,定义了一个特 殊的域叫做 IMAGE_STRUCTURE,表明不能被拷贝到新的格式。 目前下面的元素被 RFC 14定义,表示 IMAGE_STRUCTURE域中特殊的语义。 COMPRESSION: NBITS: INTERLEAVE: PIXELTYPE: RPC 域 RPC元数据域包含了描述图像有理多项式系数的地理模型信息,如果有的话。这个地理模 型能够被用于在像素/行和地理参考位置之间转换。这个元素定义的模型为: ERR_BIAS: Error - Bias. The RMS bias error in meters per horizontal axis of all points in the image (-1.0 if unknown) ERR_RAND: Error - Random. RMS random error in meters per horizontal axis of each point in the image (-1.0 if unknown) LINE_OFF: Line Offset SAMP_OFF: Sample Offset LAT_OFF: Geodetic Latitude Offset LONG_OFF: Geodetic Longitude Offset HEIGHT_OFF: Geodetic Height Offset LINE_SCALE: Line Scale SAMP_SCALE: Sample Scale LAT_SCALE: Geodetic Latitude Scale LONG_SCALE: Geodetic Longitude Scale HEIGHT_SCALE: Geodetic Height Scale LINE_NUM_COEFF (1-20): Line Numerator Coefficients. Twenty coefficients for the polynomial in the Numerator of the rn equation. (space separated) LINE_DEN_COEFF (1-20): Line Denominator Coefficients. Twenty coefficients for the polynomial in the Denominator of the rn equation. (space separated) SAMP_NUM_COEFF (1-20): Sample Numerator Coefficients. Twenty coefficients for the polynomial in the Numerator of the cn equation. (space separated) SAMP_DEN_COEFF (1-20): Sample Denominator Coefficients. Twenty coefficients for the polynomial in the Denominator of the cn equation. (space separated) 这些字段直接来自于 GeoTIFF RPC文件,然后被紧密的封装在 NITF RPC00B定义模型中。 XML 域 任何由“xml:”修饰的域名并不是常规的名称/值(name/value)对元数据。它仅仅是单独 的 XML文档存储在一个大的字符串中。 RASTER BAND 栅格波段 栅格波段在 GDAL中通过 GDALRasterBand类表示,代表了一个单独的栅格数据波段/通道/ 图层,它并不需要表示整个图像。例如,一个 24位的 RGB图像通常被表示为红、绿、蓝 3个 波段的数据集。 一个栅格波段含有如下属性: 宽和高(由像素或者行表示),如果是全分辨率的图像,这里的定义与数据集中的定 义一样。 数据类型(GDALDataType),Byte、UInt16、 Int16、 UInt32、 Int32、 Float32、 Float64 和复杂类型 CInt16、CInt32、CFloat32、CFloat64中的一种。 块大小。这是首选(高效)访问的块大小。对于瓦片图像来说就是一个瓦片的大小, 对于行扫描图像来说就是一个扫描线的大小。 名称/值(name/value)对的元数据列表,与数据集中格式一样,但是信息是只指向这 个波段的信息。 描述性字符串(可选)。 无数据的像元值(可选)。 图像掩膜(可选)。 目录名称 (专题图中的类名) (可选)。 最大值和最小值(可选)。 将图像像素值转换为有意义的值时所需要的偏移和比例,例如将图像高度转换为米。 (可选)。 单位名称,例如,表示高程数据的单位(可选)。 波段的色彩描述,值为下面的一种: 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图像的色调波段 GCI_SaturationBand:HLS图像的饱和度波段 GCI_LightnessBand: HLS图像的明度波段 GCI_CyanBand:CMY或 CMYK图像的青色波段 GCI_MagentaBand:CMY或 CMYK图像的品红波段 GCI_YellowBand:CMY或 CMYK图像的黄色波段 GCI_BlackBand:CMY或 CMYK图像的黑色波段 颜色表 较低分辨率的概览图(影像金字塔,如果有的话) 颜色表 颜色表由 0或者更多的颜色描述,如下: 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; 颜色表也有一个描述值(GDALPalettInterp),描述下述值中的一组,表明 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开始递增。没有规定指出在查询颜色表之前如何一个预先制定一个机器颜色。 概览 一个波段可能含有 0个或者更多的概览,每个概览被表示为一个“独立的”GDALRasterBand, 概览的大小(以像素或者行为单位)与波段大小不一样,但覆盖的地理区域与全分辨率波段是一 致的。 概览被用于更快速地显示低分辨率的影像。 波段通常有一个 HasArbitraryOverviews属性,TRUE表示图像能够在任何波段快速的读取, 但是没有截然不同的概览层级。这个被应用与一些 FFT编码的图像,或者通过网关的图像(比 如 OGDI),这些图像能够在遥感阶段快速的向下重采样。

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 7
所需积分:5 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!