admin 管理员组

文章数量: 1184232

本文参考资料

-----------------------------------------------------------------------------

简介

TIF(TIFF)是可扩充标记的文件,为 。

endian翻译为“ ” ,又称 端序 尾序 。在 领域中, 是指存放多字节数据的 (byte)的顺序,典型的情况是整数在 中的存放方式和 的传输顺序。Endianness有时候也可以用指 位序 (bit)。

一般而言, 指示了一个UCS-2 的哪个字节存储在低地址。如果LSByte在MSByte (MSB, Most Significant Byte)的前面,即LSB为低地址,则该 是 小端序 ;反之则是

BIG ENDIAN: 最低位地址存放高位 ,可称高位优先, 从最低地址开始按顺序存放(高数位数字先写)。最高位 放最前面。表示Motorola结构。

LITTLE ENDIAN: 最低位地址存放低位 ,可称低位优先,内存从最低地址开始按顺序存放(低数位数字先写)。最低位字节放最前面。Intel体系。

TIF图像格式概览

TIFF 文件分为文件头、标识信息区( IFD) 以及图像数据区 . 在T IFF6. 0的文件中, 所有的标签必须以升序排列, 应通过这些标签信息来处理文件中的图像数据。

.TIF图由四个部分组成:
1、图像文件头(Image File Header简称IFH):

IFH数据结构包含3个成员共计8个字节,

Byte order成员可能是“MM”(0x4d4d)或“II”(0x4949),0x4d4d表示该TIFF图是摩托罗拉整数格式 0x4949表示该图是

Version成员总是十进制42(0x2a),它用于进一步校验该文件是否为TIF格式,42这个数并不是一般人 想象中的那样认为是tif软件的版本,实际上,42这个数大概永远不会变化;

第三个成员是IFD(接下来要说的第二个数据结构)相对文件开始 处的偏移量。

图像文件目录(Image File Directory简称IFD)

IFD是TIF图中最重要的数据结构,它包含了一个TIF文件中最重要的信息,一个TIF图可能有多个IFD,这说明文件中有多个图像, 每个 IFD 标识 1 个图像的基本属性。 IFD结构中包含了三类成员,

Directory Entry Count指出该结构里面有 多少个目录入口

接下来就是N个线性排列的DE序列,数量不定(这就是 为什么称TIF格式文件为可扩充标记的文件,甚至用户可以添加自定义的标记属性),每个DE标识了图像的某一个属性;

最后就是一个偏移量, 标识下一个文件目录相对于文件开始处的位置 ,当然,如果该TIF文件只包含了一幅图像,那么就只有一个IFD,显然,这个偏移量就等于0.

TIFF 文件由许多标签( T ag) 组成. 在Adobe 的有关TIFF6. 0 的说明中, 将Tag 解释为各种标签所对应的数值, 而在文件中各个标签的实际入口称为域( Field) ,也就是实际存放的信息.

目录入口(Directory Entry简称DE)
共12个字节,见图二。简单说,一个DE就是一幅图像的某一个属性。例如图像的大小、分辨率、是否压缩、像素的行列数、一个像素由几位 表示(1位代表黑白两色,8位代表256色等等)等。其中:

tag 成员是该属性的编号,在图像文件目录中,它是按照升序排列的。我们可以通过读 这些编号,然后到 TIF 格式官方白皮书中查找相应的含义。

