1、GDAL的资料GDAL Data Model即描述一个GDAL data store能够包含的信息的类型。Dataset一个dataset (即一个GDALDataset 对象)是一组相关的raster bands和一些属于它们的公共信息的集合。尤其是dataset有一个适用于它所有bands的关于raster size的概念,它是用pixels 和 lines来描述的。这个dataset也负责它所有bands的地理参考的转换和坐标系统的定义。Dataset本身也可有相关的metadata,即以string形式的一张name/values pairs的列表。注意:GDAL dataset和ra
2、ster band 的数据模型是基于 the OpenGIS GridCoverages specification的。Coordinate SystemDataset的坐标系统是按OpenGIS WKT(Well known Text)的方式来描述的。它包括:* An overall coordinate system name .一个总的坐标系的名称。* A geographic coordinate system name.一个地理坐标系统的名称。* A datum identifier.大地参照系。* An ellipsoid name, semi-major axis, and in
3、verse flattening.参考椭球体,椭球半长轴和。椭球扁率的导数(即a/(a-b))* A prime meridian name and offset from Greenwich. 一个0度经线的名车以及它于本初子午线的偏离程度。* A projection method type (ie. Transverse Merctator). 一个投影类型。* A list of projection parameters (ie. central_meridian ). 一个投影参数的列表。* A units name , and conversion factor to meter
4、s or radians. 一个单位名称以及转化为米或者弧度的转化因子。* Names and ordering for the axes . 轴的名称和排序。* Codes for most of the above in terms of predefined coordinate systems fromauthorities such as EPSG.按照预先定义的权威的坐标系统对上面的大多数信息进行编码。要想获取更多的关于OpenGIS WKT 格式的坐标系统的定义,以及使用它们的方式,可以参考osr_tutorial 文档和OGRSpatialReference 类的文档(OGR库
5、中)。由GDALDataset:GetProjectionRef() 返回的坐标系统描述的是经过仿射几何变换所得的地理坐标参考系,该变换由GDALDateset:GetGeoTransform()所得。由GDALDataset:GetGCPProjection()返回的坐标系统描述的是带控制点的地理参考坐标系,控制点由GDALDateset:GetGCPs()得到。注意:一个返回的带“”的坐标系字符串没有指出任何关于地理参考坐标系统的东西。Affine GeoTransformGDAL datasets 有两种方式描述raster 位置(用 pixel/line 坐标)与地理参考坐标之间的关系
6、。首先,最常用的是the affine transform(the other is GCPS)。The affine transform 包括由 GDALDataset:GetGeoTransform()的六个系数。如把pixel/line coordinate 转化成 georeferenced space 使用如下关系: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)是pixel width,G
7、T(5)是pixel height。(GT(0),GT(3))是raster的左上角pixel的左上角位置。注意:the pixel/line coordinate 上起左上像素的左上角(0.0,0.0),下至右下像素的右下角(width_in_pixels,height_in_pixels)。这样左上像素的中间的pixel/line 位置就是(0.5,0.5)。GCPS一个dataset可以有一个与从raster到georeferenced coordinates的一个或多个位置有关的控制点的集合。所有的 GCPS 共同拥有一个地理参考坐标系统(由GDALDataset:GetGCPProj
8、ection()返回)。每一个GCP由一个GDAL_GCP对象表示,它如下定义:typedef struct char *pszId ; char *pszInfo ; double dfGCPPixel ; double dfGCPLine ; double dfGCPX ; double dfGCPY ; double dfGCPZ ; GDAL_GCP ;pszId字符串被期望是这个dataset里所有GCPS集合里对应每个GCP的唯一标识(常常是但并不总是数字)。pszInfo通常是一个空字符串,但是它可以包括任何用户定义的与GCP有关的文本。潜在的它也能包括机器中关于GCP状态的信息
9、尽管现在还不行。第三、四个成员是GCP在rster中的位置,后三个是相关的地理参考位置(其中Z经常为0)。GDAL数据模型并没暗示GCPS必须产生的转化机制,这个留给具体的应用程序,可是从第一到第五个多项式是常见的。通常地一个dataset将包括一个affine geotransform或GCPS或两者都不包括。两个都有的情况并不常见,哪一种方式更权威并没有明确定义。MetadataGDAL元数据是一种保存为一组name/value pairs列表的辅助格式和应用程序特殊的文本数据。The names 要求有良好的表示行为(没有间隔或单个的字符串)。而the values可以是任何长度以及包括
10、任何东西除了内嵌NULL(ASCIIzero)值。元素据处理系统并不能很好的处理大容量的元素据。为一个dataset处理超过100K的元素据将很可能导致性能的降级。随着时间的推移,将会有一些以建立的语义所定义的著名的names;可是目前还没有。有一些格式将支持一般的(用户自定义的)元素据,而其他一些格式的驱动将把明确的格式属性映射到元数据的names中。比如the TIFF 的驱动就以元数据的方式返回了一些信息标记,包括日期/时间的属性以下面这种形式返回:TIFFTAG_DATETIME = 1999:05:11 11:29:56元素据被切分成称做域的指定的组,缺省的域没有名字(NULL或“”
11、)。一些特殊的域为一些特殊的目的而存在。注意:目前无法对一个给定的对象列举出所有可用的域,但是应用程序能够对它们知道如何解释的任何域进行测试。SUBDATASETS DomainThe SUBDATASETS域保存了一份子datasets的列表。通常这被用来提供指针指向单张多影像文件所存储的影像列表(比如HDF或NITF)。比如,一个含有四张images的NITF可能有如下的subdataset list.SUBDATASET_1_NAME=NITF_IM:0:multi_1b.ntf SUBDATASET_1_DESC=Image 1 of multi_1b.ntf SUBDATASET_2
12、_NAME=NITF_IM:1:multi_1b.ntf SUBDATASET_2_DESC=Image 2 of multi_1b.ntf SUBDATASET_3_NAME=NITF_IM:2:multi_1b.ntf SUBDATASET_3_DESC=Image 3 of multi_1b.ntf SUBDATASET_4_NAME=NITF_IM:3:multi_1b.ntf SUBDATASET_4_DESC=Image 4 of multi_1b.ntf SUBDATASET_5_NAME=NITF_IM:4:multi_1b.ntf SUBDATASET_5_DESC=Imag
13、e 5 of multi_1b.ntf _NAME的值是能够被传给GDALOpen()访问那个文件的字符串。_DESC的值被用作为能够在一个选择器中显示给用户的更友好的字符串。 IMAGE_STRCTURE Domain 缺省域中的元数据与影像有关,但是并不特别的与影像存储在磁盘上的方式有关。也就是说,当dataset被复制成另一种格式时它是适合的。一些感兴趣的信息与特定的文件格式和存储机制有紧密联系。为了防止它们随着数据集一起被复制,它们被存放在一个叫做IMAGE_STRCTURE的特殊的域,这个域将不会正常的被复制到一中新的格式中。 出现在IMAGE_STRCTURE域中的一个条目就是用于
14、这种格式的压缩的配置(OR摘要信息)。这个元素据条目名称是COMPRESSION,但是其值对不同的格式是不同的。 xml:Domains 任何以xml为前缀名的域都不是通常的name/value元素据。它只是存储为一个长字符串的XML文档。 Raster Band 一个raster band在GDAL中是用一个GDALRasterBand对象表示的。它代表一个单独的raster band/channel/layer.它不必要表示整个影像。比如,1张24位的RGB影像将通常被表示为一个具有3个bands的datasets,分别表示红,绿,蓝。 一个raster band有如下属性: * A wi
15、dth and height in pixels and lines. This is the same as that defined for the dataset, if this is a full resolution band. * A datatype (GDALDataType). One of Byte, UInt16, Int16, UInt32, Int32, Float32, Float64, and the complex types CInt16, CInt32, CFloat32, and CFloat64. * A block size. This is a preferred (efficient) access chunk size. For tiled images this will be one tile. For scanline oriented images this will normally be one scanline. * A list of name/value pair metadata in the
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1