免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 6707|回复: 16
收起左侧

[工程技术] 一个牛人写的坐标转换的文章 大家可以抽时间读读

  [复制链接]

17

主题

1604

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
385
发表于 2012-12-10 23:55 | 显示全部楼层 |阅读模式
转:坐标转换那些事儿
在GIS中,最基础(basic)、最关键(essential)的部分应该就是坐标系(coordinate)了,或者说空间参考(spatial reference)。只有明确了空间参考,才能正确地确定地物的空间位置、度量地物之间的空间关系,以及发挥GIS融合多源数据的功能,等等。显然,空间参考是GIS的一个根本问题。
在实际工作中,当你准备用GIS来完成一项任务时,如果你手头上数据的空间参考是正确一致的,至少基准面(datum)是正确并一致的。那么恭喜你,你基本上可以跳过坐标转换这一道坎了,可以直接使用GIS软件进行数据处理与分析了。如果空间参考是不一致的,甚至是没有空间参考的数据,那该怎么办呢?显然是要定义一个空间参考,甚至还要进行坐标转换,在一致的坐标系下才能进行后续的工作。还有,矢量、栅格数据在进行坐标转换时的原理与操作又是一致的吗?
前面废话了比较多,其实我就是想谈一谈坐标转换的问题。很基础,也不会完全正确,但应该有点用处。
矢量数据坐标转换先来看一张矢量数据坐标转换的流程图:

(矢量数据坐标转换流程图 v0.1)
这个是我自己定义的,有点诚惶诚恐。如果接触过坐标转换,或者对GIS中的空间参考概念了解的话,我想这张图应该表达的比较清楚了。当然还有几点需要特别说明下:
(1)空间参考“已有”、“已知”的区别。“已有”说明数据是有坐标文件的,比如Shapefile数据有prj文件,而且“已有”当然“已知”了。但是“已知”并不一定“已有”,比如一份Shapefile数据知道是WGS84空间参考,但是没有prj文件,这样的情况需要重新给数据定义(define)空间参考。
(2)PCS与GCS,PCS是Projected Coordinate System的缩写,GCS是Geographic Coordinate System的缩写。PCS定义在一个GCS之上(Web Mercator比较特别,可以参考这里),GCS定义在一个Datum(大地基准面)之上,Datum又是Ellipsoid(地球椭球体)经过椭球定位、定向之后的产物,Ellipsoid就是通过长短半轴去描绘地球形态的光滑椭球体了。
(3)“N参数拟合”的说明。当有一份数据并不知道其空间参考时,这时就需要根据坐标数据的大小、范围等因素去推测原始坐标系,找到准确的同名控制点,再根据经验选择一个合适的物理模型,例如:仿射变换六参数,N阶多项式变换。之后进行模型参数求解,最后就是计算坐标了。特别是小范围城市级别的坐标转换,一般使用仿射变换就能满足普通需求了。这整个流程,我概括为“N参数拟合”。另外,这有点类似于ArcGIS中Spatial Adjustment工具条做的事情。
(4)“基准面不一致”的说明。当基准面不一致时,才要真正考虑到坐标转换(convertion),因为在基准面一致时,任何PCS1到PCS2都是有解析式的,坐标系之间只存在变换(transformation)的关系。基准面不一致时,一般通N个参数来确定两个基准面之间的关系,这也就是转换的物理模型。比如三参数转换、Molodenski转换、Helmert转换以及Molodenski-Badekas转换等等。这些转换大多是基于地心空间直角坐标的,也就是XYZ。
戴勤奋老师翻译了Coordinate Conversions and Transformations including Formulas中的“Formulas for Coordinate Operations other than Map Projections”章节,中文名为“坐标系转换公式”,里面介绍了许多坐标转换模型的方方面面,是很好的学习资料。
另外还参考了《现有测绘成果转换到2000国家大地坐标系技术指南》、杨启和教授的《地图投影变换原理与方法》以及别的各种小论文。
顺带说点八卦:
杨启和教授是吴忠性教授的学生,吴忠性教授是王家耀院士、高俊院士、孟立秋以及祝国瑞等等知名教授的导师,也是吴邦国委员长的父亲。吴忠性教授被称为“测绘将军”,应该是现代中国地图学界的宗师级人物之一了。
杨启和教授的这本书曾被John SnyderWaldo Tobler翻译为Map Projection Transformation: Principles and Applications,至今在Amazon上还有销售,胡毓钜教授曾专门撰文谈到过这部书的出版意义。值得强调一下的是,John Snyder生前是USGS的首席地图投影专家,他将在USGS的工作成果整理为了一本书,Map Projections: A Working Manual,另外他也是Space oblique Mercator投影的发明者。Waldo Tobler就更不用多解释了,地理学第一定律的提出者,UCSB的教授。
栅格数据坐标转换栅格数据与矢量数据的定义不同,空间参考定义也是不同的,因而坐标转换当然也不会相同了。一般来说,栅格数据的坐标转换往往是一步到位。对小范围的数据,选好控制点和坐标转换模型,直接拟合;大范围数据,先分成几块,分别拟合,最后合并。这样做的原因,个人认为可能是栅格数据坐标转换涉及重采样的问题,重采样本身就有误差,若是像矢量数据一样有按严格的空间参考定义去进行一步步转换,那期间要涉及多次重采样,最终的结果可能会面目全非。另外,还可以参考ArcGIS中的Georefrencing工具的原理和使用。
仿射变换在所有坐标转换模型中,仿射变换是最简单,也是最常用的。