type 属性是用 数据 来表示的,那么type就是代表着该 数据的类型 ,TIF官方指定的有5种数据类型。 type=1就是BYTE类型(8位无标记整数

type数据类型

1

BYTE

(8位无符号整数)

2

ASCII

8位字符(7位ASCII码加1位二进制0)

3

SHORT

16位无符号整数(2个字节)

4

LONG

32位无符号整数

5

RATIONAL

2个LONG,第一个是分子,第二个是分母

6

SBYTE

8位有符号整数

7

UNDEFINED

8位字符,可包含任意字符

8

SSHORT

16位有符号整数

9

SLONG

32位有符号整数

10

SRATIONAL

两个有符号长整型,第一个代表分数的分子,第二个代表分母

11

FLOAT

单精度(4字节)

12

DOUBLE

双精度(8字节)

length成员是 数据的数量 而不是数据类型的长度。

valueOffset很重要,它是 tag 标识的属性代表的变量值相对文件开始处的偏移量 。如果变量值占用的空间小于4个字节,那么该值就存放在 valueOffset中即可,没必要再另外指向一个地方了。
1. 0. GeoTiff 支持Tiff 格式的所有标准,它新增的 6个GeoTag 标志 信息

GeoTagPixelScale

GeoTagTiePoint (控制点)

GeoTagTransMatrix (变换矩阵)

GeoTagDirectory (地理信息目录表)、

GeoTagDoubleParams (双精度参数) 、

GeoTagASCIIParams (ASCII 参数)

也存放在Tiff 图像的文件目录( IFD) 中,用来描述图像的地理坐标信息与投影信息。

GeoTiff格式

GeoTagPixelScale(像元比例tag=33550)

目录入口(Directory Entry简称DE)结构12个字节

tag(2字节) 33550

type (2字节)                                    DOUBLE

length (4字节)                              N=3

valueOffset                                       相对于文件的该标签值的偏移量, 必须开始于字,指向域

图像中的某一点在栅格空间中的坐标与在模型空间中的坐标的比例.

格式: GeoTagPixelScale = ( Scale X , Scale Y ,Scale Z) . 该域ID 号33550 ,含3 个double 型字段: X 、Y、Z 3 个方向的比例.

Scale Z 在对应非DEM 数据时,一般为0. 根据图像对应的具体时区,3 个比例值所采用的符号规则为东正、西负,北正、南负,同时3个比例值的符号还受图像是否旋转、变形等的影响.

如ModelPixelScaleTag = (                   100. 0 ,                            100. 0 ,                                0. 0)

GeoTagTiePoint (控制点)

目录入口(Directory Entry简称DE)结构12个字节

tag(2字节) 33922

type (2字节)                                    DOUBLE

length (4字节)                              N=variable

valueOffset                                       相对于文件的该标签值的偏移量, 必须开始于字,指向域

图像中栅格坐标与其对应的模型坐标形成的坐标控制点对. 格式: GeoTagTiePoint = ( ⋯, I , J , K, X , Y , Z , ⋯) . 该域ID号为33922 ,含6 的整数倍个double 型字段. 其中,每6 个数据为一组,前3 个数据为控制点的栅格坐标,后3 个为该控制点的模型坐标.如

ModelTiePointTag = (                      0 ,                       0 ,                  0 ,                  350807. 4 ,                  316081.3 ,                           0. 0)

GeoTagTransMatrix (变换矩阵)

图像中栅格坐标到模型坐标的变换矩阵. 格式:GeoTagTransMatrix= { a , b , c , d ; e , f , g , h ; i , j , k , l ; m , n , o ,p}该域ID 号为34264 ,含有16 个double 型字段. 它可以实现从栅格坐标到PCS(模型坐标系统的投影坐标系) 坐标的直接转化. 如果对二维的非DEM 数据, m= n = o = 0 , p = 1. 若图像没有给出变换矩阵,而已知像元比例和一个Tie 点,则可结算出变换矩阵. 具体方法如下:已知像元比例为( sx , sy , sz) ,TiePoint为( I , J , K, X , Y , Z) . 其中, ( Tx , Ty , Tz) 为矩阵的3 个待定的系数,即变换矩阵= { sx , 0 , 0 , Tx ; 0 ,- sy , 0 , Ty ; 0 , 0 , sz , Tz ; 0 , 0 , 0 , 1} ,则Tx = x -I·sx , Ty = Y + J·sy , Tz = Z - K·sz (如果sz 非0) .

GeoTagDirectory (地理信息目录表tag=34 735)

此tag目录入口(Directory Entry简称DE)结构(12个字节)

GeoKeyDirecto ryTag(别名: ProjectionInfoTag, CoordSystemInfoTag Owner : SPOT Imag e, Inc.)GeoKeyDirector用来存储GeoKey(也称“地理关键字”)目录和部分内容。
),
:
tag(2字节) 34 735 ( 87AF. H)

