前言
前段时间数据工程测绘部领导找到我,需要一个坐标转换工具。自2018年7月1号起,国家全面启动CGCS2000坐标系,以前的54坐标系,80坐标系都要转成2000坐标。测绘部曾花5万块钱临时购买了一个转换工具,但后期更高精度坐标转换还需要费用。网上也有一些坐标转换的小工具,但是,只能支持单点或简单txt格式的转换。
GIS专业的我,对于坐标转换原理、思路还是以前在学校的时候学的,于是,我开始网上搜索,布尔莎模型、二维7参数模型、二维四参数模型,高斯正算、高斯反算、最小二乘法。。。结合国家下发的《80T2000坐标转换》方案,以及网上能找到的资料,历时2个月,坐标转换工具终于完成,自己也小有成就感。
工具包括二维四参数转换,和布尔莎七参数转换等。转换结果跟网上多个转换工具比较,结果高度一致,精度远高出国家要求转换精度。由于,要经常验证各种数据精度,基于让我自己使用便捷的原则,哪里不爽改哪里,经过不断完善,参数计算转换使用便捷,验证方便。现将四参数转换过程、实现思路、结果验证,以及遇到的问题分享出来,供大家学习!布尔莎七参数转换,将在后期整理后发出。
界面
先上个二维四参数计算的界面,示例中数据为54转80,平均残差0.04,如果是80转2000,转换精度更高。
该参数计算还支持导入参数验证残差,导入参数0,即可验证不使用转换参数的情况,残差在50m左右。
遇到的问题
1.x y 的困惑
当我第一次把工具交到数据工程部领导时,还比较满意,但是也提了两点,其中一点,他说到“我干了测试这么多年,始终分不清XY,主要是很多工具对XY的定义不一样!”,在他的建议下,我把XY坐标换成了,北坐标和东坐标,这样一来,测绘人员就可以很清楚的做区分了。
2.都是带号的错
刚开始计算的转换参数跟南方CASS工具有一定的差别,纵偏移-500m左右,但是我带入四参数模型发现残差很小,满足转换精度。我把南方CASS计算的参数代入,残差却很大。我用Coord工具验证,计算结果跟我计算的几乎完全一致。
百思不得其解,后来经过反复实验,才发现是带号的问题。南方CASS工具计算的时候去掉了带号,我把带号去掉后,转换参数就一致了。在后面的计算及转换中,我都将带号做了处理。
参数计算
四参数转换模型比较简单,如下:
但是要根据模型,求得四参数的值,就需要将模型变形成下面这种形式:
将该模型用计算机表示,代码如下:
然后利用要用最小二乘法求解,即可。最小二乘法即几次矩阵变换,转置,求逆等,形式比较固定,大家可以网上去查。
坐标转换
计算出四参数后,带入模型就可以进行坐标转换了,该模型适合小区域、大比例尺下坐标转换。ArcGIS并不支持四参数转换,需要将Geometry中坐标带入模型逐点转换。
小结
二维四参数坐标转换的核心是构造出求解矩阵,然后最小二乘法求解。先写这么多了,后期敬请关注!