GeoTiff探索成果总结
cixiaoyong@21cn.com
GeoTiff是包含地理信息的一种Tiff格式的文件。记得数月前在CSDN论坛上提问过关于GeoTiff文件读写的问题,回答者了了,偶有回答都限于“只是Tiff文件加几个标签而已……”云云,而当我对此做了一番深入研究之后,发现尽管GeoTiff确实只是Tiff的一种特例,但要遵循规范来用好它却绝不是那么简单,在此我准备将自己的学习做一个小结,以期深入交流。
1 GeoTiff利用Tiff表达Geo(地理)信息的思想
Tiff对GeoTiff的支持已写进Tiff6.0,也就是说,GeoTiff是一种Tiff6.0文件,它继承了在Tiff6.0规范中的相应部分,所有的GeoTiff特有的信息都编码在Tiff的一些预留Tag(标签)中,它没有自己的IFD(图像文件目录)、二进制结构以及其它一些对Tiff来说不可见的信息。
用来描述GeoTiff流行的众多影射参数及类型信息,如果每一个信息都采用一个标签那将至少需要几十甚至几百个标签,这会耗尽Tiff定义的有限的标签资源,另一方面,虽然私有的IFD提供了数千个自由的标签,但也是有限的,因为标签值对不理解的读者来说是不可见的(因为他们不知道IFD_OFFSET标签值指向一个私有的IFD)。
为了避免这些问题,GeoTiff采用一系列的Keys(键)来存取这些信息,这些键在功能上相当于标签,但它处在TIFF上抽象更上一层。准确的说它是一种媒介标签(Meta-Tag)。键与格式化的标签值一起共存,TIFF文件处理其它图像数据。和标签一样,键也有的ID号,范围从0到65535,但不像标签那样,所有键的ID号都可以用于GeoTiff的参数定义上。
2 结构与定义
这些键也称为GeoKeys,所有键都由GeoKeyDirectoryTag标签来索引,该标签就相当于表示Geo信息的键的一个目录。它的结构如下:
GeoKeyDirectoryTag:
Tag = 34735 (87AF.H)
Type = SHO