所以,使用仿射变换,只需使用3对同名控制点,解出A~B六个参数,即能得到坐标转换公式(模型)。如果超过3对控制点,就要通过最小二乘来解算,这些使用Matlab来计算还是很方便的。
仿射变换的原理,通过几何关系可以很清楚的看出:

(仿射变换几何原理,via 戴勤奋)
由上图可知公式:

发表于 2013-1-3 20:48 | 显示全部楼层
学习了,谢谢楼主。

评分

参与人数 1铜板 +1 收起 理由
admin + 1 亲,你好快哦~~~

查看全部评分

回复 支持 反对

使用道具 举报

3

主题

981

铜板

3

好友

助理工程师

Rank: 5Rank: 5

积分
182
发表于 2013-1-5 15:01 | 显示全部楼层
学习了,感谢楼主共享
回复 支持 反对

使用道具 举报

2

主题

2855

铜板

4

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
765
发表于 2013-1-26 08:51 | 显示全部楼层
用万能坐标转换软件呀,不用如此麻烦
回复 支持 反对

使用道具 举报

1

主题

173

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
138
发表于 2013-8-9 15:24 | 显示全部楼层
受教了, 另外想请教一个问题。 现在在处理一个RASTER的坐标转换任务。要计算六参数,根据arcgis10.1帮助文件里的说明:

x1 = Ax + By + Cy1 = Dx + Ey + F
其中,
x1 = 计算所得的地图上的像素的 x 坐标y1 = 计算所得的地图上的像素的 y 坐标x = 图像中某个像素的列号y = 图像中某个像素的行号A = x 比例因子;像素的 x 方向尺寸,采用地图单位B、D = 旋转项C、F = 平移项;左上角像素的中心点的 x,y 地图坐标E = y 比例因子的负值;像素的 y 方向尺寸,采用地图单位然后是:
变换参数按如下顺序存储在坐标文件中:
20.17541308822119 - A0.00000000000000 - D0.00000000000000 - B-20.17541308822119 - E424178.11472601280548 - C4313415.90726399607956 - F

各个系数可按下述方式进行定义
A = mx · cos tB = my · (k · cos t - sin t)D = mx · sin tE = -1 · my · (k · sin t + cos t)C = x 方向的平移量F = y 方向的平移量
其中,
mx = x 方向的比例变化my = y 方向的比例变化k = 沿 x 轴的剪切因子 = tan(倾斜角度)(倾斜角度相对于 y 轴测得)t = 旋转角度,以 x 轴为起点逆时针旋转所测的值我有点不太明白 mx中的m应该如何计算呢? 我有试过拿一个data的参数(当然与上面的不同,上面只是说明文档中的例子)来test mx的值,即是 mx=A/cost ,mx=D/sint 那么A/cost应该等于D/sint 但是算出来又不一样,是不是本身data有问题 或者是在计算中我忽略了什么? 如果根据上面公式, mx和my应该如何计算呢?  多谢了
回复 支持 反对

使用道具 举报

0

主题

935

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
145
发表于 2013-8-11 16:06 | 显示全部楼层
支持!!!
回复 支持 反对

使用道具 举报

45

主题

2万

铜板

61

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
23250

灌水勋章宣传勋章贡献勋章

发表于 2013-10-20 18:11 | 显示全部楼层
了解一下,谢谢楼主分享。
回复 支持 反对

使用道具 举报

26

主题

6万

铜板

22

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
39888

灌水勋章宣传勋章

发表于 2013-11-8 13:15 | 显示全部楼层
路过进来看看,了解了解资源{:soso_e100:}
回复 支持 反对

使用道具 举报

3

主题

268

铜板

10

好友

助理工程师

Rank: 5Rank: 5

积分
189
发表于 2014-3-29 23:11 | 显示全部楼层
那张图谢谢了,帮助理解了很多
回复 支持 反对

使用道具 举报

17

主题

3万

铜板

39

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3260

爱心勋章地信元老灌水勋章荣誉会员勋章活跃勋章贡献勋章成就学员勋章

发表于 2015-2-24 20:20 | 显示全部楼层
{:soso_e100:}{:soso_e183:}{:soso_e163:}{:soso_e163:}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表