type (2字节)                                    SHORT                   ( 16位无符号整数(2个字节) ) ,
length (4字节)                              N= v ariable, > = 4,length成员是 数据的数量 而不是数据类型的长度.

valueOffset                                       相对于文件的该标签值的偏移量, 必须开始于字,指向数据域也即GeoKeys。

其中GeoKeyDirectoryTag域用来存储GeoKey(也称“地理关键字”)目录和部分内容,。这个标签是一个SHORT无符号整数的阵列,每四个一组。

第一组中的4个的值很特殊,包含了GeoKey地理关键字目录的头信息(Header)

Header = {版本号,主版本号,副版本号,GeoKey的个数}.

这个头信息之后紧跟的就是关键字项的列表,每一项也包括4个整型变量。关键字项是按照TIFF目录头中的目录项DE的格式构建的。

KeyEntry = { KeyID , TiffTagLocation ,Count ,ValueOffset}.

KeyID 为本Key 的ID 号

在关键字项的定义中,可能还会包括一些其它的值。例如,如果一个关键字需要多个SHORT(整型)值,那么这些值就会放在 标签(域)的末尾 ,关键字项就会设置TIFFTagLocation=GeoKeyDirectorytag,偏移量的值就会指向这些值的位置。

GeoDoubleParamsTag(tag=34736)

tag(2字节) 34 736

type (2字节)                                    DOUBLE 双精度(8字节)

length (4字节)                              N= v ariable,

valueOffset                                       相对于文件的该标签值的偏移量, 必须开始于字,指向GeoDoubleParamsTag域

其中GeoDoubleParamsTag域存储所有的DOUBLE(双精度)类型的地理关键字的值,这个标签中的双精度阵列中的任何值的含义都是由GeoKeyDirectoryTag
中指向这个值的关键字项决定的。单精度的值必须先转换为双精度才能存储。

GeoDoublePar amsTag( 34 736) → ( 1. 5    365.7      782.34)

GeoAsciiParamsTag( tag=34737)

tag(2字节) 34 737

type (2字节)                                    ASCII(8位字符)

length (4字节)                              N= v ariable,

valueOffset                                       相对于文件的该标签值的偏移量, 必须开始于字,指向GeoASCIIParamsTag域

GeoASCIIParamsTag域用来存储所有ASCII类型的GeoKeyDirectoryTag中涉及的GeoKey 值(地理关键字的值)。既然关键字使用的是 标签内 的偏移量,因此在标签的开头就可以放置其他特殊的注释。

描述投影和数据等的文献或参考资料. 由于大量的ASCII 型的值都存储在这一个Tag里面, 每一个GeoKey 的值的空定界符用“| ”来代替, 以此能更清晰地区分和读取各GeoKey 的值, 就像下面这样.GeoAsciiParamsTag = f irst_value| second_value| etc. . . . . . . last_value|

如GeoAsciiPar amsTag( 34737) → ( Custom File| My Geographic| )

示例

举一个例子来具体说明GeoTiff 的编码过程:
ModelTiePointTag = (0 , 0 , 0 , 350807. 4 , 316081.3 , 0. 0)
ModelPixelScaleTag = (100. 0 , 100. 0 , 0. 0)
GeoKeyDirectoryTag :
GTModelTypeGeoKey = 1
GTRasterTypeGeoKey = 1
ProjectedCSTypeGeoKey = 32660
PCSCitationGeoKey = ”UTM Zone 60 N withWGS84”
上述编码说明,这幅GeoTiff 图像含有一个TiePoint = (0 , 0 , 0 , 350807. 4 , 316081. 3 , 0. 0) ,

像元比例为(100. 0 , 100. 0 , 0. 0 ) ,

栅格坐标空间采用的是PixelIsArea ,

模型坐标空间采用了投影坐标系. 类型为PCS-WGS84-UTM- ZONE-60 N ,即使用北60 时区的WGS84 的UTM投影.

本文标签: 字节 个字节 整数