世界文件,图片中的投影
注:本文中所有知识均为转载,但由于查了好多网页,我自己都不知道这些来自哪些网页了
FDO世界文件介绍
世界文件是一个为栅格图像指定地理位置信息的文本文件,该文本文件共有6行,描述了栅格图像的比例尺、旋转信息和插入位置。但是,世界文件并没有指定地理位置所使用的坐标系。
世界文件的文件名有两种命名规范,这两种规范都是利用相关联的栅格文件进行命名。第一种规范是在栅格文件名称之后添加一个字母“w”,第二种规范使用栅格文件扩展名的最后一个字符替换扩展名中的第二个字母,将扩展名的第三个字母替换为“w”。给定一个栅格文件“filename.jpg”,与之相关联的世界文件可以命名为“filename.jpgw”或“filename.jgw”。通常,我们使用第二种命名规范,并且将世界文件和栅格文件放在同一个目录下。
下面,我们来看看世界文件中每一行的含义。 第一行A:在栅格图像所使用的坐标单位下, 每个像素代表的X轴的单位长度 第二行D:栅格图像Y轴的旋转 第三行B:栅格图像X轴的旋转 第四行E:在栅格图像所使用的坐标单位下, 每个像素代表的Y轴的单位长度 第五行C:栅格图像左上角像素中心点的X坐标值 第六行F:栅格图像左上角像素中心点的Y坐标值 |
从上往下数,给定栅格图像的第x行,从左往右数,给定栅格图像的第y列,该像素中心点的坐标值(x’, y’)可以使用如下的公式进行计算:
x’ = Ax + By + C y’ = Dx + Ey + F |
其中,E通常为一个负数值,因为栅格图像的行号是从上往下来计数的。
假设栅格文件“filename.jpg”是一个800′600的栅格文件,它所关联的世界文件“filename.jgw”内容如下:
32.0 0.0 0.0 -32.0 691200.0 4576000.0 |
那么,给定像素点x=171、y=347,那么使用前面所提供的公式我们可以计算得到该像素点中心位置的坐标值为(696672,4565024)。
与JPG/PNG/TIF相关的世界文件是JGW(JPW)/PNW(PGW)/TFW.
在Global Mapper (GM)生成JPG/PNG地图时可以汇出相关的JGW/PGW世界文件及投影文件
(Projection file, PRJ).
需要注意的一点是,对于GeoTiff数据源来说,坐标系统和仿射变换参数有两种存储方式,一种是直接存储在.tif文件内部,这种存储方式是按照tif内部的的键值对方式来存储的。具体的一些细节可以参看这里。官方的说明pdf可以在这里下载。也可以把图像仅仅存储到tif文件中,而把坐标系统和仿射参数什么的单独提取出来,创建两个文件,一个是prj文件,存放WKT坐标系字符串,一个是tfw文件,存放仿射转换参数。
ARCGIS中的.aux文件
ArcGIS中的辅助(auxiliary)文件--扩展名为AUX,是一个用来保存栅格文件自身不能保存的辅助信息的文件,它与栅格文件一起存在同一目录中,文件名与栅格文件一致。
一个栅格数据集的统计信息如果不能保存在自身的栅格文件中,那这些信息就会保存在对应的AUX文件中。AUX在对栅格图层进行第一次统计分析的时候自动创建。如果栅格数据集很大,因为统计分析就需要获取更多的栅格单元,以得到统计结果,那么生成AUX文件的时间也需要长些。AUX文件一旦创建好之后,在以后的生产中,如果需要对应栅格数据集的统计信息,那么就可以直接利用AUX文件中的统计数据了,而不需要重新进行统计运算。
如果一个栅格数据集已经创建了影像金字塔,那么AUX文件也保存影像金字塔(RRD)文件保存路径的指针。在影像金字塔创建好之后,直接利用操作系统的Copy、Cut命令来移动栅格图层(raster),系统软件就会在AUX文件中记录的路径中寻找RRD文件。如果找不到对应的RRD文件,系统则会在栅格文件移动前的目录下寻找RRD文件。如果要赋值或粘贴一个栅格数据集,所以为了保住相关文件的完整,最好使用ArcCatalog或ArcInfo实现,
AUX文件能够保存以下信息:彩色地图信息;直方图或表格;坐标系统;变换信息;投影信息。
如果用户是对栅格数据集所在目录或栅格数据集本身进行读写,那么AUX文件会在源数据集的目录下创建。如果栅格数据集所在文件夹是“只读”,或是栅格数据本身是“只读”,那么AUX文件则会创建在默认的代理文件(proxy
file)路径下。
AUX文件存储的信息,只能由ESRI产品,ERDS或是由RDO/ERaster 库派生出的第三方产品读取。
world 文件配准
MapObjects 采用 world 文件来配准影像数据, 其配准公式为:
X = Ax + By + C
Y = Dx + Ey + F
其中:
X 表示像元在地图上的 X 方向坐标值;
Y 表示像元在地图上的 Y 方向坐标值;
x 表示像元在影像文件中的列数;
y 表示像元在影像文件中的行数;
A 表示影像数据与矢量数据在 X 方向的比例关系;
E 表示影像数据与矢量数据在 Y方向的比例关系, 但它为负值, 这是由于空间坐标系与
影像数据的存储坐标系在 Y方向上相反, 要匹配, 必须将 E 设为负值;
C、F 表示影像数据的左上角点的像元对应的空间坐标的 X、Y 坐标;
B、D 表示影像数据的旋转参数, 但是在 MapObjects2. 0 中不支持影像数据的旋转, 因此
这两个参数的数值是被忽略的, 缺省记录为 0。
world 文件是一个文本文件, 记录的内容包括上述 A、B、C、D、E、F 六个参数, 它们是按顺
序连续记录的。下面举例说明:
10. 00000000000000 A
0. 00000000000000 D
0. 00000000000000 B
- 10. 00000000000000 E
304460. 00000000000000 C
4318980. 00000000000000 F
不同格式影像数据对应的 world 文件的扩展名不同, 表 2. 1 列出了各种格式影像数据
对应的 world 文件的扩展名。